Skip to content

Commit

Permalink
Gentoo: add --with-extra-soversion-suffix= option
Browse files Browse the repository at this point in the history
--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>
  • Loading branch information
Sergei Trofimovich committed Sep 12, 2018
1 parent cde0b7b commit 2e1dadb
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 0 deletions.
5 changes: 5 additions & 0 deletions bfd/Makefile.am
Expand Up @@ -59,6 +59,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

Expand Down Expand Up @@ -961,6 +963,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," \
Expand Down
4 changes: 4 additions & 0 deletions bfd/Makefile.in
Expand Up @@ -317,6 +317,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@
Expand Down Expand Up @@ -2073,6 +2074,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," \
Expand Down
13 changes: 13 additions & 0 deletions bfd/configure
Expand Up @@ -696,6 +696,7 @@ WARN_CFLAGS
REPORT_BUGS_TEXI
REPORT_BUGS_TO
PKGVERSION
EXTRA_SOVERSION_SUFFIX
DEBUGDIR
PLUGINS_FALSE
PLUGINS_TRUE
Expand Down Expand Up @@ -833,6 +834,7 @@ enable_secureplt
enable_separate_code
enable_leading_mingw64_underscores
with_separate_debug_dir
with_extra_soversion_suffix
with_pkgversion
with_bugurl
enable_werror
Expand Down Expand Up @@ -1508,6 +1510,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
Expand Down Expand Up @@ -12520,6 +12524,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.
Expand Down
7 changes: 7 additions & 0 deletions bfd/configure.ac
Expand Up @@ -137,6 +137,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([http://www.sourceware.org/bugzilla/])

Expand Down

0 comments on commit 2e1dadb

Please sign in to comment.