From: Jan Palus Date: Mon, 17 Oct 2022 15:48:01 +0000 (+0200) Subject: on platforms without all native atomic ops link libatomic together with libLLVM X-Git-Tag: auto/th/llvm-15.0.2-1 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fllvm.git;a=commitdiff_plain;h=5acac09 on platforms without all native atomic ops link libatomic together with libLLVM see: https://github.com/llvm/llvm-project/issues/55880 --- diff --git a/atomic.patch b/atomic.patch new file mode 100644 index 0000000..8ddd38e --- /dev/null +++ b/atomic.patch @@ -0,0 +1,22 @@ +--- llvm-15.0.2.src/cmake/modules/AddLLVM.cmake.orig 2022-10-04 11:29:17.000000000 +0200 ++++ llvm-15.0.2.src/cmake/modules/AddLLVM.cmake 2022-10-16 23:47:37.416529186 +0200 +@@ -657,6 +657,9 @@ + elseif (NOT ARG_COMPONENT_LIB) + if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB) + set(llvm_libs LLVM) ++ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB OR NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB) ++ list(APPEND llvm_libs "atomic") ++ endif() + else() + llvm_map_components_to_libnames(llvm_libs + ${ARG_LINK_COMPONENTS} +@@ -993,6 +996,9 @@ + # API for all shared libaries loaded by this executable. + target_link_libraries(${name} PRIVATE ${LLVM_PTHREAD_LIB}) + endif() ++ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB OR NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB) ++ target_link_libraries(${name} PRIVATE "atomic") ++ endif() + + llvm_codesign(${name} ENTITLEMENTS ${ARG_ENTITLEMENTS} BUNDLE_PATH ${ARG_BUNDLE_PATH}) + endmacro(add_llvm_executable name) diff --git a/llvm.spec b/llvm.spec index 7f680b8..cf86ee3 100644 --- a/llvm.spec +++ b/llvm.spec @@ -120,6 +120,7 @@ Patch9: %{name}-libexecdir.patch Patch10: compiler-rt-paths.patch Patch11: cmake-utils-path-override.patch Patch12: x32-compiler-rt.patch +Patch13: atomic.patch URL: https://llvm.org/ BuildRequires: bash BuildRequires: binutils-devel @@ -712,6 +713,7 @@ Integracja narzędzi Clang do formatowania i zmiany nazw z Vimem. %patch12 -p1 %endif %patch11 -p1 +%patch13 -p1 grep -rl /usr/bin/env projects tools utils | xargs sed -i -e '1{ s,^#!.*bin/env python3\?,#!%{__python3},