gcc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 23 Mar 2010 11:29:27 +0200
changeset 352 2f4c25b2b493
parent 194 c9a5f5dad40d
child 805 eeb94c46c797
permissions -rw-r--r--
Predefined macros.

-*- mode: outline; coding: utf-8 -*-

* 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 -arch ppc -dM -E - < /dev/null | sort