ARM newlib oddity
Duane Ellis
duane@duaneellis.com
Sun Oct 9 08:31:00 GMT 2011
>> I find that when I try and use time() that a syscalls file gets
linked in which conflicts with the one I am supplying.
>> [snip, many examples of duplicate symbol errors].
What is happening is this:
The NEWLIB file you are linking with defines a few extra symbols
that your replacement is not defining.
Those other symbols are needed (for some reason) and thus, the
NEWLIB supplied syscalls are being brought in.
You need a list of symbols supplied by both, the newlib-syscalls, and
your syscalls.
You can create this list with the "nm" command, often the generic NM
command just works, sometimes you need your build specific one, which
should be: 'arm-non-eabi-nm' {same prefix as your gcc}
Step 1: Run NM against your syscalls.
Step 2: Run NM against the NEWLIB library that is being brought in.
Step 3: Compare the resulting lists.
Actually, all the duplicates are the ones that both are supplying,
you want the list of missing names.
-Duane.
More information about the Newlib
mailing list