After some more investigating I think I have found the core problem with the id.lds file.
I think this is a bug in binutils. if you look at the link below you will see an explanation. I have checked and I am using 2.17.50 on my system. this could explain the problem I am seeing with linking. It seems a check within ld is not working properly for sections that are at the top of an image/memory. (base+size = 0). Looks like a fix has been put into binutils already.
My question is do we leave the patch in place or just make a note somewhere that if you see this problem : 1) Upgrade binutils (if possible) or 2) Make changes to id.lds
http://www.nabble.com/binutils-2.18-and-U-Boot-td14266866.html
/********************* Marc Karasek MTS Sun Microsystems mailto:marc.karasek@sun.com ph:770.360.6415 *********************/
Myles Watson wrote:
On Jan 8, 2008 3:41 PM, Marc Karasek Marc.Karasek@sun.com wrote:
So what is the general consensus ==1 or >0?
I like the idea of using grep. It seems much cleaner, and avoids that issue.
The other sticking point for the patch the changes in src/arch/i386/lib/id.lds (See Ed's last message.)
Myles
Also, I think I know how to commit back to the tree, but do I need a user account for this?
/********************* Marc Karasek MTS Sun Microsystems mailto:marc.karasek@sun.com ph:770.360.6415 *********************/
Myles Watson wrote:
On Jan 7, 2008 8:15 AM, Marc Karasek Marc.Karasek@sun.com wrote:
After looking at the script Myles sent, I immediately saw the problem. I forgot that if [ $build_id ] will always be true because it checks to see if it is defined not the value of build_id. My bad, sorry.
I have made the changes and added an == 1 to the if statement. Attached is the new and I hope final patch file for this.
It works for me (it doesn't add the load option.)
Sorry to be picky, but it seems like this breaks if they mention build-id more than once in the help in the future. I think >0 would be better than ==1.
With that fixed, or if no one thinks that will ever happen: Acked-by: Myles Watson myles@pel.cs.byu.edu
/********************* Marc Karasek MTS Sun Microsystems mailto:marc.karasek@sun.com ph:770.360.6415 *********************/
Ed Swierk wrote:
On 1/4/08, Marc Karasek Marc.Karasek@sun.com wrote:
I made a test script and ran it and it sets build_id = 1 properly. I have also included this script.
The problem is that on Planet Bourne, zero means true and nonzero means false.
--Ed