summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/QtCompilerOptimization.cmake10
-rw-r--r--configure.cmake6
2 files changed, 14 insertions, 2 deletions
diff --git a/cmake/QtCompilerOptimization.cmake b/cmake/QtCompilerOptimization.cmake
index c8c3da78d5..952ace6652 100644
--- a/cmake/QtCompilerOptimization.cmake
+++ b/cmake/QtCompilerOptimization.cmake
@@ -168,8 +168,14 @@ endif()
# Android Clang
if(CLANG AND ANDROID)
- set(QT_CFLAGS_OPTIMIZE "-Oz")
- set(QT_CFLAGS_OPTIMIZE_FULL "-Oz")
+ if(QT_FEATURE_ltcg)
+ # When using LTCG, the linker cannot cope with -Oz. See QTBUG-89472 for details.
+ set(QT_CFLAGS_OPTIMIZE "-O2")
+ set(QT_CFLAGS_OPTIMIZE_FULL "-O3")
+ else()
+ set(QT_CFLAGS_OPTIMIZE "-Oz")
+ set(QT_CFLAGS_OPTIMIZE_FULL "-Oz")
+ endif()
endif()
# qcc
diff --git a/configure.cmake b/configure.cmake
index 99bf667861..635dd58c52 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -624,6 +624,12 @@ qt_feature("ltcg"
CONDITION __qt_ltcg_detected
)
qt_feature_config("ltcg" QMAKE_PRIVATE_CONFIG)
+
+if(NOT QT_CONFIGURE_RUNNING)
+ # This feature is used early in QtCompilerOptimization.cmake.
+ qt_evaluate_feature(ltcg)
+endif()
+
qt_feature("enable_new_dtags"
LABEL "Using new DTAGS"
CONDITION LINUX AND TEST_enable_new_dtags