Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Stuff missing from libgcc.a?



On 20 Aug, 2013, at 07:42 , David Laight <david%l8s.co.uk@localhost> wrote:

> On Mon, Aug 19, 2013 at 11:42:53PM +0100, Dennis Ferguson wrote:
>> I found a reason to want to recompile U-Boot and attempted
>> to use the compiler tools from a NetBSD earm build to do so.
>> Compiling went okay once I worked through the #include files
>> it needed from the system, but loading the binary failed due
>> to the following missing symbols:
>> 
>>    __aeabi_idiv
>>    __aeabi_idivmod
>>    __aeabi_uidiv
>>    __aeabi_uidivmod
>> 
>>    __aeabi_lasr
>>    __aeabi_llsl
>>    __aeabi_llsr
>> 
>> The only system library needed by u-boot is libgcc.a; I used
>> the library built with the NetBSD earm build.  The first 4
>> symbols above are referenced (only) from functions in that
>> libgcc.a but are not defined there. I see from the gcc sources
>> that the last three symbols should be aliases for ashrdi3,
>> ashldi3 and lshrdi3, respectively, but while the latter
>> functions are in libgcc.a the aliases are not.  Note that
>> building u-boot against the NetBSD earm libc.a instead caused
>> the build to complete with no missing symbols, but also
>> resulted in a bunch of inappropriate stuff being included
>> along with it (loading MLO failed since it was now too big
>> to fit in the SRAM it is supposed to run from).
> 
> Hmmm.... libc.a should be an archive file build from small .o files.
> So not much else ought to get pulled in just to satify the above.
> OTOH you might want 'small' versions of some of the functions (if
> revelant) - so the libc versions might not be appropriate.

Yes, there is error handling code which wants to send signals and
which drags in a lot of other libc stuff with it.  I need a _STANDALONE
version to get that compiled out.

Dennis Ferguson



Home | Main Index | Thread Index | Old Index