qt5base-lts/mkspecs
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-g++ Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
aix-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
aix-xlc Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
aix-xlc-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
android-g++ Merge remote-tracking branch 'origin/release' into stable 2014-05-01 13:08:42 +02:00
blackberry-armle-v7-qcc Rename QNX arm mkspecs to be aligned with SDP structure 2014-04-04 10:53:38 +02:00
blackberry-armv7le-qcc Rename BlackBerry arm mkspecs to be aligned with NDK structure 2013-10-23 19:09:54 +02:00
blackberry-x86-qcc BlackBerry,QNX: Switch to QMAKE_PLATFORM from CONFIG 2014-04-03 14:19:15 +02:00
common Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
cygwin-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
darwin-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
devices Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
features Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
freebsd-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
freebsd-g++46 Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
freebsd-icc Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-acc Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-acc-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-acc-o64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-g++ Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpux-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpuxi-acc-32 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpuxi-acc-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hpuxi-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
hurd-g++ purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
irix-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
irix-cc-64 expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
irix-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
irix-g++-64 Add QMAKE_NM to the mkspecs 2013-06-10 16:46:06 +02:00
linux-arm-gnueabi-g++ Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-clang expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
linux-clang-libc++ Add mkspec for clang using libc++ on Linux. 2013-12-09 22:23:59 +01:00
linux-cxx expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
linux-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
linux-g++-32 Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-g++-64 Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-g++-maemo Remove automated generation of dwarf index 2014-02-16 15:41:30 +01:00
linux-icc Make the use of -ffunction-sections more generic in Qt 2014-05-19 19:33:15 +02:00
linux-icc-32 Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
linux-icc-64 Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
linux-kcc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
linux-llvm Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
linux-lsb-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
linux-pgcc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
lynxos-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
macx-clang qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-clang-32 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++ qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++40 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++42 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-g++-32 qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-icc Make the use of -ffunction-sections more generic in Qt 2014-05-19 19:33:15 +02:00
macx-ios-clang Merge remote-tracking branch 'origin/release' into stable 2014-05-03 00:56:41 +02:00
macx-llvm qmake: Pick up default bundle prefix from Xcode preferences 2013-10-31 12:33:55 +01:00
macx-xcode macx-xcode: Change wrapper to write to QMAKESPEC to change mkspec 2013-10-14 12:07:53 +02:00
modules update readme to current reality 2012-01-27 13:55:27 +01:00
netbsd-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
openbsd-g++ Merge remote-tracking branch 'origin/stable' into dev 2014-02-17 11:39:16 +01:00
qnx-armle-v7-qcc QNX: Fix QDir::entryInfoList() 2014-04-14 16:47:51 +02:00
qnx-armv7le-qcc Rename QNX arm mkspecs to be aligned with SDP structure 2014-04-04 10:53:38 +02:00
qnx-x86-qcc QNX: Fix QDir::entryInfoList() 2014-04-14 16:47:51 +02:00
sco-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
sco-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-cc-64 expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-cc-64-stlport Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
solaris-cc-stlport Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
solaris-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
solaris-g++-64 expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
tru64-cxx expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
tru64-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
unixware-cc expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
unixware-g++ expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
unsupported purge vestiges of opengl es 1 support 2014-04-04 19:32:21 +02:00
win32-g++ Strip bootstrapped binaries of unused sections 2014-05-19 19:33:15 +02:00
win32-icc Fix building of Qt with icc on Windows 2014-03-06 17:22:55 +01:00
win32-msvc2005 encode the MSVC version in our mkspecs 2014-03-20 10:36:34 +01:00
win32-msvc2008 encode the MSVC version in our mkspecs 2014-03-20 10:36:34 +01:00
win32-msvc2010 encode the MSVC version in our mkspecs 2014-03-20 10:36:34 +01:00
win32-msvc2012 Windows XP target support for MSVC >= 2012 2014-04-03 18:31:45 +02:00
win32-msvc2013 Windows XP target support for MSVC >= 2012 2014-04-03 18:31:45 +02:00
wince60standard-armv4i-msvc2005 Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
wince60standard-x86-msvc2005 Fix '=' alignment and replace tabs in *.conf (whitespace only change) 2013-03-27 17:16:37 +01:00
wince70embedded-armv4i-msvc2008 Remove not supported mkspecs for Windows CE. 2013-08-15 11:37:27 +02:00
wince70embedded-x86-msvc2008 Remove not supported mkspecs for Windows CE. 2013-08-15 11:37:27 +02:00
winphone-arm-msvc2012 winphone: deploy default font files as DirectWrite is not supported 2014-03-25 08:05:21 +01:00
winphone-x86-msvc2012 winphone: deploy default font files as DirectWrite is not supported 2014-03-25 08:05:21 +01:00
winrt-arm-msvc2012 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-arm-msvc2013 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x64-msvc2012 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x64-msvc2013 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x86-msvc2012 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00
winrt-x86-msvc2013 WinRT: Use correct architecture values in manifests and vs 2014-02-07 15:29:53 +01:00