From 80de5165658e1cfb12d0813ea93dcfecca0dcb45 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 19 Aug 2021 22:13:53 +0200 Subject: Fix Android -ltcg build We're passing -Oz for release builds, but that's not a flag the linker understands when -ltcg is enabled. The build fails with: ld.gold: fatal error: Optimization level must be between 0 and 3 Fix this by using -O2, which -Oz is based on, and -O3 for the "full optimization" that is used for core and gui. Pick-to: 6.2 Fixes: QTBUG-89472 Change-Id: Ie1a86888baefce5ca97026e7d635f10d2819f9f4 Reviewed-by: Alexandru Croitor --- cmake/QtCompilerOptimization.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'cmake') 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 -- cgit v1.2.3