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