This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Add a weak definition of mep_di to MeP's libgloss


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



Cheers Nick



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]