Re: dead function elimination

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux