diff options
author | Yuhang Zhao <2546789017@qq.com> | 2019-03-18 17:17:22 +0800 |
---|---|---|
committer | Yuhang Zhao <2546789017@qq.com> | 2019-03-20 17:21:08 +0000 |
commit | 36827faa18e245dfc6dad155201d8670fd171328 (patch) | |
tree | 5b0ae8ee5dfe42b43287d1caf9021568c9e4320e /mkspecs | |
parent | 322b052dd7d12193d028188bb133b4026ff97be4 (diff) |
Clang: Add Thin LTO in addition to Full LTO
Change-Id: I6502f3ff31c16faebd9b931b99b77a273971f611
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/clang.conf | 4 | ||||
-rw-r--r-- | mkspecs/features/ltcg.prf | 2 | ||||
-rw-r--r-- | mkspecs/win32-clang-g++/qmake.conf | 6 | ||||
-rw-r--r-- | mkspecs/win32-clang-msvc/qmake.conf | 4 |
4 files changed, 13 insertions, 3 deletions
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index dacd1539cf..e03dc7de14 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -19,7 +19,8 @@ QMAKE_PCH_OUTPUT_EXT = .pch QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT} -QMAKE_CFLAGS_LTCG = -flto +QMAKE_CFLAGS_LTCG = -flto=thin +QMAKE_CFLAGS_LTCG_FATOBJECTS = -flto QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto QMAKE_CFLAGS_GNUC99 = -std=gnu99 QMAKE_CFLAGS_GNUC11 = -std=gnu11 @@ -27,6 +28,7 @@ QMAKE_CFLAGS_GNUC11 = -std=gnu11 QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_CXXFLAGS_CXX11 = -std=c++11 QMAKE_CXXFLAGS_CXX14 = -std=c++1y diff --git a/mkspecs/features/ltcg.prf b/mkspecs/features/ltcg.prf index ccf0226272..d113caf35c 100644 --- a/mkspecs/features/ltcg.prf +++ b/mkspecs/features/ltcg.prf @@ -2,7 +2,7 @@ CONFIG(release, debug|release) { # We need fat object files when creating static libraries on some platforms # so the linker will know to load a particular object from the library # in the first place. On others, we have special ar and nm to create the symbol - # tables so the linker will know better. For other compilers, we disable LTCG + # tables so the linker will know better. For other compilers, we disable LTCG # for static libraries. msvc { # Nothing to do diff --git a/mkspecs/win32-clang-g++/qmake.conf b/mkspecs/win32-clang-g++/qmake.conf index 4630ec4602..4bceb2780c 100644 --- a/mkspecs/win32-clang-g++/qmake.conf +++ b/mkspecs/win32-clang-g++/qmake.conf @@ -24,4 +24,10 @@ QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON QMAKE_LINK = $${CROSS_COMPILE}clang++ QMAKE_LINK_C = $${CROSS_COMPILE}clang +QMAKE_CFLAGS_LTCG = -flto=thin +QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_CFLAGS_LTCG_FATOBJECTS = -flto +QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS +QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG + load(qt_config) diff --git a/mkspecs/win32-clang-msvc/qmake.conf b/mkspecs/win32-clang-msvc/qmake.conf index c639ad6f3d..8bbe0105f0 100644 --- a/mkspecs/win32-clang-msvc/qmake.conf +++ b/mkspecs/win32-clang-msvc/qmake.conf @@ -39,8 +39,10 @@ QMAKE_CXXFLAGS += -Wno-microsoft-enum-value QMAKE_LINK = lld-link QMAKE_LIB = llvm-lib /NOLOGO -QMAKE_CFLAGS_LTCG = -flto +QMAKE_CFLAGS_LTCG = -flto=thin QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_CFLAGS_LTCG_FATOBJECTS = -flto +QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS # Leave QMAKE_LFLAGS_LTCG empty because lld-link doesn't need any additional parameters QMAKE_LFLAGS_LTCG = |