ARM newlib oddity

Duane Ellis duane@duaneellis.com
Mon Oct 10 17:49:00 GMT 2011


On 10/9/2011 4:10 AM, Daniel O'Connor wrote:
 >> [duplicate symbols from 'syscalls' when replacing syscalls.

duane> [use nm to get a list of symbols to compare with]
duane> [ example commands ]

duane> Step 1: Run NM against your syscalls.
duane> Step 2: Run NM against the NEWLIB library that is being brought in.
duane> Step 3: Compare the resulting lists.

daniel> mmm tedious :)
daniel> There are a lot of undefined symbols in libg.a though :(

Sorry - forgot to mention this simplification detail.:

step a)    copy the offending library to some directory.
step b)    Type the command "ar x   LIBNAME.a"

This expands/exploads the library into many "filename.o" files.

step c) Run NM against the specific 'syscalls.o' file that came from 
that library causing the problem.

To note:
     The arm (REALVIEW tools) have can create what is called an "info" 
file,
     That info file can contain a verbose description of the link process.

     For example:    Examining module   LIBNAME( modulename )
     Selecting   LIBNAME(modulename) to resolve symbol:  FOOBAR

If you where using the ARM tools, this would be *REASON* your duplicate 
symbols occur.

I have found this ARM_RVCT linker feature a great help when this type of 
problem happens.

I'm not sure if the GNU linker has this feature.

-Duane.



More information about the Newlib mailing list