Am Mittwoch, 28. Juni 2006 23:20 schrieb Brian Dessent: > Michael Eager wrote: > > Arguably, the linker should know > > that add is not referenced and could remove it, but linkers are not > > usually able to slice and dice object files. > > You address this limitation by compiling with "-ffunction-sections > -fdata-sections -Wl,--gc-sections". However, it's still better to use > "static" on these kinds of local functions that are only used from the > same .o file. This has a number of benefits: > > - it ensures that internal functions of a library are not exported for > use by other code when they are not part of the defined ABI/API > - it prevents them from taking up needless relocations, which can slow > linking > - when compiled -fpic (as in a shared library) it allows for direct > calls to the function instead of having to go through the PLT which is > slower > - it allows the compiler freedom to inline > and you are warned about unused static symbols. hmm, reminds me of cleaning my attic ... > Brian