aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2021-01-05 13:25:56 +0000
committerNick Alcock <nick.alcock@oracle.com>2021-01-05 14:53:40 +0000
commit1038406a8f6609ad0a449746da70393b0835f699 (patch)
tree633a10646d1fff39581ac6008535f43f9393ebf0
parent37002871ac2111eb3c88f44659c3c67d2fde1997 (diff)
downloadgdb-1038406a8f6609ad0a449746da70393b0835f699.zip
gdb-1038406a8f6609ad0a449746da70393b0835f699.tar.gz
gdb-1038406a8f6609ad0a449746da70393b0835f699.tar.bz2
libctf: rip out BFD_DEPENDENCIES / BFD_LIBADD
This complex morass inherited from libopcodes, which endeavours to implement the effect of specifying ../bfd/libbfd.la in _LIBADD without actually doing so, appears to be working around a libtool bug which as far as I can see is no longer present (i.e., the install directory no longer appears in -L arguments in libtool link-mode invocations, so there is no danger of picking up old libbfds or other dependent libraries). Replaced with a simple reference to libbfd.la in the appropriate place. Also adjusted things a little more so that libctf.la and libctf-nobfd.la are self-contained, even when linking statically. This opens up the possibility of running libtool to link against libctf from inside the (upcoming) testsuite. libctf/ChangeLog 2021-01-05 Nick Alcock <nick.alcock@oracle.com> * configure.ac (BFD_LIBADD): Remove. (BFD_DEPENDENCIES): Likewise. Remove associated cases. (SHARED_LIBADD): Rename to... (CTF_LIBADD): ... this. Stick in a suitable libiberty even when linking statically. * Makefile.am (libctf_nobfd_la_LIBADD): Adjust accordingly. libctf uses libintl. (libctf_la_LIBADD): Reference libbfd.la directly, not via BFD_LIBADD. (libctf_la_DEPENDENCIES): Remove. * Makefile.in: Regenerate. * configure: Likewise.
-rw-r--r--libctf/ChangeLog15
-rw-r--r--libctf/Makefile.am5
-rw-r--r--libctf/Makefile.in15
-rwxr-xr-xlibctf/configure36
-rw-r--r--libctf/configure.ac30
5 files changed, 36 insertions, 65 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 8ba75f3..7e4997e 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,20 @@
2021-01-05 Nick Alcock <nick.alcock@oracle.com>
+ * configure.ac (BFD_LIBADD): Remove.
+ (BFD_DEPENDENCIES): Likewise. Remove associated cases.
+ (SHARED_LIBADD): Rename to...
+ (CTF_LIBADD): ... this. Stick in a suitable libiberty even when
+ linking statically.
+ * Makefile.am (libctf_nobfd_la_LIBADD): Adjust accordingly.
+ libctf uses libintl.
+ (libctf_la_LIBADD): Reference libbfd.la directly, not via
+ BFD_LIBADD.
+ (libctf_la_DEPENDENCIES): Remove.
+ * Makefile.in: Regenerate.
+ * configure: Likewise.
+
+2021-01-05 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-decl.c (ctf_decl_push): Exclude slices from the decl stack.
* ctf-types.c (ctf_type_aname): No longer deal with slices here.
* ctf-dump.c (ctf_dump_membstate_t) <cdm_toplevel_indent>: Constify.
diff --git a/libctf/Makefile.am b/libctf/Makefile.am
index 32a4f5b..a66ccc1 100644
--- a/libctf/Makefile.am
+++ b/libctf/Makefile.am
@@ -39,7 +39,7 @@ include_HEADERS =
noinst_LTLIBRARIES = libctf.la libctf-nobfd.la
endif
-libctf_nobfd_la_LIBADD = @SHARED_LIBADD@ $(ZLIB)
+libctf_nobfd_la_LIBADD = @CTF_LIBADD@ $(LIBINTL) $(ZLIB)
libctf_nobfd_la_LDFLAGS = -version-info 0:0:0 @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 \
@@ -50,8 +50,7 @@ if NEED_CTF_QSORT_R
libctf_nobfd_la_SOURCES += ctf-qsort_r.c
endif
-libctf_la_LIBADD = @BFD_LIBADD@ $(libctf_nobfd_la_LIBADD)
+libctf_la_LIBADD = ../bfd/libbfd.la $(libctf_nobfd_la_LIBADD)
libctf_la_CPPFLAGS = $(AM_CPPFLAGS) -DNOBFD=0
-libctf_la_DEPENDENCIES = @BFD_DEPENDENCIES@
libctf_la_LDFLAGS = $(libctf_nobfd_la_LDFLAGS)
libctf_la_SOURCES = $(libctf_nobfd_la_SOURCES) ctf-open-bfd.c
diff --git a/libctf/Makefile.in b/libctf/Makefile.in
index 6bb5691..0ee67fc 100644
--- a/libctf/Makefile.in
+++ b/libctf/Makefile.in
@@ -163,7 +163,8 @@ am__uninstall_files_from_dir = { \
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libctf_nobfd_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+libctf_nobfd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am__libctf_nobfd_la_SOURCES_DIST = 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 ctf-open.c ctf-sha1.c \
@@ -189,7 +190,8 @@ libctf_nobfd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-o $@
@INSTALL_LIBBFD_FALSE@am_libctf_nobfd_la_rpath =
@INSTALL_LIBBFD_TRUE@am_libctf_nobfd_la_rpath = -rpath $(libdir)
-am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+libctf_la_DEPENDENCIES = ../bfd/libbfd.la $(am__DEPENDENCIES_2)
am__libctf_la_SOURCES_DIST = 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 ctf-open.c ctf-sha1.c ctf-string.c \
@@ -307,8 +309,6 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
-BFD_DEPENDENCIES = @BFD_DEPENDENCIES@
-BFD_LIBADD = @BFD_LIBADD@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
@@ -316,6 +316,7 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CTF_LIBADD = @CTF_LIBADD@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
@@ -370,7 +371,6 @@ RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHARED_LDFLAGS = @SHARED_LDFLAGS@
-SHARED_LIBADD = @SHARED_LIBADD@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
@@ -453,16 +453,15 @@ 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
-libctf_nobfd_la_LIBADD = @SHARED_LIBADD@ $(ZLIB)
+libctf_nobfd_la_LIBADD = @CTF_LIBADD@ $(LIBINTL) $(ZLIB)
libctf_nobfd_la_LDFLAGS = -version-info 0:0:0 @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 ctf-open.c ctf-sha1.c ctf-string.c \
ctf-subr.c ctf-types.c ctf-util.c $(am__append_1)
-libctf_la_LIBADD = @BFD_LIBADD@ $(libctf_nobfd_la_LIBADD)
+libctf_la_LIBADD = ../bfd/libbfd.la $(libctf_nobfd_la_LIBADD)
libctf_la_CPPFLAGS = $(AM_CPPFLAGS) -DNOBFD=0
-libctf_la_DEPENDENCIES = @BFD_DEPENDENCIES@
libctf_la_LDFLAGS = $(libctf_nobfd_la_LDFLAGS)
libctf_la_SOURCES = $(libctf_nobfd_la_SOURCES) ctf-open-bfd.c
all: config.h
diff --git a/libctf/configure b/libctf/configure
index fb77403..0a09b35 100755
--- a/libctf/configure
+++ b/libctf/configure
@@ -636,9 +636,7 @@ am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
VERSION_FLAGS
-BFD_DEPENDENCIES
-BFD_LIBADD
-SHARED_LIBADD
+CTF_LIBADD
SHARED_LDFLAGS
NEED_CTF_QSORT_R_FALSE
NEED_CTF_QSORT_R_TRUE
@@ -11520,7 +11518,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11523 "configure"
+#line 11521 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11626,7 +11624,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11629 "configure"
+#line 11627 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13339,10 +13337,9 @@ $as_echo "#define HAVE_O_CLOEXEC 1" >>confdefs.h
fi
# Horrible hacks to build DLLs on Windows and a shared library elsewhere.
-SHARED_LIBADD=
+
+CTF_LIBADD="-L`pwd`/../libiberty -liberty"
SHARED_LDFLAGS=
-BFD_LIBADD=
-BFD_DEPENDENCIES=
if test "$enable_shared" = "yes"; then
# When building a shared libctf, link against the pic version of libiberty
# so that apps that use libctf won't need libiberty just to satisfy any
@@ -13354,39 +13351,20 @@ if test "$enable_shared" = "yes"; then
# since libbfd may not pull in the entirety of libiberty.
x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
if test -n "$x"; then
- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
+ CTF_LIBADD="-L`pwd`/../libiberty/pic -liberty"
fi
case "${host}" in
# More hacks to build DLLs on Windows.
*-*-cygwin*)
SHARED_LDFLAGS="-no-undefined"
- SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
- BFD_LIBADD="-L`pwd`/../bfd -lbfd"
- ;;
-
- *-*-darwin*)
- BFD_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib"
- BFD_DEPENDENCIES="../bfd/libbfd.la"
- ;;
- *)
- case "$host_vendor" in
- hp)
- BFD_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl"
- ;;
- *)
- BFD_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so"
- ;;
- esac
- BFD_DEPENDENCIES="../bfd/libbfd.la"
+ CTF_LIBADD="$CTF_LIBADD -L`pwd`/../intl -lintl -lcygwin"
;;
esac
fi
-
-
# Use a version script, if possible, or an -export-symbols-regex otherwise.
VERSION_FLAGS='-export-symbols-regex ctf_.*'
if $LD --help 2>&1 | grep -- --version-script >/dev/null; then
diff --git a/libctf/configure.ac b/libctf/configure.ac
index 3c57e65..bbdfd63 100644
--- a/libctf/configure.ac
+++ b/libctf/configure.ac
@@ -170,10 +170,9 @@ if test $ac_cv_libctf_macro_O_CLOEXEC = yes; then
fi
# Horrible hacks to build DLLs on Windows and a shared library elsewhere.
-SHARED_LIBADD=
+
+CTF_LIBADD="-L`pwd`/../libiberty -liberty"
SHARED_LDFLAGS=
-BFD_LIBADD=
-BFD_DEPENDENCIES=
if test "$enable_shared" = "yes"; then
# When building a shared libctf, link against the pic version of libiberty
# so that apps that use libctf won't need libiberty just to satisfy any
@@ -187,38 +186,19 @@ changequote(,)dnl
x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
changequote([,])dnl
if test -n "$x"; then
- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
+ CTF_LIBADD="-L`pwd`/../libiberty/pic -liberty"
fi
case "${host}" in
# More hacks to build DLLs on Windows.
*-*-cygwin*)
SHARED_LDFLAGS="-no-undefined"
- SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
- BFD_LIBADD="-L`pwd`/../bfd -lbfd"
- ;;
-
- *-*-darwin*)
- BFD_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib"
- BFD_DEPENDENCIES="../bfd/libbfd.la"
- ;;
- *)
- case "$host_vendor" in
- hp)
- BFD_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl"
- ;;
- *)
- BFD_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so"
- ;;
- esac
- BFD_DEPENDENCIES="../bfd/libbfd.la"
+ CTF_LIBADD="$CTF_LIBADD -L`pwd`/../intl -lintl -lcygwin"
;;
esac
fi
AC_SUBST(SHARED_LDFLAGS)
-AC_SUBST(SHARED_LIBADD)
-AC_SUBST(BFD_LIBADD)
-AC_SUBST(BFD_DEPENDENCIES)
+AC_SUBST(CTF_LIBADD)
# Use a version script, if possible, or an -export-symbols-regex otherwise.
VERSION_FLAGS='-export-symbols-regex ctf_.*'