aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog38
-rw-r--r--binutils/Makefile.in83
-rwxr-xr-xbinutils/configure56
-rw-r--r--binutils/configure.in43
4 files changed, 161 insertions, 59 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index aa60c2d..fecff7d 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,41 @@
+Wed Feb 7 14:17:45 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * configure.in: Check for --enable-shared. Substitute new
+ variables BFDLIB and OPCODES.
+ * configure: Rebuild.
+ * Makefile.in (BFDLIB): Set to @BFDLIB@.
+ (OPCODES): Set to @OPCODES@.
+
+Mon Feb 5 16:18:42 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Support for building bfd and opcodes as shared libraries, based on
+ patches from Alan Modra <alan@spri.levels.unisa.edu.au>:
+ * configure.in (HLDFLAGS): New substitution.
+ * configure: Rebuild.
+ * Makefile.in (HLDFLAGS): New variable. Make all links use
+ $(HLDFLAGS) before $(CFLAGS) and $(LDFLAGS).
+ (BFDLIB_DEP): New variable. Replace all occurrences of $(BFD) as
+ a dependency with $(BFDLIB_DEP). Remove $(BFD) as a dependency if
+ there is also a dependency on $(ADDL_DEPS).
+ (BFDLIB): Rename from BFD; change all uses; set to -L../bfd -lbfd.
+ (OPCODES_DEP): New variable. Replace all occurrends of $(OPCODES)
+ as a dependency with $(OPCODES_DEP).
+ (OPCODES): Set to -L../opcodes -lopcodes.
+ (ADDL_DEPS): New variable. Replace all occurrences of
+ $(ADDL_LIBS) as a dependency with $(ADDL_DEPS).
+ (check): Set LD_LIBRARY_PATH in the environment.
+ (config.status): Depend upon BFD configure.host and config.bfd.
+
+Fri Feb 2 17:02:59 1996 Doug Evans <dje@charmed.cygnus.com>
+
+ * objdump.c: #include stdarg.h or varargs.h.
+ (objdump_print_value): Change FILE* arg to struct disassemble_info*.
+ All callers updated. Use fprintf_func.
+ (objdump_print_address): Consistently use fprintf_func.
+ (objdump_sprintf): New function.
+ (disassemble_data): Print insn into a buffer, print raw insn ourselves,
+ then print insn mnemonic.
+
Fri Feb 2 16:48:55 1996 Ian Lance Taylor <ian@cygnus.com>
* configure: Regenerate.
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 799a81a..454f1f6 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -57,6 +57,7 @@ AR_FLAGS = rc
CC = @CC@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
+HLDFLAGS = @HLDFLAGS@
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
RANLIB = ranlib
@@ -144,17 +145,21 @@ GENERATED_CFILES = \
.c.o:
$(CC) -c $(ALL_CFLAGS) $<
-DEBUG_OBJS = rddbg.o debug.o stabs.o ieee.o prdbg.o
+DEBUG_OBJS = rddbg.o debug.o stabs.o ieee.o
LIBIBERTY = ../libiberty/libiberty.a
# Code shared by all the binutils.
BULIBS = bucomm.o version.o filemode.o
-ADDL_LIBS = $(BULIBS) $(BFD) $(LIBIBERTY)
+BFDLIB_DEP = ../bfd/libbfd.a
+BFDLIB = @BFDLIB@
-BFD = ../bfd/libbfd.a
-OPCODES = ../opcodes/libopcodes.a
+OPCODES_DEP = ../opcodes/libopcodes.a
+OPCODES = @OPCODES@
+
+ADDL_DEPS = $(BULIBS) $(BFDLIB_DEP) $(LIBIBERTY)
+ADDL_LIBS = $(BULIBS) $(BFDLIB) $(LIBIBERTY)
EXPECT = `if [ -f $$r/../expect/expect ] ; then \
echo $$r/../expect/expect ; \
@@ -187,7 +192,7 @@ FLAGS_TO_PASS = \
#
## The rules
-all: $(ADDL_LIBS) $(PROGS)
+all: $(ADDL_DEPS) $(PROGS)
# These targets are for the dejagnu testsuites. The file site.exp
# contains global variables that all the testsuites will use.
@@ -224,6 +229,8 @@ check: site.exp
r=`pwd`; export r ; \
srcroot=`cd ${srcdir}; pwd` ; export srcroot ; \
EXPECT=${EXPECT} ; export EXPECT ; \
+ LD_LIBRARY_PATH=$$r/../bfd:$$r/../opcodes:$$LD_LIBRARY_PATH; \
+ export LD_LIBRARY_PATH; \
if [ -f $$r/../expect/expect ] ; then \
TCL_LIBRARY=$${srcroot}/../tcl/library ; \
export TCL_LIBRARY ; else true; fi ; \
@@ -237,23 +244,23 @@ info: binutils.info
dvi: binutils.dvi
-$(SIZE_PROG): $(ADDL_LIBS) size.o $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(SIZE_PROG) size.o $(ADDL_LIBS) $(EXTRALIBS)
+$(SIZE_PROG): $(ADDL_DEPS) size.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(SIZE_PROG) size.o $(ADDL_LIBS) $(EXTRALIBS)
-$(OBJCOPY_PROG): $(ADDL_LIBS) objcopy.o not-strip.o $(DEBUG_OBJS) $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o not-strip.o $(DEBUG_OBJS) $(ADDL_LIBS) $(EXTRALIBS)
+$(OBJCOPY_PROG): $(ADDL_DEPS) objcopy.o not-strip.o $(DEBUG_OBJS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o not-strip.o $(DEBUG_OBJS) $(ADDL_LIBS) $(EXTRALIBS)
-$(STRINGS_PROG): $(ADDL_LIBS) strings.o $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(STRINGS_PROG) strings.o $(ADDL_LIBS) $(EXTRALIBS)
+$(STRINGS_PROG): $(ADDL_DEPS) strings.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(STRINGS_PROG) strings.o $(ADDL_LIBS) $(EXTRALIBS)
-$(STRIP_PROG): $(ADDL_LIBS) objcopy.o is-strip.o $(DEBUG_OBJS) $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(STRIP_PROG) objcopy.o is-strip.o $(DEBUG_OBJS) $(ADDL_LIBS) $(EXTRALIBS)
+$(STRIP_PROG): $(ADDL_DEPS) objcopy.o is-strip.o $(DEBUG_OBJS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(STRIP_PROG) objcopy.o is-strip.o $(DEBUG_OBJS) $(ADDL_LIBS) $(EXTRALIBS)
-$(NM_PROG): $(ADDL_LIBS) nm.o $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(NM_PROG) nm.o $(ADDL_LIBS) $(EXTRALIBS)
+$(NM_PROG): $(ADDL_DEPS) nm.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(NM_PROG) nm.o $(ADDL_LIBS) $(EXTRALIBS)
-$(OBJDUMP_PROG): $(ADDL_LIBS) objdump.o $(DEBUG_OBJS) $(BFD) $(OPCODES)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(OBJDUMP_PROG) objdump.o $(DEBUG_OBJS) $(OPCODES) $(ADDL_LIBS) $(EXTRALIBS)
+$(OBJDUMP_PROG): $(ADDL_DEPS) objdump.o prdbg.o $(DEBUG_OBJS) $(OPCODES_DEP)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(OBJDUMP_PROG) objdump.o prdbg.o $(DEBUG_OBJS) $(OPCODES) $(ADDL_LIBS) $(EXTRALIBS)
underscore.c: stamp-under ; @true
@@ -270,7 +277,7 @@ cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h
$(CC) -c -DMAIN -DVERSION='"$(VERSION)"' $(ALL_CFLAGS) $(BASEDIR)/libiberty/cplus-dem.c
$(DEMANGLER_PROG): cplus-dem.o $(LIBIBERTY) underscore.o $(DEMANGLER_PROG).1
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(DEMANGLER_PROG) cplus-dem.o $(LIBIBERTY) $(EXTRALIBS) underscore.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(DEMANGLER_PROG) cplus-dem.o $(LIBIBERTY) $(EXTRALIBS) underscore.o
arparse.c: arparse.y
$(BISON) $(BISONFLAGS) $(srcdir)/arparse.y
@@ -285,11 +292,11 @@ arlex.c: arlex.l
$(LEX) $(LEX_OPTIONS) $(srcdir)/arlex.l
mv lex.yy.c arlex.c
-$(AR_PROG): $(ADDL_LIBS) ar.o arparse.o arlex.o not-ranlib.o $(BFD) arsup.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o arparse.o arlex.o arsup.o not-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
+$(AR_PROG): $(ADDL_DEPS) ar.o arparse.o arlex.o not-ranlib.o arsup.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o arparse.o arlex.o arsup.o not-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
-$(RANLIB_PROG): $(ADDL_LIBS) ar.o is-ranlib.o arparse.o arlex.o arsup.o $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(RANLIB_PROG) ar.o arparse.o arlex.o arsup.o is-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
+$(RANLIB_PROG): $(ADDL_DEPS) ar.o is-ranlib.o arparse.o arlex.o arsup.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(RANLIB_PROG) ar.o arparse.o arlex.o arsup.o is-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
# This rule creates a single binary that switches between ar and ranlib
# by looking at argv[0]. Use this kludge to save some disk space.
@@ -298,15 +305,15 @@ $(RANLIB_PROG): $(ADDL_LIBS) ar.o is-ranlib.o arparse.o arlex.o arsup.o $(BFD)
# Alternatively, you can install ranlib.sh as ranlib.
-ar_with_ranlib: $(ADDL_LIBS) ar.o maybe-ranlib.o $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o maybe-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
+ar_with_ranlib: $(ADDL_DEPS) ar.o maybe-ranlib.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o maybe-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
-rm -f $(RANLIB_PROG)
-ln $(AR_PROG) $(RANLIB_PROG)
# objcopy and strip in one binary that uses argv[0] to decide its action.
-objcopy_with_strip: $(ADDL_LIBS) objcopy.o maybe-strip.o $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o maybe-strip.o $(ADDL_LIBS) $(EXTRALIBS)
+objcopy_with_strip: $(ADDL_DEPS) objcopy.o maybe-strip.o
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o maybe-strip.o $(ADDL_LIBS) $(EXTRALIBS)
-rm -f $(STRIP_PROG)
-ln $(OBJCOPY_PROG) $(STRIP_PROG)
@@ -351,11 +358,11 @@ sysinfo.o: sysinfo.c
$(CC_FOR_BUILD) -c -I. $(CFLAGS) $(srcdir)/sysinfo.c ; \
fi
-srconv: srconv.o coffgrok.o $(ADDL_LIBS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ srconv.o coffgrok.o $(ADDL_LIBS) $(EXTRALIBS)
+srconv: srconv.o coffgrok.o $(ADDL_DEPS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ srconv.o coffgrok.o $(ADDL_LIBS) $(EXTRALIBS)
-dlltool:dlltool.o defparse.o deflex.o cplus-dem.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ dlltool.o defparse.o deflex.o $(ADDL_LIBS) $(EXTRALIBS)
+dlltool: dlltool.o defparse.o deflex.o cplus-dem.o $(ADDL_DEPS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ dlltool.o defparse.o deflex.o $(ADDL_LIBS) $(EXTRALIBS)
defparse.c:defparse.y
$(BISON) $(BISONFLAGS) $(srcdir)/defparse.y
@@ -371,11 +378,11 @@ deflex.c:deflex.l
dlltool.o:dlltool.c
$(CC) -c @DLLTOOL_DEFS@ $(ALL_CFLAGS) $(srcdir)/dlltool.c
-coffdump: coffdump.o coffgrok.o $(ADDL_LIBS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ coffdump.o coffgrok.o $(ADDL_LIBS) $(EXTRALIBS)
+coffdump: coffdump.o coffgrok.o $(ADDL_DEPS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ coffdump.o coffgrok.o $(ADDL_LIBS) $(EXTRALIBS)
-sysdump: sysdump.o $(ADDL_LIBS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ sysdump.o $(ADDL_LIBS) $(EXTRALIBS)
+sysdump: sysdump.o $(ADDL_DEPS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ sysdump.o $(ADDL_LIBS) $(EXTRALIBS)
# Depend upon sysinfo.c to avoid building both nlmheader.c and sysinfo.c
# simultaneously.
@@ -390,8 +397,8 @@ nlmconv.o: nlmconv.c $(INCDIR)/coff/sym.h $(INCDIR)/coff/ecoff.h
ldname=`echo ld | sed '$(program_transform_name)'`; \
$(CC) -c -DLD_NAME="\"$${ldname}\"" @NLMCONV_DEFS@ $(ALL_CFLAGS) $(srcdir)/nlmconv.c
-$(NLMCONV_PROG): nlmconv.o nlmheader.o $(ADDL_LIBS) $(BFD)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ nlmconv.o nlmheader.o $(ADDL_LIBS) $(EXTRALIBS)
+$(NLMCONV_PROG): nlmconv.o nlmheader.o $(ADDL_DEPS)
+ $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ nlmconv.o nlmheader.o $(ADDL_LIBS) $(EXTRALIBS)
# Targets to rebuild dependencies in this Makefile.
# Have to get rid of .dep1 here so that "$?" later includes all of $(CFILES).
@@ -513,7 +520,7 @@ distclean:
-rm -f Makefile config.status *.o *~ \#* core y.*
-rm -f binutils.?? binutils.??s binutils.aux binutils.log binutils.toc
-rm -f $(PROGS) underscore.c config.h stamp-h config.cache config.log
- -rm -f dep.sed stamp-under
+ -rm -f dep.sed stamp-under $(DEMANGLER_PROG).1
maintainer-clean realclean: clean distclean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
@@ -630,7 +637,7 @@ config.h: stamp-h ; @true
stamp-h: config.in config.status
CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
-config.status: configure
+config.status: configure $(srcdir)/../bfd/configure.host $(srcdir)/../bfd/config.bfd
$(SHELL) ./config.status --recheck
# What appears below is generated by a hacked mkdep using gcc -MM.
diff --git a/binutils/configure b/binutils/configure
index ef477c9..e15e336 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -13,6 +13,8 @@ ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_help="$ac_help
--enable-targets alternative target configurations"
+ac_help="$ac_help
+ --enable-shared build shared BFD library"
# Initialize some variables set by options.
# The variables have the same names as the options, with
@@ -528,6 +530,15 @@ if test "${enable_targets+set}" = set; then
*) enable_targets=$enableval ;;
esac
fi
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ case "${enableval}" in
+ yes) shared=true ;;
+ no) shared=false ;;
+ *) { echo "configure: error: bad value ${enableval} for BFD shared option" 1>&2; exit 1; } ;;
+esac
+fi
@@ -666,6 +677,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
HDEFINES=
LDFLAGS=
+HLDFLAGS=
. ${srcdir}/../bfd/configure.host
@@ -747,6 +759,7 @@ fi
+
AR=${AR-ar}
# Extract the first word of "ranlib", so it can be a program name with args.
@@ -837,6 +850,24 @@ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+# For most hosts we can use a simple definition to pick up the BFD and
+# opcodes libraries. However, if we are building shared libraries, we
+# need to handle some hosts specially.
+BFDLIB='-L../bfd -lbfd'
+OPCODES='-L../opcodes -lopcodes'
+if test "${shared}" = "true"; then
+ case "${host}" in
+ *-*-sunos*)
+ # On SunOS, we must link against the name we are going to install,
+ # not -lbfd, since SunOS does not support SONAME.
+ BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
+ OPCODES='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
+ ;;
+ esac
+fi
+
+
+
# If we cannot run a trivial program, we must be cross compiling.
echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then
@@ -846,7 +877,7 @@ else
ac_cv_c_cross=yes
else
cat > conftest.$ac_ext <<EOF
-#line 850 "configure"
+#line 881 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
@@ -888,7 +919,7 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 892 "configure"
+#line 923 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
@@ -902,7 +933,7 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 906 "configure"
+#line 937 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
@@ -935,7 +966,7 @@ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 939 "configure"
+#line 970 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
@@ -968,7 +999,7 @@ if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 972 "configure"
+#line 1003 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@@ -1011,7 +1042,7 @@ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1015 "configure"
+#line 1046 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1061,7 +1092,7 @@ if eval "test \"`echo '$''{'bu_cv_decl_time_t_time_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1065 "configure"
+#line 1096 "configure"
#include "confdefs.h"
#include <time.h>
int main() { return 0; }
@@ -1093,7 +1124,7 @@ if eval "test \"`echo '$''{'bu_cv_decl_time_t_types_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1097 "configure"
+#line 1128 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() { return 0; }
@@ -1127,7 +1158,7 @@ if eval "test \"`echo '$''{'bu_cv_header_utime_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1131 "configure"
+#line 1162 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_TIME_H
@@ -1163,7 +1194,7 @@ if eval "test \"`echo '$''{'bfd_cv_decl_needed_fprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1167 "configure"
+#line 1198 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -1201,7 +1232,7 @@ fi
case "${host}" in
-i[345]86-*-msdos* | i[345]86-*-go32* | i[345]86-*-win32)
+i[345]86-*-msdos* | i[345]86-*-go32* | *-*-cygwin32)
cat >> confdefs.h <<\EOF
#define USE_BINARY_FOPEN 1
EOF
@@ -1426,10 +1457,13 @@ s%@build_vendor@%$build_vendor%g
s%@build_os@%$build_os%g
s%@CC@%$CC%g
s%@HDEFINES@%$HDEFINES%g
+s%@HLDFLAGS@%$HLDFLAGS%g
s%@AR@%$AR%g
s%@RANLIB@%$RANLIB%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@BFDLIB@%$BFDLIB%g
+s%@OPCODES@%$OPCODES%g
s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
s%@CPP@%$CPP%g
s%@NLMCONV_DEFS@%$NLMCONV_DEFS%g
diff --git a/binutils/configure.in b/binutils/configure.in
index 7c23cd3..710eedd 100644
--- a/binutils/configure.in
+++ b/binutils/configure.in
@@ -11,6 +11,13 @@ AC_ARG_ENABLE(targets,
no) enable_targets= ;;
*) enable_targets=$enableval ;;
esac])dnl
+AC_ARG_ENABLE(shared,
+[ --enable-shared build shared BFD library],
+[case "${enableval}" in
+ yes) shared=true ;;
+ no) shared=false ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for BFD shared option]) ;;
+esac])dnl
AC_CONFIG_HEADER(config.h:config.in)
@@ -28,6 +35,7 @@ AC_ARG_PROGRAM
HDEFINES=
LDFLAGS=
+HLDFLAGS=
. ${srcdir}/../bfd/configure.host
@@ -35,11 +43,30 @@ AC_PROG_CC
AC_SUBST(CFLAGS)
AC_SUBST(HDEFINES)
AC_SUBST(LDFLAGS)
+AC_SUBST(HLDFLAGS)
AR=${AR-ar}
AC_SUBST(AR)
AC_PROG_RANLIB
AC_PROG_INSTALL
+# For most hosts we can use a simple definition to pick up the BFD and
+# opcodes libraries. However, if we are building shared libraries, we
+# need to handle some hosts specially.
+BFDLIB='-L../bfd -lbfd'
+OPCODES='-L../opcodes -lopcodes'
+if test "${shared}" = "true"; then
+ case "${host}" in
+ *-*-sunos*)
+ # On SunOS, we must link against the name we are going to install,
+ # not -lbfd, since SunOS does not support SONAME.
+ BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
+ OPCODES='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
+ ;;
+ esac
+fi
+AC_SUBST(BFDLIB)
+AC_SUBST(OPCODES)
+
BFD_CC_FOR_BUILD
AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h)
@@ -80,15 +107,7 @@ if test $bu_cv_header_utime_h = yes; then
AC_DEFINE(HAVE_GOOD_UTIME_H)
fi
-AC_MSG_CHECKING([whether fprintf must be declared])
-AC_CACHE_VAL(bu_cv_decl_needed_fprintf,
-[AC_TRY_COMPILE([#include <stdio.h>],
-[int (*pfn) = (int (*)) fprintf],
-bu_cv_decl_needed_fprintf=no, bu_cv_decl_needed_fprintf=yes)])
-AC_MSG_RESULT($bu_cv_decl_needed_fprintf)
-if test $bu_cv_decl_needed_fprintf = yes; then
- AC_DEFINE(NEED_DECLARATION_FPRINTF)
-fi
+BFD_NEED_DECLARATION(fprintf)
BFD_BINARY_FOPEN
@@ -152,11 +171,15 @@ changequote([,])dnl
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
;;
changequote(,)dnl
- i[3-6]86-*pe* | i[3-6]86-*-win32)
+ i[3-6]86-*pe* | i[3-6]86-*-cygwin32)
changequote([,])dnl
BUILD_DLLTOOL='$(DLLTOOL_PROG)'
DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
;;
+ powerpc*-*-*pe* | powerpc*-*-cygwin32)
+ BUILD_DLLTOOL='$(DLLTOOL_PROG)'
+ DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_PPC"
+ ;;
esac
fi
done