gcc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 11 Sep 2009 15:29:13 +0300
changeset 193 635ce059b359
child 194 c9a5f5dad40d
permissions -rw-r--r--
Remove dead code by gcc.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
193
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
-*- mode: outline; coding: utf-8 -*-
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
* Remove dead code.
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
  STRIP_DEAD_CODE = -Wl,-static -fvtable-gc -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-s
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
  -Wl,-static
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
                Link against static libraries. Required for dead-code
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
                elimination.
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
  -fvtable-gc
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
                C++ virtual method table instrumented with garbage collection
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
                information for the linker.
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
  -fdata-sections
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
                Keeps data in separate data sections, so they can be discarded
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
                if unused.
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
  -ffunction-sections
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
                Keeps funcitons in separate data sections, so they can be
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
                discarded if unused.
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  -Wl,--gc-sections
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
                Tell the linker to garbage collect and discard unused
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
                sections.
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    27
  -s
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    28
                Strip the debug information, so as to make the code as small
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    29
                as possible. (I presume that you'd want to do this in a
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
                dead-code removal build.)
635ce059b359 Remove dead code by gcc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31