summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2022-08-03 09:58:00 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-24 13:00:39 +0000
commit3bc94984e27915ed0fe097508099da62bf557140 (patch)
tree624ca8dac519eb919c72a5efda682be7324dde59
parent9b5bc538fdaf9fb447add0504cce071ad36cd0be (diff)
Fix debug build on arm
We need --long-plt for arm debug builds. Change-Id: I99fa6a2f8ec803cc399509d02a5cc9ad22fd0f87 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io> (cherry picked from commit 2454efe018af51c6fc83557fd6e42755de45b79b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--cmake/Functions.cmake5
1 files changed, 4 insertions, 1 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 75ba48352..6d4506a45 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -430,6 +430,10 @@ function(add_linker_options target buildDir completeStatic)
set(libs_rsp "${buildDir}/${ninjaTarget}_libs.rsp")
set_target_properties(${cmakeTarget} PROPERTIES STATIC_LIBRARY_OPTIONS "@${objects_rsp}")
if(LINUX)
+ get_gn_arch(cpu ${TEST_architecture_arch})
+ if(CMAKE_CROSSCOMPILING AND cpu STREQUAL "arm" AND ${config} STREQUAL "Debug")
+ target_link_options(${cmakeTarget} PRIVATE "LINKER:--long-plt")
+ endif()
target_link_options(${cmakeTarget} PRIVATE "$<$<CONFIG:${config}>:@${objects_rsp}>")
# Chromium is meant for linking with gc-sections, which seems to not always get applied otherwise
target_link_options(${cmakeTarget} PRIVATE "-Wl,--gc-sections")
@@ -442,7 +446,6 @@ function(add_linker_options target buildDir completeStatic)
target_link_libraries(${cmakeTarget} PRIVATE
"$<1:-Wl,--no-fatal-warnings $<$<CONFIG:${config}>:@${libs_rsp}> -Wl,--no-fatal-warnings>"
)
-
endif()
if(MACOS)
target_link_options(${cmakeTarget} PRIVATE "$<$<CONFIG:${config}>:@${objects_rsp}>")