gcc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 02 Jul 2012 23:11:48 +0300
changeset 1319 e080da368231
parent 813 34a39aae2618
permissions -rw-r--r--
http://l10n.kde.org/docs/translation-howto/check-gui.html

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

* 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