Nick Clifton wrote:
Hi Jimmy,
I thght the linker alone was supposed to be able to do
dead-procedure-elimination.
No. It is a nice feature, but it is not a requirement of a linker.
After all can't the linker determine which procedures are unreferenced
in the final executable?
Which is exactly what the --ffunction-sections and --gc-sections
switches do.
If i'm not mistaken the diablo linker can do this?
It probably can.
Cheers
Nick
If i understand things correctly, there is a restriction on
'--gc-sections' that it doesn't work if the link is dynamic. What if my
scenario is like this:
libsomething.a - some static library built with -ffunction-sections &
-fdata-sections
src.o - my source code also built with -ffucntion-sections
final step:
ld -o exec --gc-sections src.o -lsomething
In the above step, ld simply says
'/usr/bin/ld: Warning: gc-sections option ignored'
My aim here was to remove unreferenced functions from both my code & the
static library, but at the same time using libc as an '.so' (obviously
that makes sense, cos it's shared across many apps & probably not built
with -ffunction-sections to use a static link).
Is there any way to achieve this?
-jb
--
mathematician, n.:
Some one who believes imaginary things appear right before your
i's.