aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2021-07-24 15:20:16 +0200
committerAndreas K. Hüttel <dilfridge@gentoo.org>2021-07-24 18:29:54 +0200
commit3111ad92464028a0247047e08921cec15c2b0d0e (patch)
tree520197a8f83c3261f0d460693180069832b7f6c3
parentGentoo: Pass --hash-style=sysv to ld in the testsuite (diff)
downloadbinutils-gdb-3111ad92464028a0247047e08921cec15c2b0d0e.tar.gz
binutils-gdb-3111ad92464028a0247047e08921cec15c2b0d0e.tar.bz2
binutils-gdb-3111ad92464028a0247047e08921cec15c2b0d0e.zip
Give also libctf optionally a gentoo-specific soversion
-rw-r--r--libctf/Makefile.am13
-rw-r--r--libctf/Makefile.in9
-rwxr-xr-xlibctf/configure45
-rw-r--r--libctf/configure.ac8
4 files changed, 70 insertions, 5 deletions
diff --git a/libctf/Makefile.am b/libctf/Makefile.am
index e586d25fb37..eabc7fa8394 100644
--- a/libctf/Makefile.am
+++ b/libctf/Makefile.am
@@ -21,6 +21,8 @@ ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
AUTOMAKE_OPTIONS = dejagnu foreign no-texinfo.tex
+EXTRA_SOVERSION_SUFFIX = @EXTRA_SOVERSION_SUFFIX@
+
# This is where we get zlib from. zlibdir is -L../zlib and zlibinc is
# -I../zlib, unless we were configured with --with-system-zlib, in which
# case both are empty.
@@ -41,8 +43,17 @@ include_HEADERS =
noinst_LTLIBRARIES = libctf.la libctf-nobfd.la
endif
+# libctf by default uses libtool versioning. Unfortunately that keeps us from adding
+# a supplement to the soversion. So we need to switch tracks and be creative.
+
+if HAVE_EXTRA_SOVERSION_SUFFIX
+gentoo_ctf_soversion = 0.0.0.$(EXTRA_SOVERSION_SUFFIX)
+else
+gentoo_ctf_soversion = 0.0.0
+endif
+
libctf_nobfd_la_LIBADD = @CTF_LIBADD@ $(ZLIB)
-libctf_nobfd_la_LDFLAGS = -version-info 0:0:0 @SHARED_LDFLAGS@ @VERSION_FLAGS@
+libctf_nobfd_la_LDFLAGS = -release $(gentoo_ctf_soversion) @SHARED_LDFLAGS@ @VERSION_FLAGS@
libctf_nobfd_la_CPPFLAGS = $(AM_CPPFLAGS) -DNOBFD=1
libctf_nobfd_la_SOURCES = ctf-archive.c ctf-dump.c ctf-create.c ctf-decl.c ctf-error.c \
ctf-hash.c ctf-labels.c ctf-dedup.c ctf-link.c ctf-lookup.c \
diff --git a/libctf/Makefile.in b/libctf/Makefile.in
index 5cfa100f9cc..d92002a51d1 100644
--- a/libctf/Makefile.in
+++ b/libctf/Makefile.in
@@ -338,6 +338,7 @@ EXEEXT = @EXEEXT@
# Setup the testing framework, if you have one
EXPECT = expect
+EXTRA_SOVERSION_SUFFIX = @EXTRA_SOVERSION_SUFFIX@
FGREP = @FGREP@
GENCAT = @GENCAT@
GMSGFMT = @GMSGFMT@
@@ -436,6 +437,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@@ -469,8 +471,13 @@ AM_CFLAGS = -std=gnu99 @ac_libctf_warn_cflags@ @warn@ @c_warn@ @WARN_PEDANTIC@ @
@INSTALL_LIBBFD_FALSE@include_HEADERS =
@INSTALL_LIBBFD_TRUE@include_HEADERS = $(INCDIR)/ctf.h $(INCDIR)/ctf-api.h
@INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libctf.la libctf-nobfd.la
+@HAVE_EXTRA_SOVERSION_SUFFIX_FALSE@gentoo_ctf_soversion = 0.0.0
+
+# libctf by default uses libtool versioning. Unfortunately that keeps us from adding
+# a supplement to the soversion. So we need to switch tracks and be creative.
+@HAVE_EXTRA_SOVERSION_SUFFIX_TRUE@gentoo_ctf_soversion = 0.0.0.$(EXTRA_SOVERSION_SUFFIX)
libctf_nobfd_la_LIBADD = @CTF_LIBADD@ $(ZLIB)
-libctf_nobfd_la_LDFLAGS = -version-info 0:0:0 @SHARED_LDFLAGS@ @VERSION_FLAGS@
+libctf_nobfd_la_LDFLAGS = -release $(gentoo_ctf_soversion) @SHARED_LDFLAGS@ @VERSION_FLAGS@
libctf_nobfd_la_CPPFLAGS = $(AM_CPPFLAGS) -DNOBFD=1
libctf_nobfd_la_SOURCES = ctf-archive.c ctf-dump.c ctf-create.c \
ctf-decl.c ctf-error.c ctf-hash.c ctf-labels.c ctf-dedup.c \
diff --git a/libctf/configure b/libctf/configure
index 82bcf13a606..f2cbcf5f969 100755
--- a/libctf/configure
+++ b/libctf/configure
@@ -643,6 +643,9 @@ CTF_LIBADD
SHARED_LDFLAGS
NEED_CTF_QSORT_R_FALSE
NEED_CTF_QSORT_R_TRUE
+HAVE_EXTRA_SOVERSION_SUFFIX_FALSE
+HAVE_EXTRA_SOVERSION_SUFFIX_TRUE
+EXTRA_SOVERSION_SUFFIX
ENABLE_LIBCTF_HASH_DEBUGGING_FALSE
ENABLE_LIBCTF_HASH_DEBUGGING_TRUE
zlibinc
@@ -768,6 +771,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -804,6 +808,7 @@ enable_maintainer_mode
enable_install_libbfd
with_system_zlib
enable_libctf_hash_debugging
+with_extra_soversion_suffix
'
ac_precious_vars='build_alias
host_alias
@@ -852,6 +857,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1104,6 +1110,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1241,7 +1256,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1394,6 +1409,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1461,6 +1477,8 @@ Optional Packages:
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-system-zlib use installed libz
+ --with-extra-soversion-suffix=SUFFIX
+ Append '.SUFFIX' to SONAME [[default=]]
Some influential environment variables:
CC C compiler command
@@ -11586,7 +11604,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11589 "configure"
+#line 11607 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11692,7 +11710,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11695 "configure"
+#line 11713 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12899,6 +12917,23 @@ else
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
+
+
+ if test -n "${with_extra_soversion_suffix}"; then
+ HAVE_EXTRA_SOVERSION_SUFFIX_TRUE=
+ HAVE_EXTRA_SOVERSION_SUFFIX_FALSE='#'
+else
+ HAVE_EXTRA_SOVERSION_SUFFIX_TRUE='#'
+ HAVE_EXTRA_SOVERSION_SUFFIX_FALSE=
+fi
+
+
# Similar to GDB_AC_CHECK_BFD.
OLD_CFLAGS=$CFLAGS
OLD_LDFLAGS=$LDFLAGS
@@ -13657,6 +13692,10 @@ if test -z "${ENABLE_LIBCTF_HASH_DEBUGGING_TRUE}" && test -z "${ENABLE_LIBCTF_HA
as_fn_error $? "conditional \"ENABLE_LIBCTF_HASH_DEBUGGING\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_EXTRA_SOVERSION_SUFFIX_TRUE}" && test -z "${HAVE_EXTRA_SOVERSION_SUFFIX_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_EXTRA_SOVERSION_SUFFIX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${NEED_CTF_QSORT_R_TRUE}" && test -z "${NEED_CTF_QSORT_R_FALSE}"; then
as_fn_error $? "conditional \"NEED_CTF_QSORT_R\" was never defined.
diff --git a/libctf/configure.ac b/libctf/configure.ac
index 80644b89d67..f7e6180afd8 100644
--- a/libctf/configure.ac
+++ b/libctf/configure.ac
@@ -77,6 +77,14 @@ if test "${enable_libctf_hash_debugging}" = yes; then
fi
AM_CONDITIONAL(ENABLE_LIBCTF_HASH_DEBUGGING, test "${enable_libctf_hash_debugging}" = yes)
+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)
+AM_CONDITIONAL([HAVE_EXTRA_SOVERSION_SUFFIX], [test -n "${with_extra_soversion_suffix}"])
+
# Similar to GDB_AC_CHECK_BFD.
OLD_CFLAGS=$CFLAGS
OLD_LDFLAGS=$LDFLAGS