diff options
author | Michał Górny <mgorny@gentoo.org> | 2016-10-04 08:39:01 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2016-10-04 08:41:46 +0200 |
commit | ac51d7f887476d9f6b83b7a35f9ea10cd06a4c7d (patch) | |
tree | 8975ce27566de4eebdd05fbd3cf56f5c3852e4ae | |
parent | sys-devel/llvm: Sphinx race condition has been fixed upstream (diff) | |
download | gentoo-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-.patch | 62 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-3.8.0-r3.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-3.8.1-r2.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-3.8.1.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-3.9.0.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-9999.ebuild | 4 |
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 |