summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/ltcg.prf
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2019-11-06 11:23:12 +0100
committerJoerg Bornemann <joerg.bornemann@qt.io>2019-11-08 17:00:17 +0100
commit8ffb200153d1b1a8402c875c4961160efb149201 (patch)
treec10b914ba68bc3072a4ce77a4e2d6eaa7ad21563 /mkspecs/features/ltcg.prf
parent26f8adb1eefd1a8822413e036f2878b8cc1e7029 (diff)
Fix LTCG linker flags for macOS with separate debug info
The linker must not throw away the lto.o file. We now instruct the linker to create a non-temporary lto.o, dependent on the target name. In order to do that we introduce a new mkspec variable QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO. This variable can contain single-$ variable references that get evaluated when loading ltcg.prf. Fixes: QTBUG-72846 Change-Id: I0ea882628d63e5406ba0ee68c7435af597364b0f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Diffstat (limited to 'mkspecs/features/ltcg.prf')
-rw-r--r--mkspecs/features/ltcg.prf6
1 files changed, 6 insertions, 0 deletions
diff --git a/mkspecs/features/ltcg.prf b/mkspecs/features/ltcg.prf
index a94f6d0eeb..5fa6309016 100644
--- a/mkspecs/features/ltcg.prf
+++ b/mkspecs/features/ltcg.prf
@@ -1,6 +1,12 @@
static:no-static-ltcg {
# Static library but no-static-ltcg enabled: skip LTCG
} else: CONFIG(release, debug|release) {
+ separate_debug_info {
+ # Evaluate single-$ variable references that have no valid value at mkspec loading time
+ QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO ~= s/\\$\\{/\$\$\{/
+ eval(QMAKE_LFLAGS_LTCG += $$QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO)
+ }
+
# 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