Port-arm archive

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

Stuff missing from libgcc.a?



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

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


Home | Main Index | Thread Index | Old Index