[Fwd: Re: can't handle reloc type 0x6]
Chris Down
chris at alcor.co.uk
Mon Dec 5 15:57:01 UTC 2005
Joakim Tjernlund wrote:
>>> >
>>>> 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.
Ok, I will try rebuilding just libm and I will also try and debug the
problem.
Thanks for your help
Chris
More information about the uClibc
mailing list