1From bc09a9236f67e710d545ac11bcdac7b55dbcc1a0 Mon Sep 17 00:00:00 2001
2From: John Ericson <John.Ericson@Obsidian.Systems>
3Date: Thu, 12 Oct 2017 11:16:57 -0400
4Subject: [PATCH] Build components separately
5
6---
7 bfd/configure.ac | 18 +++---------------
8 opcodes/Makefile.am | 17 +++++++++++++----
9 opcodes/configure.ac | 45 ++++++---------------------------------------
10 3 files changed, 22 insertions(+), 58 deletions(-)
11
12diff --git a/bfd/configure.ac b/bfd/configure.ac
13index 9a183c1628..8728837384 100644
14--- a/bfd/configure.ac
15+++ b/bfd/configure.ac
16@@ -241,31 +241,19 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
17
18 LT_LIB_M
19
20-# When building a shared libbfd, link against the pic version of libiberty
21-# so that apps that use libbfd won't need libiberty just to satisfy any
22-# libbfd references.
23-# We can't do that if a pic libiberty is unavailable since including non-pic
24-# code would insert text relocations into libbfd.
25 SHARED_LIBADD=
26-SHARED_LDFLAGS=
27+SHARED_LDFLAGS=-liberty
28 if test "$enable_shared" = "yes"; then
29-changequote(,)dnl
30- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
31-changequote([,])dnl
32- if test -n "$x"; then
33- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
34- fi
35-
36 # More hacks to build DLLs on Windows.
37 case "${host}" in
38 *-*-cygwin*)
39 SHARED_LDFLAGS="-no-undefined"
40- SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
41+ SHARED_LIBADD="-liberty -lintl -lcygwin -lkernel32"
42 ;;
43
44 # Hack to build or1k-src on OSX
45 or1k*-*-darwin*)
46- SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
47+ SHARED_LIBADD="-liberty -lintl"
48 ;;
49 esac
50
51diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
52index 925e7ff651..47b395c195 100644
53--- a/opcodes/Makefile.am
54+++ b/opcodes/Makefile.am
55@@ -52,7 +52,7 @@ libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir)
56 endif
57
58 # This is where bfd.h lives.
59-BFD_H = ../bfd/bfd.h
60+BFD_H = $(BFDDIR)/bfd.h
61
62 BUILD_LIBS = @BUILD_LIBS@
63 BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
64@@ -303,7 +303,7 @@ OFILES = @BFD_MACHINES@
65 # development.sh is used to determine -Werror default.
66 CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh
67
68-AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
69+AM_CPPFLAGS = -I. -I$(srcdir) -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
70
71 disassemble.lo: disassemble.c
72 if am__fastdepCC
73@@ -324,12 +324,21 @@ libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c
74 # old version of libbfd, or to pick up libbfd for the wrong architecture
75 # if host != build. So for building with shared libraries we use a
76 # hardcoded path to libbfd.so instead of relying on the entries in libbfd.la.
77-libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@
78+libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ libtool-soversion
79 libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@
80-libopcodes_la_LDFLAGS += -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@
81+libopcodes_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@
82 # Allow dependency tracking to work on all the source files.
83 EXTRA_libopcodes_la_SOURCES = $(LIBOPCODES_CFILES)
84
85+libtool-soversion:
86+ @echo "creating $@"
87+ bfd_soversion="$(VERSION)" ;\
88+ . $(BFDDIR)/development.sh ;\
89+ if test "$$development" = true ; then \
90+ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
91+ fi ;\
92+ echo "$${bfd_soversion}" > $@
93+
94 # libtool will build .libs/libopcodes.a. We create libopcodes.a in
95 # the build directory so that we don't have to convert all the
96 # programs that use libopcodes.a simultaneously. This is a hack which
97diff --git a/opcodes/configure.ac b/opcodes/configure.ac
98index b9f5eb8a4f..ef2c2152b7 100644
99--- a/opcodes/configure.ac
100+++ b/opcodes/configure.ac
101@@ -89,6 +89,7 @@ AC_PROG_INSTALL
102
103 AC_CHECK_HEADERS(string.h strings.h stdlib.h limits.h)
104 ACX_HEADER_STRING
105+GCC_HEADER_STDINT(bfd_stdint.h)
106
107 AC_CHECK_DECLS([basename, stpcpy])
108
109@@ -134,61 +135,27 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
110
111 LT_LIB_M
112
113-#Libs for generator progs
114-if test "x$cross_compiling" = "xno"; then
115- BUILD_LIBS=../libiberty/libiberty.a
116- BUILD_LIB_DEPS=$BUILD_LIBS
117-else
118- # if cross-compiling, assume that the system provides -liberty
119- # and that the version is compatible with new headers.
120- BUILD_LIBS=-liberty
121- BUILD_LIB_DEPS=
122-fi
123-BUILD_LIBS="$BUILD_LIBS $LIBINTL"
124-BUILD_LIB_DEPS="$BUILD_LIB_DEPS $LIBINTL_DEP"
125+BUILD_LIBS="-liberty $LIBINTL"
126+BUILD_LIB_DEPS="$LIBINTL_DEP"
127
128 AC_SUBST(BUILD_LIBS)
129 AC_SUBST(BUILD_LIB_DEPS)
130
131 # Horrible hacks to build DLLs on Windows and a shared library elsewhere.
132 SHARED_LDFLAGS=
133-SHARED_LIBADD=
134+SHARED_LIBADD=-liberty
135 SHARED_DEPENDENCIES=
136 if test "$enable_shared" = "yes"; then
137-# When building a shared libopcodes, link against the pic version of libiberty
138-# so that apps that use libopcodes won't need libiberty just to satisfy any
139-# libopcodes references.
140-# We can't do that if a pic libiberty is unavailable since including non-pic
141-# code would insert text relocations into libopcodes.
142 # Note that linking against libbfd as we do here, which is itself linked
143 # against libiberty, may not satisfy all the libopcodes libiberty references
144 # since libbfd may not pull in the entirety of libiberty.
145-changequote(,)dnl
146- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
147-changequote([,])dnl
148- if test -n "$x"; then
149- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
150- fi
151-
152 case "${host}" in
153 *-*-cygwin*)
154 SHARED_LDFLAGS="-no-undefined"
155- SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
156+ SHARED_LIBADD="-lbfd -liberty -lintl -lcygwin"
157 ;;
158- *-*-darwin*)
159- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}"
160- SHARED_DEPENDENCIES="../bfd/libbfd.la"
161- ;;
162 *)
163- case "$host_vendor" in
164- hp)
165- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl ${SHARED_LIBADD}"
166- ;;
167- *)
168- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so ${SHARED_LIBADD}"
169- ;;
170- esac
171- SHARED_DEPENDENCIES="../bfd/libbfd.la"
172+ SHARED_LIBADD="-lbfd ${SHARED_LIBADD}"
173 ;;
174 esac
175
176--
1772.14.2
178