summaryrefslogtreecommitdiff
path: root/system/llvm4/cmake-fix-libLLVM-name.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/llvm4/cmake-fix-libLLVM-name.patch')
-rw-r--r--system/llvm4/cmake-fix-libLLVM-name.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/system/llvm4/cmake-fix-libLLVM-name.patch b/system/llvm4/cmake-fix-libLLVM-name.patch
new file mode 100644
index 000000000..cb29fe2ef
--- /dev/null
+++ b/system/llvm4/cmake-fix-libLLVM-name.patch
@@ -0,0 +1,26 @@
+Include version in name of shared libs
+
+libLLVM.so -> libLLVM-$MAJOR.$MINOR.so
+
+Source: http://pkgs.fedoraproject.org/cgit/rpms/llvm3.9.git/tree/llvm-soversion.patch?id=3dac83eaa5b88f550ae50125b14b8f644e10617b
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -450,6 +450,18 @@
+ PREFIX ""
+ )
+ endif()
++
++ # Set SOVERSION on shared libraries that lack explicit SONAME
++ # specifier, on *nix systems that are not Darwin.
++ if(UNIX AND NOT APPLE AND NOT ARG_SONAME)
++ set_target_properties(${name}
++ PROPERTIES
++ # Concatenate the version numbers since ldconfig expects exactly
++ # one component indicating the ABI version, while LLVM uses
++ # major+minor for that.
++ SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}
++ VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
++ endif()
+ endif()
+
+ if(ARG_MODULE OR ARG_SHARED)