[uClibc] RE: [uClibc-cvs] svn commit: trunk/uClibc/ldso/ldso: armcris i386 m68k mips powerpc sh sh64 etc...

Joakim Tjernlund joakim.tjernlund at lumentis.se
Tue Mar 15 14:12:17 UTC 2005


> 
> > -----Original Message-----
> > From: uclibc-bounces at uclibc.org 
> > [mailto:uclibc-bounces at uclibc.org] On Behalf Of Joakim Tjernlund
> > Sent: Tuesday, March 15, 2005 09:41
> > To: uclibc at uclibc.org
> > Subject: [uClibc] RE: [uClibc-cvs] svn commit: 
> > trunk/uClibc/ldso/ldso: armcris i386 m68k mips powerpc sh sh64 etc...
> > 
> > > On Mon Mar 14, 2005 at 06:25:10AM -0700, jocke at uclibc.org wrote:
> > > > I probably broke one or two archs(only tested PPC) so please
> > > > try and report problems. For a report to be useful you need
> > > > to enable __SUPPORT_LD_DEBUG_EARLY__ and __SUPPORT_LD_DEBUG__
> > > 
> > > I can confirm that at least mips and x86 are broken...
> > [SNIP]
> > 
> > x86, MIPS and PPC should be OK now. No reports on the other
> > arches CRIS, ARM, SPARC, M68K, SH and SH64 (Hint hint :)
> 
> I have made CRIS compile agin (r10007). I have, however, no 
> idea if the change is actually correct, since it seems that
> elf_machine_load_address() is never called (I tried changing
> it to return 0x12345678 and everything still worked)...

Good, but I think your change is wrong. The elf_machine_load_address() will
be called when you execute ldso directly(/lib/ld-uClibc.so.0). This is a
preparation for beeing able to do "/lib/ld-uClibc.so.0 /bin/ls". Just
try running /lib/ld-uClibc.so.0 with __SUPPORT_LD_DEBUG_EARLY__ enabled. You should
end up with:
"Cool, we managed to make a function call."
before is SEGVs.

I think you should add back _dl_boot in elf_machine_load_address() but you probably
need to define "extern void _dl_boot(void)" somewhere in dl-sysdep.h.
I tried to add a "extern void _dl_boot(void)" into ldso.c, but it turns out that
_dl_boot differs between archs.

 Jocke



More information about the uClibc mailing list