STRIP_DEAD_CODE = -Wl,-static -fvtable-gc -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-s
- -Wl,-static
- Link against static libraries. Required for dead-code
elimination.
- -fvtable-gc
- C++ virtual method table instrumented with garbage collection
information for the linker.
- -fdata-sections
- Keeps data in separate data sections, so they can be discarded
if unused.
- -ffunction-sections
- Keeps funcitons in separate data sections, so they can be
discarded if unused.
- -Wl,--gc-sections
- Tell the linker to garbage collect and discard unused
sections.
- -s
- Strip the debug information, so as to make the code as small
as possible. (I presume that you'd want to do this in a
dead-code removal build.)
$ echo | gcc -v -x c -E -
$ gcc -print-search-dirs
install: ...
programs: ...
libraries: ...
Use -### in actual invoking:
$ gcc -### -o foo foo.c
$ ld --verbose | grep SEARCH_DIR
LIBRARY_PATH and LD_LIBRARY_PATH:
$ cpp -Wp,-v
$ cpp -Wp,-lang-c++,-v
$ cpp -x c++ -Wp,-v