[Fwd: Re: can't handle reloc type 0x6]

Joakim Tjernlund joakim.tjernlund at transmode.se
Mon Dec 5 15:47:40 UTC 2005


> >  > 
> >> Peter S. Mazinger wrote:
> >>> On Mon, 5 Dec 2005, Chris Down wrote:
> >>>
> >>>> I have built a rootfs for a powerpc embedded system using 
> >> buildroot. The 
> >>>>   kernel boots up with no problems until it tries to run 
> >> init, I then 
> >>>> get the following error:
> >>>>
> >>>> VFS: Mounted root (nfs filesystem).
> >>>> Freeing unused kernel memory: 92k init
> >>>>
> >>>> /sbin/init: symbol '': can't handle reloc type 0x6 in lib 
> >> '/lib/libm.so.0'
> >>>> Kernel panic - not syncing: Attempted to kill init!
> >>>>   <0>Rebooting in 180 seconds.
> >>> is init linked against libm ? what type of reloc is that ?
> >>>
> >>> Peter
> >> I assume that busybox init is linked against libm or else why 
> >> would it 
> >> be trying to link against it. However I will check the 
> busbox sources.
> >>
> >> reloc type 0x6 is R_PPC_ADDR16HA (adjusted high 16 bits) as 
> >> defined in 
> >> include/elf.h
> > 
> > This error looks "impossible". I suspect miscompilation. Ty gcc
> > 3.4.4/3.4.5
> > 
> >  Jocke
> > 
> I have completely rebuilt the toolchain and busybox using gcc 
> 3.4.4 and
>   get exactly the same result ???
> 
> VFS: Mounted root (nfs filesystem).
> Freeing unused kernel memory: 92k init
> 
> /sbin/init: symbol '': can't handle reloc type 0x6 in lib 
> '/lib/libm.so.0'

There is supposed to be a symbolname between the '' and there isn't,
very strange.

Try rebuilding just libm in uClibc and copy it to your nfs root FS, that
fixed 
some problems for me in the past.

Enable SUPPORT_LD_DEBUG in uClibc and pass LD_DEBUG=1(or LD_DEBUG=all)
in your
kernel command line, that should print some info that will help
debugging this problem.



More information about the uClibc mailing list