gcc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 28 Dec 2009 23:01:00 +0200
changeset 268 b99a51c4e605
parent 194 c9a5f5dad40d
child 352 2f4c25b2b493
permissions -rw-r--r--
Emacs treat text as local variable definition, escape text.

-*- 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>