qt5base-lts/mkspecs/common
Thiago Macieira 6315745770 Strip bootstrapped binaries of unused sections
This matches the -ffunction-sections from bootstrap.pro, which tells the
compiler to create a section for each function. The -gc-sections option
tells the linker to drop what wasn't used (normally, it only drops
entire files).

Before (on Linux, built with -O3, no LTO):
   text    data     bss     dec     hex filename
1746385    7920    3750 1758055  1ad367 bin/moc
1444101    6664    1894 1452659  162a73 bin/rcc
4407725    1568    4896 4414189  435aed bin/qmake

After:
   text    data     bss     dec     hex filename
1131655    6520    3494 1141669  116ba5 bin/moc
1027043    5480    1766 1034289   fc831 bin/rcc
3578489    1656    5313 3585458  36b5b2 bin/qmake

Gain: 35% on moc, 28% on rcc, 19% on qmake

Before (on OS X):
__TEXT	__DATA	__OBJC	others	dec	hex
1495040	12288	0	4294993008	4296500336	100176470	bin/moc
1265664	8192	0	4294983904	4296257760	10013b0e0	bin/rcc
5279744	81920	0	4297912320	4303273984	1007ec000	bin/qmake

After:
__TEXT	__DATA	__OBJC	others	dec	hex
806912	8192	0	4294988132	4295803236	1000cc164	bin/moc
720896	8192	0	4294979764	4295708852	1000b50b4	bin/rcc
4841472	77824	0	4295580688	4300499984	100546c10	bin/qmake

Gain: 46% on moc, 43% on rcc, 8% on qmake.

Change-Id: Icc7cdc9fd6f5db15537b4adabaac7e7a27e539d4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-05-19 19:33:15 +02:00
..
aix Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
android Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
c89 Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
ios purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
mac expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
nacl Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
posix Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
wince purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
winrt_winphone Windows Phone: add language control to the package manifest 2014-04-30 08:48:15 +02:00
armcc.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
clang-mac.conf Enable C++11 on OSX when using Clang 2013-04-05 14:23:23 +02:00
clang.conf Add support for using -isystem in qmake 2014-01-20 02:42:31 +01:00
g++-base.conf Add optimize_full qmake config option 2014-03-06 12:21:14 +01:00
g++-macx.conf Refer to Apple products by their actual names. 2013-07-10 17:32:48 +02:00
g++-unix.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
g++.conf Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
gcc-base-mac.conf Do not limit clang generated debug info to dwarf-2 on mac. 2014-01-21 15:18:24 +01:00
gcc-base-unix.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
gcc-base.conf Make the use of -ffunction-sections more generic in Qt 2014-05-19 19:33:15 +02:00
ios.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
linux-android.conf purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
linux.conf Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
llvm.conf Refer to Apple products by their actual names. 2013-07-10 17:32:48 +02:00
mac.conf Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
macx.conf Merge "Merge branch 'stable' into dev" into refs/staging/dev 2013-07-12 14:03:21 +02:00
qcc-base-qnx-armv7le.conf Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
qcc-base-qnx-x86.conf Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
qcc-base-qnx.conf make QMAKE_DIRLIST_SEP consistent with QMAKE_DIR_SEP 2014-04-30 16:57:01 +02:00
qcc-base.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
shell-unix.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
shell-win32.conf make sure that installed meta files are always postprocessed 2013-10-11 21:04:04 +02:00
unix.conf Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00