summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/symengine')
-rw-r--r--sci-libs/symengine/files/symengine-0.8.1-fix_llvm.patch53
-rw-r--r--sci-libs/symengine/symengine-0.8.1-r1.ebuild1
2 files changed, 54 insertions, 0 deletions
diff --git a/sci-libs/symengine/files/symengine-0.8.1-fix_llvm.patch b/sci-libs/symengine/files/symengine-0.8.1-fix_llvm.patch
new file mode 100644
index 000000000000..3e39a9eda500
--- /dev/null
+++ b/sci-libs/symengine/files/symengine-0.8.1-fix_llvm.patch
@@ -0,0 +1,53 @@
+From: Matthias Maier <tamiko@43-1.org>
+Date: Sat, 11 Jun 2022 01:44:54 -0500
+Subject: [PATCH] Fix cmake configure for shared LLVM libraries
+
+Gentoo builds LLVM into a combined shared library. The CMake
+configuration shipped with LLVM is evidently broken in this case, see
+
+ https://github.com/llvm/llvm-project/issues/34593
+ https://bugs.gentoo.org/745915
+
+We work around this issue by simply linking against the monolithic
+"LLVM" target.
+---
+ CMakeLists.txt | 23 +----------------------
+ 1 file changed, 1 insertion(+), 22 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cf5ab3b..dfa6605 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -402,28 +402,7 @@ if (WITH_LLVM)
+ endforeach()
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG")
+
+- llvm_map_components_to_libnames(llvm_libs_direct ${SYMENGINE_LLVM_COMPONENTS})
+- llvm_expand_dependencies(llvm_libs ${llvm_libs_direct})
+-
+- if (BUILD_SHARED_LIBS)
+- set(SYMENGINE_LLVM_LINK_DOWNSTREAM_DEFAULT False)
+- foreach(LLVM_LIB ${llvm_libs})
+- get_target_property(${LLVM_LIB}_IMPORT_LOCATION ${LLVM_LIB} LOCATION)
+- if (NOT "${${LLVM_LIB}_IMPORT_LOCATION}" MATCHES "NOTFOUND")
+- if (NOT "${${LLVM_LIB}_IMPORT_LOCATION}" MATCHES ".a$|.lib$")
+- set(SYMENGINE_LLVM_LINK_DOWNSTREAM_DEFAULT True)
+- endif()
+- endif()
+- endforeach()
+- else()
+- set(SYMENGINE_LLVM_LINK_DOWNSTREAM_DEFAULT True)
+- endif()
+- set(SYMENGINE_LLVM_LINK_DOWNSTREAM ${SYMENGINE_LLVM_LINK_DOWNSTREAM_DEFAULT}
+- CACHE INTERNAL "Link to llvm in SymEngineConfig.cmake")
+- if (NOT SYMENGINE_LLVM_LINK_DOWNSTREAM)
+- unset(SYMENGINE_LLVM_COMPONENTS)
+- endif ()
+- set(LIBS ${LIBS} ${llvm_libs})
++ set(LIBS ${LIBS} LLVM)
+ include_directories(SYSTEM ${LLVM_INCLUDE_DIRS})
+ set(HAVE_SYMENGINE_LLVM yes)
+ set(PKGS ${PKGS} "LLVM")
+--
+2.35.1
+
diff --git a/sci-libs/symengine/symengine-0.8.1-r1.ebuild b/sci-libs/symengine/symengine-0.8.1-r1.ebuild
index c389bae57034..6aee3b49af90 100644
--- a/sci-libs/symengine/symengine-0.8.1-r1.ebuild
+++ b/sci-libs/symengine/symengine-0.8.1-r1.ebuild
@@ -31,6 +31,7 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-0.7.0-cmake-build-type.patch"
+ "${FILESDIR}/${PN}-0.8.1-fix_llvm.patch"
)
pkg_pretend() {