sys-devel/binutils: expand SONAME with USE=multitarget, bug #666100
authorSergei Trofimovich <slyfox@gentoo.org>
Sat, 15 Sep 2018 11:26:52 +0000 (12:26 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Sat, 15 Sep 2018 11:27:17 +0000 (12:27 +0100)
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
sys-devel/binutils/binutils-9999.ebuild

index 6f0279b237c91e94f0b32fc072b6ef3a594cff21..6ead7bd848bf48911c7acd561be9d03566abcb36 100644 (file)
@@ -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
index b51be8aa269b4300bcf027e931d4513f5df22784..93dcbdf26b081c8194f49061dca0f8bd855972f4 100644 (file)
@@ -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