diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2021-07-20 21:12:38 +0200 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2023-07-30 17:07:57 +0200 |
commit | deb3e29c91722e1b8558c23295dc6a90a34aaee0 (patch) | |
tree | b282f4f55ecc28807829e74af96c6bf991bf4d72 | |
parent | Gentoo: libiberty: install PIC version of libiberty.a (diff) | |
download | binutils-gdb-deb3e29c91722e1b8558c23295dc6a90a34aaee0.tar.gz binutils-gdb-deb3e29c91722e1b8558c23295dc6a90a34aaee0.tar.bz2 binutils-gdb-deb3e29c91722e1b8558c23295dc6a90a34aaee0.zip |
Gentoo: add --with-extra-soversion-suffix= option
--with-extra-soversion-suffix= will allow Gentoo to
distinct libbfd.so and libopcodes.so to have more precise
SONAME.
Today --enable-targets=all and --enable-64-bit-bfd change
libbfd.so ABI:
--enable-targets=all adds new symbols to the library
--enable-64-bit-bfd modifies BFD_ARCH_SIZE default and
changes sizes of integer parameters and fields to most
APIs.
--with-extra-soversion-suffix= will allow Gentoo to inject
additional keys into SONAME to indicate ABI change and avoid
hard to diagnose crashes when user reinstalls libbfd.so
built with different flags (see https://bugs.gentoo.org/663690).
Bug: https://bugs.gentoo.org/666100
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Ported to binutils 2.37 by Andreas K. Hüttel <dilfridge@gentoo.org>
-rw-r--r-- | bfd/Makefile.am | 5 | ||||
-rw-r--r-- | bfd/Makefile.in | 4 | ||||
-rwxr-xr-x | bfd/configure | 13 | ||||
-rw-r--r-- | bfd/configure.ac | 7 |
4 files changed, 29 insertions, 0 deletions
diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 5c5fdefd3b8..fe26bbf4f0f 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -64,6 +64,8 @@ bfdinclude_HEADERS += $(INCDIR)/plugin-api.h LIBDL = @lt_cv_dlopen_libs@ endif +EXTRA_SOVERSION_SUFFIX = @EXTRA_SOVERSION_SUFFIX@ + # bfd.h goes here, for now BFD_H = bfd.h @@ -976,6 +978,9 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ fi ;\ + if test x"$(EXTRA_SOVERSION_SUFFIX)" != x ; then \ + bfd_soversion="$${bfd_soversion}.$(EXTRA_SOVERSION_SUFFIX)" ;\ + fi ;\ $(SED) -e "s,@bfd_version@,$$bfd_version," \ -e "s,@bfd_version_string@,$$bfd_version_string," \ -e "s,@bfd_version_package@,$$bfd_version_package," \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 4edfedee924..70a2442957e 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -342,6 +342,7 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ +EXTRA_SOVERSION_SUFFIX = @EXTRA_SOVERSION_SUFFIX@ FGREP = @FGREP@ GENCAT = @GENCAT@ GMSGFMT = @GMSGFMT@ @@ -2435,6 +2436,9 @@ bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ fi ;\ + if test x"$(EXTRA_SOVERSION_SUFFIX)" != x ; then \ + bfd_soversion="$${bfd_soversion}.$(EXTRA_SOVERSION_SUFFIX)" ;\ + fi ;\ $(SED) -e "s,@bfd_version@,$$bfd_version," \ -e "s,@bfd_version_string@,$$bfd_version_string," \ -e "s,@bfd_version_package@,$$bfd_version_package," \ diff --git a/bfd/configure b/bfd/configure index 910af3ce6d8..c513673db3d 100755 --- a/bfd/configure +++ b/bfd/configure @@ -695,6 +695,7 @@ WARN_CFLAGS REPORT_BUGS_TEXI REPORT_BUGS_TO PKGVERSION +EXTRA_SOVERSION_SUFFIX DEBUGDIR ENABLE_BFD_64_BIT_FALSE ENABLE_BFD_64_BIT_TRUE @@ -836,6 +837,7 @@ enable_secureplt enable_separate_code enable_leading_mingw64_underscores with_separate_debug_dir +with_extra_soversion_suffix with_pkgversion with_bugurl enable_werror @@ -1518,6 +1520,8 @@ Optional Packages: --with-separate-debug-dir=DIR Look for global separate debug info in DIR [[default=LIBDIR/debug]] + --with-extra-soversion-suffix=SUFFIX + Append '.SUFFIX' to SONAME [default=] --with-pkgversion=PKG Use PKG in the version string in place of "GNU Binutils" --with-bugurl=URL Direct users to URL to report a bug @@ -12033,6 +12037,15 @@ fi +EXTRA_SOVERSION_SUFFIX= + +# Check whether --with-extra-soversion-suffix was given. +if test "${with_extra_soversion_suffix+set}" = set; then : + withval=$with_extra_soversion_suffix; EXTRA_SOVERSION_SUFFIX="${withval}" +fi + + + # Check whether --with-pkgversion was given. diff --git a/bfd/configure.ac b/bfd/configure.ac index f044616f4d9..f22a87f8f54 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -168,6 +168,13 @@ AC_ARG_WITH(separate-debug-dir, [DEBUGDIR="${withval}"]) AC_SUBST(DEBUGDIR) +EXTRA_SOVERSION_SUFFIX= +AC_ARG_WITH(extra-soversion-suffix, + AS_HELP_STRING([--with-extra-soversion-suffix=SUFFIX], + [Append '.SUFFIX' to SONAME [[default=]]]), +[EXTRA_SOVERSION_SUFFIX="${withval}"]) +AC_SUBST(EXTRA_SOVERSION_SUFFIX) + ACX_PKGVERSION([GNU Binutils]) ACX_BUGURL([https://sourceware.org/bugzilla/]) |