50 lines
1.6 KiB
Diff
50 lines
1.6 KiB
Diff
From 0b755beaa1fdba03d38f887b93a15a58fc0830c7 Mon Sep 17 00:00:00 2001
|
|
From: Sharaf Zaman <shzam@sdf.org>
|
|
Date: Wed, 27 Oct 2021 22:19:07 +0000
|
|
Subject: [PATCH] Fix build on linux clang targets
|
|
|
|
In CheckAtomic.cmake we include is_lock_free because these routines
|
|
don't seem to be included in the compiler's "simple atomics". This
|
|
triggers a failure in clang toolchain, forcing it to link libatomic.
|
|
|
|
Resulting in error: ld.lld: error: undefined symbol: __atomic_is_lock_free
|
|
|
|
CCBUG:444247
|
|
CCBUG:444547
|
|
---
|
|
cmake/modules/CheckAtomic.cmake | 1 +
|
|
libs/image/CMakeLists.txt | 6 ++----
|
|
2 files changed, 3 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake
|
|
index b061e2d65b..df6b70504c 100644
|
|
--- a/cmake/modules/CheckAtomic.cmake
|
|
+++ b/cmake/modules/CheckAtomic.cmake
|
|
@@ -46,6 +46,7 @@ function(check_working_cxx_atomics64 varname)
|
|
std::atomic<uint64_t> x (0);
|
|
int main() {
|
|
uint64_t i = x.load(std::memory_order_relaxed);
|
|
+ x.is_lock_free();
|
|
return 0;
|
|
}
|
|
" ${varname})
|
|
diff --git a/libs/image/CMakeLists.txt b/libs/image/CMakeLists.txt
|
|
index e883c7f1c8..43c945fad3 100644
|
|
--- a/libs/image/CMakeLists.txt
|
|
+++ b/libs/image/CMakeLists.txt
|
|
@@ -372,10 +372,8 @@ target_link_libraries(kritaimage
|
|
|
|
target_link_libraries(kritaimage PUBLIC ${Boost_SYSTEM_LIBRARY})
|
|
|
|
-if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
|
- if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
|
|
- target_link_libraries(kritaimage PUBLIC atomic)
|
|
- endif()
|
|
+if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB)
|
|
+ target_link_libraries(kritaimage PUBLIC atomic)
|
|
endif()
|
|
|
|
if(OpenEXR_FOUND)
|
|
--
|
|
GitLab
|
|
|