Port-arm archive

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

Re: Stuff missing from libgcc.a?



On Aug 19, 2013, at 3:42 PM, Dennis Ferguson 
<dennis.c.ferguson%gmail.com@localhost> 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

Those are in libc and we don't generate the libgcc versions
since they cause conflict.

> 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).
> 
> 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.

NetBSD standalone apps don't use libgcc, but we provide the 
equivalent in libkern.

You might try build a libkern and see if it's a suitable
replacement.  Hopefully soon, NetBSD will supply an empty
libgcc.a :)


Home | Main Index | Thread Index | Old Index