From 550ee1d7529af7440cf3e3444526249f3de3e4ab Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 22 Feb 2023 10:47:00 +0100 Subject: CMake: Fix position independent code linker flags not being set We set CMAKE_POSITION_INDEPENDENT_CODE to ON and require CMake 3.16. This sets CMP0083 to NEW and should pass -fPIE to linker calls as well. However, the PIE-enabling flag is not passed to the linker unless we call check_pie_supported(). This behavior is documented in CMake's CMP0083 documentation page. [ChangeLog][CMake] Qt tools are now built with position independent code even with Unix toolchains where this is not the default, for example clang. Change-Id: I1d98e0ea7063a76e3fddc94d6555c6eaf14c7885 Reviewed-by: Alexey Edelev (cherry picked from commit 4183768d9bc6f80ac7b86c3dbf93e6b251369ae4) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 6d301449fd36ccb3ea33dc58d41b44f5ba31ca3a) Reviewed-by: Jani Heikkinen --- cmake/QtSetup.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/QtSetup.cmake b/cmake/QtSetup.cmake index 84d3e41e15..4f0c98a6b9 100644 --- a/cmake/QtSetup.cmake +++ b/cmake/QtSetup.cmake @@ -116,6 +116,10 @@ endif() ## Position independent code: set(CMAKE_POSITION_INDEPENDENT_CODE ON) +# Does the linker support position independent code? +include(CheckPIESupported) +check_pie_supported() + # Do not relink dependent libraries when no header has changed: set(CMAKE_LINK_DEPENDS_NO_SHARED ON) -- cgit v1.2.1