This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Unused functions not being removed
- From: Asm Twiddler <asmtwiddler at gmail dot com>
- To: binutils at sourceware dot org
- Date: Wed, 31 Jul 2013 22:33:54 -0400
- Subject: Unused functions not being removed
Hello all,
I have recently noticed that some of the unused functions in my code
aren't being removed.
It appears that the problem occurs due to ld, but only when building
for the avr.
My code is compiled using -fdata-sections and -ffunction-sections to
create object files.
Then, per each source directory, different object files are combined
into one object via "ld -r".
Finally, those objects are compiled together using gcc --gc-sections.
This should remove any unused functions, as it does under x86, but fails on avr.
After running objdump on the various objects, it appears that gcc is
correctly creating the sections, but "ld -r" is removing the separate
sections.
Is this supposed to happen and is there a way to disable this?
Thanks for any help.