summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2022-08-03 09:58:00 +0200
committerMichal Klocek <michal.klocek@qt.io>2022-08-24 00:06:43 +0200
commit2454efe018af51c6fc83557fd6e42755de45b79b (patch)
tree0aa62e1ec0b3af02ab4325c4e2dc8cfa6a1a9d13 /cmake
parenta7d353ae7d85438b92c8e376cbf6cf92c05a0952 (diff)
Fix debug build on arm
We need --long-plt for arm debug builds. Pick-to: 6.4 6.3 Change-Id: I99fa6a2f8ec803cc399509d02a5cc9ad22fd0f87 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Functions.cmake5
1 files changed, 4 insertions, 1 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake
index 3055252a0..3df8fde5e 100644
--- a/cmake/Functions.cmake
+++ b/cmake/Functions.cmake
@@ -433,6 +433,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")
@@ -445,7 +449,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}>")