gcc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 27 Jan 2010 21:20:58 +0200
changeset 290 8bab7e733eb0
parent 194 c9a5f5dad40d
child 352 2f4c25b2b493
permissions -rw-r--r--
Check system files integrity.

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