summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2016-10-04 08:39:01 +0200
committerMichał Górny <mgorny@gentoo.org>2016-10-04 08:41:46 +0200
commitac51d7f887476d9f6b83b7a35f9ea10cd06a4c7d (patch)
tree8975ce27566de4eebdd05fbd3cf56f5c3852e4ae
parentsys-devel/llvm: Sphinx race condition has been fixed upstream (diff)
downloadgentoo-ac51d7f887476d9f6b83b7a35f9ea10cd06a4c7d.tar.gz
gentoo-ac51d7f887476d9f6b83b7a35f9ea10cd06a4c7d.tar.bz2
gentoo-ac51d7f887476d9f6b83b7a35f9ea10cd06a4c7d.zip
sys-devel/llvm: SOVERSIONs have been fixed upst, backport new to 3.9.0
-rw-r--r--sys-devel/llvm/files/3.8.1/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch (renamed from sys-devel/llvm/files/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch)0
-rw-r--r--sys-devel/llvm/files/3.9.0/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch62
-rw-r--r--sys-devel/llvm/llvm-3.8.0-r3.ebuild2
-rw-r--r--sys-devel/llvm/llvm-3.8.1-r2.ebuild2
-rw-r--r--sys-devel/llvm/llvm-3.8.1.ebuild2
-rw-r--r--sys-devel/llvm/llvm-3.9.0.ebuild2
-rw-r--r--sys-devel/llvm/llvm-9999.ebuild4
7 files changed, 66 insertions, 8 deletions
diff --git a/sys-devel/llvm/files/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch b/sys-devel/llvm/files/3.8.1/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
index c333bc4b9627..c333bc4b9627 100644
--- a/sys-devel/llvm/files/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
+++ b/sys-devel/llvm/files/3.8.1/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
diff --git a/sys-devel/llvm/files/3.9.0/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch b/sys-devel/llvm/files/3.9.0/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch
new file mode 100644
index 000000000000..6634cdebe351
--- /dev/null
+++ b/sys-devel/llvm/files/3.9.0/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch
@@ -0,0 +1,62 @@
+From aeddc35a35c55f487977d7609060225e03e2028b Mon Sep 17 00:00:00 2001
+From: Michal Gorny <mgorny@gentoo.org>
+Date: Tue, 4 Oct 2016 06:09:18 +0000
+Subject: [PATCH] [cmake] Reintroduce (ldconfig-compatible) SOVERSIONs on
+ shared libraries
+
+Reintroduce versioning of shared libraries via SOVERSION, addressing
+the issues with the previous design, since Gentoo is relying
+on shared-split install of LLVM. The SOVERSIONs were originally
+introduced in r229720 for all libraries, and removed in r252093 in favor
+of custom SONAME. As far as I understand, the major concern with the old
+versioning was that the used versions were incompatible with ldconfig.
+
+Having considered that, this commit introduce SOVERSIONS with the
+following considerations:
+
+1. SOVERSIONs are formed of major & minor version concatenated -- i.e.
+for 4.0 its .so.40. This matches the common practice where the first
+version number indicates ABI breakage, and therefore fixes the issues
+with ldconfig. Additionally, VERSION with the remaining verion
+components appended is used, however this is not strictly necessary.
+
+2. The versioning is only applied to libraries with no explicit SONAME
+specified -- i.e. it won't apply to libLLVM but only to the split
+libraries. It will also apply to libraries installed by the subprojects.
+
+3. The versioning is only done on *nix systems, Darwin excluded. This
+matches the current use of SONAME.
+
+Differential Revision: https://reviews.llvm.org/D24757
+
+git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283189 91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ cmake/modules/AddLLVM.cmake | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 37b3b80..7cb1b0c 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -450,6 +450,18 @@ function(llvm_add_library name)
+ 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)
+--
+2.10.0
+
diff --git a/sys-devel/llvm/llvm-3.8.0-r3.ebuild b/sys-devel/llvm/llvm-3.8.0-r3.ebuild
index b08f4d65cca5..e45720084cf4 100644
--- a/sys-devel/llvm/llvm-3.8.0-r3.ebuild
+++ b/sys-devel/llvm/llvm-3.8.0-r3.ebuild
@@ -167,7 +167,7 @@ src_prepare() {
# Restore SOVERSIONs for shared libraries
# https://bugs.gentoo.org/show_bug.cgi?id=578392
- eapply "${FILESDIR}"/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
+ eapply "${FILESDIR}"/3.8.1/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
# disable use of SDK on OSX, bug #568758
sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
diff --git a/sys-devel/llvm/llvm-3.8.1-r2.ebuild b/sys-devel/llvm/llvm-3.8.1-r2.ebuild
index d2cdc518f0dd..62662f78144a 100644
--- a/sys-devel/llvm/llvm-3.8.1-r2.ebuild
+++ b/sys-devel/llvm/llvm-3.8.1-r2.ebuild
@@ -168,7 +168,7 @@ src_prepare() {
# Restore SOVERSIONs for shared libraries
# https://bugs.gentoo.org/show_bug.cgi?id=578392
- eapply "${FILESDIR}"/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
+ eapply "${FILESDIR}"/3.8.1/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
# support building llvm against musl-libc
use elibc_musl && eapply "${FILESDIR}"/9999/musl-fixes.patch
diff --git a/sys-devel/llvm/llvm-3.8.1.ebuild b/sys-devel/llvm/llvm-3.8.1.ebuild
index 29b637d22d06..dee841fe04cf 100644
--- a/sys-devel/llvm/llvm-3.8.1.ebuild
+++ b/sys-devel/llvm/llvm-3.8.1.ebuild
@@ -167,7 +167,7 @@ src_prepare() {
# Restore SOVERSIONs for shared libraries
# https://bugs.gentoo.org/show_bug.cgi?id=578392
- eapply "${FILESDIR}"/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
+ eapply "${FILESDIR}"/3.8.1/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
# disable use of SDK on OSX, bug #568758
sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
diff --git a/sys-devel/llvm/llvm-3.9.0.ebuild b/sys-devel/llvm/llvm-3.9.0.ebuild
index 9ec259c6e5a2..91712b50a09c 100644
--- a/sys-devel/llvm/llvm-3.9.0.ebuild
+++ b/sys-devel/llvm/llvm-3.9.0.ebuild
@@ -176,7 +176,7 @@ src_prepare() {
# Restore SOVERSIONs for shared libraries
# https://bugs.gentoo.org/show_bug.cgi?id=578392
- eapply "${FILESDIR}"/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
+ eapply "${FILESDIR}"/3.9.0/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch
# support building llvm against musl-libc
use elibc_musl && eapply "${FILESDIR}"/9999/musl-fixes.patch
diff --git a/sys-devel/llvm/llvm-9999.ebuild b/sys-devel/llvm/llvm-9999.ebuild
index 5e3780217156..1367dddbbb1a 100644
--- a/sys-devel/llvm/llvm-9999.ebuild
+++ b/sys-devel/llvm/llvm-9999.ebuild
@@ -109,10 +109,6 @@ src_prepare() {
# https://bugs.gentoo.org/show_bug.cgi?id=565358
eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch
- # Restore SOVERSIONs for shared libraries
- # https://bugs.gentoo.org/show_bug.cgi?id=578392
- eapply "${FILESDIR}"/9999/0008-cmake-Restore-SOVERSIONs-on-shared-libraries.patch
-
# support building llvm against musl-libc
use elibc_musl && eapply "${FILESDIR}"/9999/musl-fixes.patch