commit: 36938034e92b826ba1436f01b4af7ae762d72d4a Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Wed Dec 29 11:50:41 2021 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Sat Feb 19 16:26:31 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36938034
media-gfx/krita: Fix build with clang Reported-by: Michael Egger <egger.m <AT> protonmail.com> Closes: https://bugs.gentoo.org/830225 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> media-gfx/krita/files/krita-5.0.0-clang.patch | 50 +++++++++++++++++++++++++++ media-gfx/krita/krita-5.0.2.ebuild | 5 ++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/media-gfx/krita/files/krita-5.0.0-clang.patch b/media-gfx/krita/files/krita-5.0.0-clang.patch new file mode 100644 index 000000000000..6c9c71d4fca2 --- /dev/null +++ b/media-gfx/krita/files/krita-5.0.0-clang.patch @@ -0,0 +1,50 @@ +From 0b755beaa1fdba03d38f887b93a15a58fc0830c7 Mon Sep 17 00:00:00 2001 +From: Sharaf Zaman <sh...@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 + diff --git a/media-gfx/krita/krita-5.0.2.ebuild b/media-gfx/krita/krita-5.0.2.ebuild index e880d07ce0b2..685904486932 100644 --- a/media-gfx/krita/krita-5.0.2.ebuild +++ b/media-gfx/krita/krita-5.0.2.ebuild @@ -86,7 +86,10 @@ BDEPEND=" sys-devel/gettext " -PATCHES=( "${FILESDIR}"/${PN}-4.3.1-tests-optional.patch ) +PATCHES=( + "${FILESDIR}"/${PN}-4.3.1-tests-optional.patch + "${FILESDIR}"/${PN}-5.0.0-clang.patch # bug 830225 +) pkg_setup() { python-single-r1_pkg_setup