commit:     5d01953075fcfdb1fbb0e39c3f5f07271e4cf092
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 15 11:26:52 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Sep 15 11:27:17 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d019530

sys-devel/binutils: expand SONAME with USE=multitarget, bug #666100

In #663690 creative use of LD_LIBRARY_PATH exposed a problem
of Gentoo's split across binutils and binutils-libs:
we install libbfd.so with the same SONAME but different ABIs.
This caused 'ld' to SIGSEGV or fail asserts.

The change here is to give unique SONAME to each of:
native binutils, cross binutils, binutils-libs packages.

On top of that we encode USE=multitarget flags into SONAME as well.
binutils-libs will also include USE=64-bit-bfd.

This way dynamic linker will be able to detect incompatible changes
like:
- rebuild binutils with new USE flags
- install binutils-libs (silently overrides binutils' libbfd.so)
and report it explicitly.

Bug: https://bugs.gentoo.org/666100
Package-Manager: Portage-2.3.49, Repoman-2.3.10

 sys-devel/binutils/Manifest             | 2 +-
 sys-devel/binutils/binutils-9999.ebuild | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest
index 6f0279b237c..6ead7bd848b 100644
--- a/sys-devel/binutils/Manifest
+++ b/sys-devel/binutils/Manifest
@@ -13,4 +13,4 @@ DIST binutils-2.30-patches-3.tar.xz 548804 BLAKE2B 
428a1750233ae3f019e20cb5ed1d8
 DIST binutils-2.30.tar.xz 20286700 BLAKE2B 
2dd5436a15a601011a1950e6082ec00082f5916fb82ce95ceab424fd8dc19f6daa7ac32a149f222ccdcc603354165cc206fde070eaa44fe2cc5e57486efc7868
 SHA512 
e747ea20d8d79fcd21b9d9f6695059caa7189d60f19256da398e34b789fea9a133c32b192e9693b5828d27683739b0198431bf8b3e39fb3b04884cf89d9aa839
 DIST binutils-2.31.1-patches-2.tar.xz 11232 BLAKE2B 
b8ac65872017c063650d4e04855efa3fd3e9faa566e81fa9fb3ae777c1337627023c1af85b708a7933b577a69652451ff488340d7cc9f035d3a3a655da0fc8d6
 SHA512 
2d0ee2e727586fc39cdb8abc7251c12dd350d18dd84103ddacc08978db48d45445c05b7ea5f095842f6e0350db94d593270b23a38920a01ca59c363decaa2a58
 DIST binutils-2.31.1.tar.xz 20467996 BLAKE2B 
6b914df1fbb7cf54f2159f71b2c2b09f3f6a569b7a3cb4cf9790d0a3733a7548bc0ea32334a178ed3b56e8b97656ae99c7abaf212601beeaeae9a0884c0f6051
 SHA512 
0fca326feb1d5f5fe505a827b20237fe3ec9c13eaf7ec7e35847fd71184f605ba1cefe1314b1b8f8a29c0aa9d88162849ee1c1a3e70c2f7407d88339b17edb30
-DIST binutils-9999-patches-1.tar.xz 10116 BLAKE2B 
1ae970fd13ea1b94f554ed5b3fde4b6bdd90efcfc2488efc2f1465511279027c2e7f2a7371069afadb91bf833680a24e1a5df50d3169c9ee132c933b3c1fdba9
 SHA512 
a5d97d7070b876bf072db2a99a2876c239e03409849b9c93467bd3e70cd97c468110031a09e1c182c05d48004ec3e1651f44a1850b0275a385c3bae598cd98d7
+DIST binutils-9999-patches-2.tar.xz 11672 BLAKE2B 
40b790713fc6cf463de3b3c3d207686890cc674fa44828952e73a66b723e4d9e8374b9e13fd44ffc5e0e5e1dc6eb63910563f4f318ff22f56813bd29ba4fe338
 SHA512 
ed1d88b693e35368e7ec6e16ccd7a5561ba697b778afc2da296f46698aff5d4d6a39c5fc030ce189b00af944d80f673bdac770771d23dd1f256eac2fb5858493

diff --git a/sys-devel/binutils/binutils-9999.ebuild 
b/sys-devel/binutils/binutils-9999.ebuild
index b51be8aa269..93dcbdf26b0 100644
--- a/sys-devel/binutils/binutils-9999.ebuild
+++ b/sys-devel/binutils/binutils-9999.ebuild
@@ -19,7 +19,7 @@ IUSE="+cxx doc multitarget +nls static-libs test"
 #                      for the patchsets
 #                      Default: dilfridge :)
 
-PATCH_VER=1
+PATCH_VER=2
 PATCH_BINUTILS_VER=9999
 
 case ${PV} in
@@ -49,7 +49,7 @@ esac
 # The Gentoo patchset
 #
 PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
-PATCH_DEV=${PATCH_DEV:-dilfridge}
+PATCH_DEV=${PATCH_DEV:-slyfox}
 
 [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI}
        
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz";
@@ -249,6 +249,9 @@ src_configure() {
                # Strip out broken static link flags.
                # https://gcc.gnu.org/PR56750
                --without-stage1-ldflags
+               # Change SONAME to avoid conflict across
+               # {native,cross}/binutils, binutils-libs. #666100
+               --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex 
multitarget mt st)
        )
        echo ./configure "${myconf[@]}"
        "${S}"/configure "${myconf[@]}" || die

Reply via email to