[ About | Licence | Contacts ]
Written by Oleksandr Gavenko (AKA gavenkoa), compiled on 2024-04-01 from rev 052223c22317.

GCC

Remove dead code

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.)

Map file

$ ld -Map=file.map <opts> <files>

or:

$ gcc -Wl,-Map=file.map <opts> <files>

Predefined macros

$ gcc -dM -E - < /dev/null | sort
$ gcc -arch ppc -dM -E - < /dev/null | sort

Default search path

$ 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