Port-arm archive

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

Re: Stuff missing from libgcc.a?

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.

> I hence think the earm libgcc.a is missing stuff that should
> be in there, but I'm not sure so I thought I'd ask.
> Dennis Ferguson


David Laight: david%l8s.co.uk@localhost

Home | Main Index | Thread Index | Old Index