I'm trying to reduce the size of my elf executable. I'm compiling with -ffunction-sections
-fdata-sections
and linking with -gc-sections
, but it appears some of the symbols that I believe are unused are not being discarded.
Is there some command in the GNU toolchain I can run to find out which symbols are being used and where?
- Toolchain: GNU arm-none-eabi
- Platform: Cortex-M4
- Language: C++
Here are my typical build flags:
Compilation: arm-none-eabi-g++.exe -Wall -O3 -mthumb -std=c++11 -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -fsingle-precision-constant -ffunction-sections -fdata-sections
Link: arm-none-eabi-g++.exe -static -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -Wl,-gc-sections -Wl,-T"LinkerScript.ld
Thanks for the help.
See Question&Answers more detail:os