From df40c77a9a2bb2da90c5367f2ed217f027106e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Tue, 5 Mar 2024 09:02:25 +0100 Subject: Force use of classic linker on AppleClang 15 The new linker ld_prime became the default option, but has issues when building large libraries such as Qt WebEngine. Use the temporary work- around of forcing the classic linker until the issue has been resolved in AppleClang. Pick-to: 6.7 6.6 6.5 Task-number: QTBUG-122655 Change-Id: I1c21d6b1ac9f1fb89878bf8cc9786d24fe1c94da Reviewed-by: Allan Sandfeld Jensen --- cmake/Functions.cmake | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'cmake/Functions.cmake') diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake index e1044de8f..fc3011cff 100644 --- a/cmake/Functions.cmake +++ b/cmake/Functions.cmake @@ -1215,6 +1215,15 @@ function(add_gn_build_artifacts_to_target) endforeach() list(GET archs 0 arch) set(target ${arg_NINJA_TARGET}_${config}_${arch}) + # Work around for broken builds with new Apple linker ld_prime. Force + # use of the classic linker until this has been fixed. + # TODO: remove once this has been fixed by Apple. See issue FB13667242 + # or QTBUG-122655 for details. + if(APPLECLANG) + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15.0.0") + target_link_options(${arg_CMAKE_TARGET} -ld_classic) + endif() + endif() if(QT_IS_MACOS_UNIVERSAL) add_lipo_command(${target} ${arg_BUILDDIR}/${config}) endif() -- cgit v1.2.3