> I am getting the "lib 0 younger than lib 1" in the relocation code for the 
> reloc
> table for uClibc (shared lib 1). The code works until it reaches a value of
> "0x00000001" which is interpreted as address 1 in library 0. Library 0 is 
> younger
> than 1, as it should be.

I understand now.


> Some of my theories are as follows. Maybe the linker is inserting a 0x00000001
> into the reloc table when it shouldn't be. Or maybe it should be, and 
> 0x00000001
> is a new flag in the newer toolchain.

It certainly has the feel of a tool chain flag.  I have a vague recollection 
of such being used in the constructor/destructor chains.

What if you modify the kernel relocator to stop on these values? (are there 
legitimate relocations *after* them?)

Or skip them?

Does the program then work?

I don't see how 0x00000001 can be a legitimate relocation address.  Code is 
word aligned and that definitely points into code space.  I don't remember 
relocations less than 32 bit being needed on the ColdFire.


> Let me know if this rings any bells.

It doesn't :-(

There were some weird zero values near the start of the GOT that I never 
figured out but I thought I'd dealt with the relocations properly.


Regards,

Pauli
-- 
Dr Paul Dale
Software Grunt

Secure Computing(r) 
your trusted source for enterprise security(tm)
www.securecomputing.com <http://www.securecomputing.com/> 


_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to