Add a weak definition of mep_di to MeP's libgloss

Nick Clifton
Wed Feb 4 10:39:00 GMT 2009

Hi Konrad,

> However, once processed, this archive is not revisited,
> even if later object files have unresolved symbols that could be
> resolved by this library (unless the library is mentioned a second time
> on the command line, to the right of these later object files).

Or unless command line switches such as --start-group ... --end-group 
are used to enclose a selection of archives.

> If you wish to override the definition of a symbol, add an object
> [...] defining that symbol
> before the library containing the overridden definition.

The problem with this solution is that it requires a specific link 
order.  I cannot guarantee that the user will specify the libraries and 
object files in the correct order on the linker command line to achieve 
this effect.  Plus things can become very complicated and even 
impossible to resolve if there are multiple symbols that need to be 
overridden in multiple different archives.

> Thus,
> adding weak definitions to existing members (object files) will bloat
> the linker's output (perhaps only slightly, as in the case below) when
> that member is extracted for other reasons.  

True, but if the size of the final executable is a real concern then 
compiling all archives with -ffunction-sections and enabling link time 
garbage collection would resolve this issue for most cases.  (Although 
technically not in this particular case since the weak symbol is 
explicitly placed in the same section as the function that refers to it).


More information about the Newlib mailing list