diff options
-rwxr-xr-x | configure | 3 | ||||
-rw-r--r-- | mkspecs/common/linux.conf | 1 | ||||
-rw-r--r-- | mkspecs/common/mac.conf | 1 | ||||
-rw-r--r-- | mkspecs/features/qt_app.prf | 3 | ||||
-rw-r--r-- | mkspecs/win32-g++/qmake.conf | 1 | ||||
-rw-r--r-- | tools/configure/configureapp.cpp | 1 |
6 files changed, 9 insertions, 1 deletions
@@ -3664,7 +3664,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; EXTRA_SRCS= EXTRA_CFLAGS="\$(QMAKE_CFLAGS) \$(QMAKE_CFLAGS_SPLIT_SECTIONS)" EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS) \$(QMAKE_CXXFLAGS_SPLIT_SECTIONS)" - EXTRA_LFLAGS="\$(QMAKE_LFLAGS)" + EXTRA_LFLAGS="\$(QMAKE_LFLAGS) \$(QMAKE_LFLAGS_GCSECTIONS)" if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then EXTRA_LFLAGS="$EXTRA_LFLAGS -lm" @@ -3678,6 +3678,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; setBootstrapVariable QMAKE_CXXFLAGS setBootstrapVariable QMAKE_CXXFLAGS_SPLIT_SECTIONS setBootstrapVariable QMAKE_LFLAGS + setBootstrapVariable QMAKE_LFLAGS_GCSECTIONS if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then setBootstrapVariable QMAKE_CFLAGS_RELEASE diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf index 98e6cefabd..e10ab71cd6 100644 --- a/mkspecs/common/linux.conf +++ b/mkspecs/common/linux.conf @@ -6,6 +6,7 @@ QMAKE_PLATFORM += linux QMAKE_CFLAGS_THREAD += -D_REENTRANT QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD +QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections QMAKE_INCDIR = QMAKE_LIBDIR = diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index 4421665370..5f60549c70 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -18,6 +18,7 @@ QMAKE_INCDIR_OPENGL = \ QMAKE_FIX_RPATH = install_name_tool -id QMAKE_LFLAGS_RPATH = +QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip QMAKE_LIBS_DYNLOAD = QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf index a4fcb7d484..0f83fd7270 100644 --- a/mkspecs/features/qt_app.prf +++ b/mkspecs/features/qt_app.prf @@ -16,6 +16,9 @@ DESTDIR = $$MODULE_BASE_OUTDIR/bin isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle +# This decreases the binary size for tools if statically linked +QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS + host_build: QT -= gui # no host tool will ever use gui host_build:force_bootstrap { !build_pass: CONFIG += release diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 759ade93c1..d26ffb4e21 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -77,6 +77,7 @@ QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows QMAKE_LFLAGS_DLL = -shared QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections QMAKE_LINK_OBJECT_MAX = 10 QMAKE_LINK_OBJECT_SCRIPT = object_script QMAKE_PREFIX_STATICLIB = lib diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 0e3bbcd3fb..b7565093f1 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -4041,6 +4041,7 @@ void Configure::buildQmake() stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl << "EXTRA_CFLAGS = -DUNICODE -ffunction-sections" << endl << "EXTRA_CXXFLAGS = -DUNICODE -ffunction-sections" << endl + << "EXTRA_LFLAGS = -Wl,--gc-sections" << endl << "QTOBJS = qfilesystemengine_win.o \\" << endl << " qfilesystemiterator_win.o \\" << endl << " qfsfileengine_win.o \\" << endl |