David Brown wrote on Montag, 19. September 2005 09:53 : > An alternative idea might be to use individual sections such as > ".text1_foo" for the stub for function foo(), and make use of the > "--gc-sections" option in the linker to remove any such section that is not > used. I'm thinking of the same idea as the "-ffunction-sections" switch in > gcc which can be used with "--gc-sections" to avoid linking in functions > that are not used. I haven't tried the "-ffunction-sections" switch, and > don't even know if it is implemented for the avr port, but perhaps the same > idea can be used. Your idea indeed works! However, one will to have to change the binutil's default linker scripts and avr-libc's crt file a bit, such that the --gc-sections switch actually works: One will probably have to replace the sections .init1 up to .init9 by .init 1 up to .init 9 (note the white space between the numbers). Otherwise, e.g. .init2 will be considered to be an unused section and would be thrown away. If it's subsection 2 of the .init section that does not happen. Also one would have to add -Wl,--entry=__vectors to the linker options such that the reset vector is taken as a starting point.
Positive side-effect would also be that with -ffunction-sections unused functions that are not declared static could be removed by the linker. Yours, Bjoern _______________________________________________ AVR-libc-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-libc-dev
