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