[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