Update binutils to 2.25.1

This commit is contained in:
Wolfgang Thaller
2015-08-28 17:32:19 +02:00
parent 2ce044c327
commit da4dfe30c9
4422 changed files with 490780 additions and 151428 deletions
+193 -1
View File
@@ -1,7 +1,199 @@
2014-10-15 Tristan Gingold <gingold@adacore.com>
* src-release.sh (do_proto_toplev): Configure with --target.
2014-10-03 Jing Yu <jingyu@google.com>
* configure.ac: Add aarch64 to list of targets that support gold.
* configure: Regenerate.
2014-09-12 Andrew Bennett <andrew.bennett@imgtec.com>
* configure.ac: Add mips*-img-elf* target triple.
* configure: Regenerate.
2014-09-06 Kuan-Lin Chen <kuanlinchentw@gmail.com>
* configure: Disable gdb for nds32*-*-* until supported.
* configure.ac: Disable gdb for nds32*-*-* until supported.
2014-09-05 Joel Brobecker <brobecker@adacore.com>
* configure: Regenerate.
2014-08-27 Will Newton <will.newton@linaro.org>
* src-release.sh: New file.
* src-release: Remove file.
2014-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>
GDB not supported for or1k*-*-rtems*
* configure.ac (or1k*-*-rtems*): gdb not supported. The ordering
of the stanzas results in this not being caught by or1k*-*-* later.
* configure. Regenerated.
2014-07-25 Samuel Bronson <naesten@gmail.com>
* .gitattributes: New file for use with git-merge-changelog.
2014-07-21 Joel Sherrill <joel.sherrill@oarcorp.com>
Disable gdb for or1k*-*-* until supported
* configure.ac (or1k*-*-*): Disable gdb.
* configure: Regenerated.
2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
* configure.ac (target_makefile_frag): Set for nios2-*-elf*.
* configure: Regenerated.
2014-03-26 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/56781
* Makefile.def: Set bootstrap=true; for host fixincludes.
* configure.ac: Don't bootstrap host fixincludes unless
--with-build-config=bootstrap-{a,ub}san.
* Makefile.in: Regenerated.
* configure: Regenerated.
2014-03-21 Jakub Jelinek <jakub@redhat.com>
* configure.ac: Move BUILD_CONFIG set up earlier. Add
--enable-vtable-verify option parsing. Don't add
target-libsanitizer to bootstrap_target_libs unless
--with-build-config=bootstrap-asan or
--with-build-config=bootstrap-ubsan. Don't add target-libvtv
to bootstrap_target_libs unless --enable-vtable-verify.
* configure: Regenerated.
2014-03-07 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/58572
* Makefile.tpl (POSTSTAGE1_CXX_EXPORT): Use -isystem instead of
-I for libstdc++-v3 includes if $(LEAN).
* Makefile.in: Regenerated.
2014-02-24 Walter Lee <walt@tilera.com>
* configure.ac (tilepro-*-*) Change to tilepro*-*-*.
(tilegx-*-*): Change to tilegx*-*-*.
* configure: Regenerate.
2014-05-01 Richard Sandiford <rdsandiford@googlemail.com>
* config.sub, config.guess: Import from upstream.
2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
PR bootstrap/60620
* Makefile.def (dependencies): Make gnattools depend on libstdc++-v3.
* Makefile.in: Regenerate.
2014-03-28 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
* Makefile.def (dependencies): Make all-ld depend on all-binutils
for WINDRES_FOR_TARGET in default-manifest.o rule.
* Makefile.in: Regenerate.
2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/59788
* ltmain.sh (opt_duplicate_compiler_generated_deps): Enable on
*solaris2*.
2013-12-19 Keven Boell <keven.boell@intel.com>
* cp-namespace.c (cp_lookup_nested_symbol): Enable
nested lookups for fortran modules.
* dwarf2read.c (read_module): Add fortran module to
the symbol table.
(add_partial_symbol, add_partial_module): Add fortran
module to the partial symbol table.
(new_symbol_full): Create full symbol for fortran module.
* f-exp.y (yylex): Add new module domain to be parsed.
* symtab.h: New domain for fortran modules.
2013-12-19 Keven Boell <keven.boell@intel.com>
* f-exp.y (yylex): Add domain array to enable lookup
in multiple domains. Loop over lookup domains and try
to find requested symbol. Add STRUCT_DOMAIN to lookup
domains to be able to query for user defined types.
2013-12-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
* configure.ac: Add user-friendly check for native x86_64-linux
multilibs.
* configure: Regenerate.
2013-11-23 Alan Modra <amodra@gmail.com>
* config.sub, config.guess: Import from upstream.
2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
* Makefile.in: Regenerate.
* Makefile.tpl: Fix typo.
* Makefile.in: Regenerate partially.
2013-11-04 Balaji V. Iyer <balaji.v.iyer@intel.com>
* configure.ac: Added libcilkrts to noconfig list when C++ is not
supported.
* configure: Regenerated.
2013-10-30 Jason Merrill <jason@redhat.com>
* Makefile.tpl (STAGE1_CONFIGURE_FLAGS): Pass
--disable-build-format-warnings.
2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
* Makefile.def: Add libcilkrts to target_modules. Make libcilkrts
depend on libstdc++ and libgcc.
* configure: Regenerate.
* configure.ac: Added libcilkrts to target binaries. Also, restrict
libcilkrts for POSIX and i*86, and x86_64 architectures.
* Makefile.in: Added libcilkrts related fields to support building it.
2013-10-26 Jeff Law <law@redhat.com>
* Makefile.def (target_modules): Remove libmudflap
(languages): Remove check-target-libmudflap).
* Makefile.in: Rebuilt.
* Makefile.tpl (check-target-libmudflap-c++): Remove.
* configure.ac (target_libraries): Remove target-libmudflap.
Remove checks which disabled libmudflap on some systems.
* configure: Rebuilt.
* libmudflap: Directory removed.
2013-10-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* configure.ac: Update from GCC.
* configure: Regenerate.
2013-10-15 Hans-Peter Nilsson <hp@axis.com>
* src-release (do-proto-toplevel): Support subdir-path-prefixed
files in SUPPORT_FILES.
(SIM_SUPPORT_DIRS): New variable.
(sim.tar.bz2): New rule.
2013-10-08 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* configure.ac: Update from GCC.
* configure: Regenerate.
2013-10-01 Jeff Johnston <jjohnstn@redhat.com>
* COPYING.NEWLIB: Update with new copyright.
2013-09-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* configure.ac: Update from GCC.
* configure: Regenerate.
2013-09-20 Alan Modra <amodra@gmail.com>
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical
@@ -563,7 +755,7 @@
* config.sub: Import these changes from the config project:
2011-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
2011-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
Ben Elliston <bje@gnu.org>
* config.sub (epiphany): New.
+8 -3
View File
@@ -39,7 +39,7 @@ host_modules= { module= cgen; };
host_modules= { module= dejagnu; };
host_modules= { module= etc; };
host_modules= { module= fastjar; no_check_cross= true; };
host_modules= { module= fixincludes;
host_modules= { module= fixincludes; bootstrap=true;
missing= TAGS; };
host_modules= { module= flex; no_check_cross= true; };
host_modules= { module= gas; bootstrap=true; };
@@ -117,7 +117,6 @@ target_modules = { module= libstdc++-v3;
bootstrap=true;
lib_path=src/.libs;
raw_cxx=true; };
target_modules = { module= libmudflap; lib_path=.libs; };
target_modules = { module= libsanitizer;
bootstrap=true;
lib_path=.libs;
@@ -126,6 +125,8 @@ target_modules = { module= libvtv;
bootstrap=true;
lib_path=.libs;
raw_cxx=true; };
target_modules = { module= libcilkrts;
lib_path=.libs; };
target_modules = { module= libssp; lib_path=.libs; };
target_modules = { module= newlib; };
target_modules = { module= libgcc; bootstrap=true; no_check=true; };
@@ -335,6 +336,7 @@ dependencies = { module=all-libcpp; on=all-intl; };
dependencies = { module=all-fixincludes; on=all-libiberty; };
dependencies = { module=all-gnattools; on=all-target-libada; };
dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; };
dependencies = { module=all-lto-plugin; on=all-libiberty; };
@@ -417,6 +419,7 @@ dependencies = { module=all-ld; on=all-build-bison; };
dependencies = { module=all-ld; on=all-build-flex; };
dependencies = { module=all-ld; on=all-intl; };
dependencies = { module=all-ld; on=all-gas; };
dependencies = { module=all-ld; on=all-binutils; };
dependencies = { module=install-ld; on=install-gold; };
dependencies = { module=install-strip-ld; on=install-strip-gold; };
dependencies = { module=configure-gold; on=configure-intl; };
@@ -492,6 +495,7 @@ dependencies = { module=all-m4; on=all-build-texinfo; };
// on libgcc and newlib/libgloss.
lang_env_dependencies = { module=libjava; cxx=true; };
lang_env_dependencies = { module=libitm; cxx=true; };
lang_env_dependencies = { module=libcilkrts; cxx=true; };
lang_env_dependencies = { module=newlib; no_c=true; };
lang_env_dependencies = { module=libgloss; no_c=true; };
lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
@@ -532,6 +536,8 @@ dependencies = { module=install-target-libsanitizer; on=install-target-libstdc++
dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; };
dependencies = { module=install-target-libvtv; on=install-target-libstdc++-v3; };
dependencies = { module=install-target-libvtv; on=install-target-libgcc; };
dependencies = { module=install-target-libcilkrts; on=install-target-libstdc++-v3; };
dependencies = { module=install-target-libcilkrts; on=install-target-libgcc; };
dependencies = { module=install-target-libjava; on=install-target-libgcc; };
dependencies = { module=install-target-libitm; on=install-target-libgcc; };
dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
@@ -551,7 +557,6 @@ dependencies = { module=configure-target-libgfortran; on=all-target-libquadmath;
languages = { language=c; gcc-check-target=check-gcc; };
languages = { language=c++; gcc-check-target=check-c++;
lib-check-target=check-target-libstdc++-v3;
lib-check-target=check-target-libmudflap-c++;
lib-check-target=check-target-libitm-c++;
lib-check-target=check-target-libgomp-c++; };
languages = { language=fortran; gcc-check-target=check-fortran;
+1038 -512
View File
File diff suppressed because it is too large Load Diff
+7 -12
View File
@@ -169,7 +169,7 @@ BUILD_EXPORTS = \
WINDMC="$(WINDMC_FOR_BUILD)"; export WINDMC;
# These variables must be set on the make command line for directories
# built for the build system to override those in BASE_FLAGS_TO_PASSS.
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"
@@ -242,9 +242,9 @@ POSTSTAGE1_CXX_EXPORT = \
-B$$r/$(HOST_SUBDIR)/prev-gcc/ -B$(build_tooldir)/bin/ -nostdinc++ \
-B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
-I$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \
-I$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \
-I$$s/libstdc++-v3/libsupc++ \
`if $(LEAN); then echo ' -isystem '; else echo ' -I'; fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \
`if $(LEAN); then echo ' -isystem '; else echo ' -I'; fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \
`if $(LEAN); then echo ' -isystem '; else echo ' -I'; fi`$$s/libstdc++-v3/libsupc++ \
-L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs"; \
export CXX; \
@@ -451,8 +451,10 @@ STAGE1_LANGUAGES = @stage1_languages@
# the last argument when conflicting --enable arguments are passed.
# * Likewise, we force-disable coverage flags, since the installed
# compiler probably has never heard of them.
# * We also disable -Wformat, since older GCCs don't understand newer %s.
STAGE1_CONFIGURE_FLAGS = --disable-intermodule $(STAGE1_CHECKING) \
--disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
--disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
--disable-build-format-warnings
STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate
STAGEprofile_TFLAGS = $(STAGE2_TFLAGS)
@@ -1404,13 +1406,6 @@ ENDIF raw_cxx +]
[+ ENDFOR recursive_targets +]
[+ ENDFOR target_modules +]
@if target-libmudflap
.PHONY: check-target-libmudflap-c++
check-target-libmudflap-c++:
$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) c++frags.exp" check-target-libmudflap
@endif target-libmudflap
@if target-libgomp
.PHONY: check-target-libgomp-c++
check-target-libgomp-c++:
+3665 -2693
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -11397,7 +11397,7 @@
For older changes see ChangeLog-0001
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 2002-2003 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -10035,7 +10035,7 @@ Sat Jan 1 10:18:54 1994 David J. Mackenzie (djm@thepub.cygnus.com)
For older changes see ChangeLog-9193
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
Copyright (C) 1994-1995 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+1 -1
View File
@@ -6721,7 +6721,7 @@ Tue Jan 2 13:10:25 1996 Ian Lance Taylor <ian@cygnus.com>
For older changes see ChangeLog-9495
Copyright (C) 1996,1997 Free Software Foundation, Inc.
Copyright (C) 1996-1997 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+1 -1
View File
@@ -5591,7 +5591,7 @@ Wed Jan 14 16:03:11 1998 Richard Henderson <rth@cygnus.com>
For older changes see ChangeLog-9697
Copyright (C) 1998,1999 Free Software Foundation, Inc.
Copyright (C) 1998-1999 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+1 -1
View File
@@ -1,6 +1,6 @@
See ../binutils/MAINTAINERS
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2012-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+17 -22
View File
@@ -1,6 +1,6 @@
## Process this file with automake to generate Makefile.in
#
# Copyright 2012 Free Software Foundation
# Copyright (C) 2012-2014 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,9 +20,6 @@
AUTOMAKE_OPTIONS = 1.11 no-dist foreign
ACLOCAL_AMFLAGS = -I . -I .. -I ../config
# Uncomment the following line when doing a release.
RELEASE=y
INCDIR = $(srcdir)/../include
CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
@@ -136,10 +133,10 @@ ALL_MACHINES = \
cpu-moxie.lo \
cpu-msp430.lo \
cpu-mt.lo \
cpu-nds32.lo \
cpu-nios2.lo \
cpu-ns32k.lo \
cpu-openrisc.lo \
cpu-or32.lo \
cpu-or1k.lo \
cpu-pdp11.lo \
cpu-pj.lo \
cpu-plugin.lo \
@@ -220,10 +217,10 @@ ALL_MACHINES_CFILES = \
cpu-moxie.c \
cpu-msp430.c \
cpu-mt.c \
cpu-nds32.c \
cpu-ns32k.c \
cpu-nios2.c \
cpu-openrisc.c \
cpu-or32.c \
cpu-or1k.c \
cpu-pdp11.c \
cpu-pj.c \
cpu-plugin.c \
@@ -282,7 +279,6 @@ BFD32_BACKENDS = \
coff-m68k.lo \
coff-m88k.lo \
coff-mips.lo \
coff-or32.lo \
coff-rs6000.lo \
coff-sh.lo \
coff-sparc.lo \
@@ -349,9 +345,9 @@ BFD32_BACKENDS = \
elf32-moxie.lo \
elf32-msp430.lo \
elf32-mt.lo \
elf32-nds32.lo \
elf32-nios2.lo \
elf32-openrisc.lo \
elf32-or32.lo \
elf32-or1k.lo \
elf32-pj.lo \
elf32-ppc.lo \
elf32-rl78.lo \
@@ -470,7 +466,6 @@ BFD32_BACKENDS_CFILES = \
coff-m68k.c \
coff-m88k.c \
coff-mips.c \
coff-or32.c \
coff-rs6000.c \
coff-sh.c \
coff-sparc.c \
@@ -537,9 +532,9 @@ BFD32_BACKENDS_CFILES = \
elf32-moxie.c \
elf32-msp430.c \
elf32-mt.c \
elf32-nds32.c \
elf32-nios2.c \
elf32-openrisc.c \
elf32-or32.c \
elf32-or1k.c \
elf32-pj.c \
elf32-ppc.c \
elf32-rl78.c \
@@ -737,15 +732,14 @@ OPTIONAL_BACKENDS_CFILES = \
sco5-core.c \
trad-core.c
# We want to rerun configure if configure.in, config.bfd or
# configure.host change. configure.in is needed since the version
# number in Makefile comes from configure.in.
# Reconfigure if config.bfd or configure.host changes.
# development.sh is used to determine -Werror default.
CONFIG_STATUS_DEPENDENCIES = \
$(srcdir)/configure.in \
$(srcdir)/config.bfd \
$(srcdir)/configure.host
$(srcdir)/configure.host \
$(srcdir)/development.sh
# These are defined by configure.in:
# These are defined by configure:
WORDSIZE = @wordsize@
ALL_BACKENDS = @all_backends@
BFD_BACKENDS = @bfd_backends@
@@ -1028,14 +1022,15 @@ CLEANFILES = bfd.h dep.sed stmp-bfd-h DEP DEPA DEP1 DEP2 libbfd.a stamp-lib \
DISTCLEANFILES = $(BUILD_CFILES) $(BUILD_HFILES) libtool-soversion
bfdver.h: $(srcdir)/version.h $(srcdir)/Makefile.in
bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in
@echo "creating $@"
@bfd_version=`echo "$(VERSION)" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
bfd_version_string="\"$(VERSION)\"" ;\
bfd_soversion="$(VERSION)" ;\
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
if test "x$(RELEASE)" = x ; then \
. $(srcdir)/development.sh ;\
if test "$$development" = true ; then \
bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
+22 -28
View File
@@ -16,7 +16,7 @@
@SET_MAKE@
#
# Copyright 2012 Free Software Foundation
# Copyright (C) 2012-2014 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -80,7 +80,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
$(top_srcdir)/bfd.m4 $(top_srcdir)/warning.m4 \
$(top_srcdir)/acinclude.m4 $(top_srcdir)/../config/zlib.m4 \
$(top_srcdir)/configure.in
$(top_srcdir)/version.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -337,9 +337,6 @@ top_srcdir = @top_srcdir@
wordsize = @wordsize@
AUTOMAKE_OPTIONS = 1.11 no-dist foreign
ACLOCAL_AMFLAGS = -I . -I .. -I ../config
# Uncomment the following line when doing a release.
RELEASE = y
INCDIR = $(srcdir)/../include
CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
SUBDIRS = doc po
@@ -437,10 +434,10 @@ ALL_MACHINES = \
cpu-moxie.lo \
cpu-msp430.lo \
cpu-mt.lo \
cpu-nds32.lo \
cpu-nios2.lo \
cpu-ns32k.lo \
cpu-openrisc.lo \
cpu-or32.lo \
cpu-or1k.lo \
cpu-pdp11.lo \
cpu-pj.lo \
cpu-plugin.lo \
@@ -521,10 +518,10 @@ ALL_MACHINES_CFILES = \
cpu-moxie.c \
cpu-msp430.c \
cpu-mt.c \
cpu-nds32.c \
cpu-ns32k.c \
cpu-nios2.c \
cpu-openrisc.c \
cpu-or32.c \
cpu-or1k.c \
cpu-pdp11.c \
cpu-pj.c \
cpu-plugin.c \
@@ -584,7 +581,6 @@ BFD32_BACKENDS = \
coff-m68k.lo \
coff-m88k.lo \
coff-mips.lo \
coff-or32.lo \
coff-rs6000.lo \
coff-sh.lo \
coff-sparc.lo \
@@ -651,9 +647,9 @@ BFD32_BACKENDS = \
elf32-moxie.lo \
elf32-msp430.lo \
elf32-mt.lo \
elf32-nds32.lo \
elf32-nios2.lo \
elf32-openrisc.lo \
elf32-or32.lo \
elf32-or1k.lo \
elf32-pj.lo \
elf32-ppc.lo \
elf32-rl78.lo \
@@ -772,7 +768,6 @@ BFD32_BACKENDS_CFILES = \
coff-m68k.c \
coff-m88k.c \
coff-mips.c \
coff-or32.c \
coff-rs6000.c \
coff-sh.c \
coff-sparc.c \
@@ -839,9 +834,9 @@ BFD32_BACKENDS_CFILES = \
elf32-moxie.c \
elf32-msp430.c \
elf32-mt.c \
elf32-nds32.c \
elf32-nios2.c \
elf32-openrisc.c \
elf32-or32.c \
elf32-or1k.c \
elf32-pj.c \
elf32-ppc.c \
elf32-rl78.c \
@@ -1041,16 +1036,15 @@ OPTIONAL_BACKENDS_CFILES = \
trad-core.c
# We want to rerun configure if configure.in, config.bfd or
# configure.host change. configure.in is needed since the version
# number in Makefile comes from configure.in.
# Reconfigure if config.bfd or configure.host changes.
# development.sh is used to determine -Werror default.
CONFIG_STATUS_DEPENDENCIES = \
$(srcdir)/configure.in \
$(srcdir)/config.bfd \
$(srcdir)/configure.host
$(srcdir)/configure.host \
$(srcdir)/development.sh
# These are defined by configure.in:
# These are defined by configure:
WORDSIZE = @wordsize@
ALL_BACKENDS = @all_backends@
BFD_BACKENDS = @bfd_backends@
@@ -1283,7 +1277,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-m68k.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-m88k.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-mips.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-or32.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-rs6000.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-sh.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-sparc.Plo@am__quote@
@@ -1352,10 +1345,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-moxie.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-msp430.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nds32.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-openrisc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or32.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or1k.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-pdp11.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-pj.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-plugin.Plo@am__quote@
@@ -1442,9 +1435,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-moxie.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-msp430.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-mt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-nds32.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-nios2.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-openrisc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-or32.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-or1k.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-pj.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-ppc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-rl78.Plo@am__quote@
@@ -2089,14 +2082,15 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES)
$(SHELL) $(srcdir)/../move-if-change libcoff.h-new $(srcdir)/libcoff.h
touch stmp-lcoff-h
bfdver.h: $(srcdir)/version.h $(srcdir)/Makefile.in
bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in
@echo "creating $@"
@bfd_version=`echo "$(VERSION)" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\
bfd_version_string="\"$(VERSION)\"" ;\
bfd_soversion="$(VERSION)" ;\
bfd_version_package="\"$(PKGVERSION)\"" ;\
report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\
if test "x$(RELEASE)" = x ; then \
. $(srcdir)/development.sh ;\
if test "$$development" = true ; then \
bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\
bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\
bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
+3 -3
View File
@@ -19,7 +19,7 @@ You need to create <target>.c and config/<target>.mt,
and add a case for it to a case statements in bfd/configure.host and
bfd/config.bfd, which associates each canonical host type with a BFD
host type (used as the base of the makefile fragment names), and to the
table in bfd/configure.in which associates each target vector with
table in bfd/configure.ac which associates each target vector with
the .o files it uses.
config/<target>.mt is a Makefile fragment.
@@ -29,7 +29,7 @@ SELECT_ARCHITECTURES=bfd_<cpu>_arch
See the list of cpu types in archures.c, or "ls cpu-*.c".
If your architecture is new, you need to add it to the tables
in bfd/archures.c, opcodes/configure.in, and binutils/objdump.c.
in bfd/archures.c, opcodes/configure.ac, and binutils/objdump.c.
For more information about .mt and .mh files, see config/README.
@@ -82,7 +82,7 @@ TARGETNAME
The name of the target, for run-time lookups.
Usually "a.out-<target>"
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2012-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+1 -1
View File
@@ -48,7 +48,7 @@ gcc manual.
Bug reports without patches will be remembered, but they may never get
fixed until somebody volunteers to fix them.
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2012-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+1 -1
View File
@@ -20,7 +20,7 @@ Things that still need to be done: -*- Text -*-
o - upgrade the reloc handling as per Steve's suggestion.
Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2012-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
+1 -1
View File
@@ -1,5 +1,5 @@
dnl
dnl Copyright 2012 Free Software Foundation
dnl Copyright (C) 2012-2014 Free Software Foundation, Inc.
dnl
dnl This file is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
+2 -4
View File
@@ -1,9 +1,7 @@
/* BFD back-end for AIX on PS/2 core files.
This was based on trad-core.c, which was written by John Gilmore of
Cygnus Support.
Copyright 1988, 1989, 1991, 1992, 1993, 1994, 1996, 1998, 1999, 2000,
2001, 2002, 2004, 2005, 2006, 2007, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
Written by Minh Tran-Le <TRANLE@INTELLICORP.COM>.
Converted to back end form by Ian Lance Taylor <ian@cygnus.com>.
@@ -226,7 +224,7 @@ swap_abort (void)
#define NO_PUT64 ((void (*) (bfd_uint64_t, void *)) swap_abort)
#define NO_GETS64 ((bfd_int64_t (*) (const void *)) swap_abort)
const bfd_target aix386_core_vec =
const bfd_target core_aix386_vec =
{
"aix386-core",
bfd_target_unknown_flavour,
+1 -2
View File
@@ -1,6 +1,5 @@
/* IBM RS/6000 "XCOFF" back-end for BFD.
Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Free Software Foundation, Inc.
Copyright (C) 2001-2014 Free Software Foundation, Inc.
Written by Tom Rix
Contributed by Red Hat Inc.
+8 -10
View File
@@ -1,7 +1,5 @@
/* BFD back-end for a.out.adobe binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2011
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support. Based on bout.c.
This file is part of BFD, the Binary File Descriptor library.
@@ -28,7 +26,7 @@
#include "libaout.h" /* BFD a.out internal data structures. */
/* Forward decl. */
extern const bfd_target a_out_adobe_vec;
extern const bfd_target aout_adobe_vec;
/* Swaps the information in an executable header taken from a raw byte
stream memory image, into the internal exec_header structure. */
@@ -218,7 +216,7 @@ aout_adobe_object_p (bfd *abfd)
if (N_BADMAG (anexec))
{
targ = getenv ("GNUTARGET");
if (targ && !strcmp (targ, a_out_adobe_vec.name))
if (targ && !strcmp (targ, aout_adobe_vec.name))
/* Just continue anyway, if specifically set to this format. */
;
else
@@ -448,9 +446,10 @@ aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED,
/* Build the transfer vector for Adobe A.Out files. */
#define aout_32_bfd_make_debug_symbol ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
#define aout_32_bfd_reloc_type_lookup ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
#define aout_32_bfd_reloc_name_lookup ((reloc_howto_type *(*) (bfd *, const char *)) bfd_nullvoidptr)
#define aout_32_find_line _bfd_nosymbols_find_line
#define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define aout_32_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup
#define aout_32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup
#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info
#define aout_32_set_arch_mach aout_adobe_set_arch_mach
#define aout_32_set_section_contents aout_adobe_set_section_contents
@@ -466,7 +465,6 @@ aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED,
#define aout_32_section_already_linked _bfd_generic_section_already_linked
#define aout_32_bfd_define_common_symbol bfd_generic_define_common_symbol
#define aout_32_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
#define aout_32_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define aout_32_bfd_link_add_symbols _bfd_generic_link_add_symbols
#define aout_32_bfd_link_just_syms _bfd_generic_link_just_syms
#define aout_32_bfd_copy_link_hash_symbol_type \
@@ -474,7 +472,7 @@ aout_adobe_sizeof_headers (bfd *ignore_abfd ATTRIBUTE_UNUSED,
#define aout_32_bfd_final_link _bfd_generic_final_link
#define aout_32_bfd_link_split_section _bfd_generic_link_split_section
const bfd_target a_out_adobe_vec =
const bfd_target aout_adobe_vec =
{
"a.out.adobe", /* Name. */
bfd_target_aout_flavour,
+9 -10
View File
@@ -1,6 +1,5 @@
/* BFD back-end for raw ARM a.out binaries.
Copyright 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005,
2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright (C) 1994-2014 Free Software Foundation, Inc.
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
This file is part of BFD, the Binary File Descriptor library.
@@ -43,14 +42,14 @@
#define SEGMENT_SIZE TARGET_PAGE_SIZE
#define DEFAULT_ARCH bfd_arch_arm
#define MY(OP) CONCAT2 (aoutarm_,OP)
#define MY(OP) CONCAT2 (arm_aout_,OP)
#define N_BADMAG(x) ((((x).a_info & ~007200) != ZMAGIC) && \
(((x).a_info & ~006000) != OMAGIC) && \
((x).a_info != NMAGIC))
#define N_MAGIC(x) ((x).a_info & ~07200)
#define MY_bfd_reloc_type_lookup aoutarm_bfd_reloc_type_lookup
#define MY_bfd_reloc_name_lookup aoutarm_bfd_reloc_name_lookup
#define MY_bfd_reloc_type_lookup arm_aout_bfd_reloc_type_lookup
#define MY_bfd_reloc_name_lookup arm_aout_bfd_reloc_name_lookup
#include "libaout.h"
#include "aout/aout64.h"
@@ -462,9 +461,9 @@ MY_swap_std_reloc_out (bfd *abfd,
#include "aout-target.h"
extern const bfd_target aout_arm_big_vec;
extern const bfd_target arm_aout_be_vec;
const bfd_target aout_arm_little_vec =
const bfd_target arm_aout_le_vec =
{
"a.out-arm-little", /* Name. */
bfd_target_aout_flavour,
@@ -501,12 +500,12 @@ const bfd_target aout_arm_little_vec =
BFD_JUMP_TABLE_LINK (MY),
BFD_JUMP_TABLE_DYNAMIC (MY),
& aout_arm_big_vec,
& arm_aout_be_vec,
(void *) MY_backend_data,
};
const bfd_target aout_arm_big_vec =
const bfd_target arm_aout_be_vec =
{
"a.out-arm-big", /* Name. */
bfd_target_aout_flavour,
@@ -543,7 +542,7 @@ const bfd_target aout_arm_big_vec =
BFD_JUMP_TABLE_LINK (MY),
BFD_JUMP_TABLE_DYNAMIC (MY),
& aout_arm_little_vec,
& arm_aout_le_vec,
(void *) MY_backend_data,
};
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD backend for CRIS a.out binaries.
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2012
Free Software Foundation, Inc.
Copyright (C) 2000-2014 Free Software Foundation, Inc.
Contributed by Axis Communications AB.
Written by Hans-Peter Nilsson.
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for ns32k a.out-ish binaries.
Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
2002, 2003, 2005, 2006, 2007, 2010, 2012 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Contributed by Ian Dall (idall@eleceng.adelaide.edu.au).
This file is part of BFD, the Binary File Descriptor library.
@@ -28,7 +27,7 @@
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
remove whitespace added here, and thus will fail to concatenate
the tokens. */
#define MYNS(OP) CONCAT2 (ns32kaout_,OP)
#define MYNS(OP) CONCAT2 (ns32k_aout_,OP)
reloc_howto_type * MYNS (bfd_reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
reloc_howto_type * MYNS (bfd_reloc_name_lookup) (bfd *, const char *);
+2 -2
View File
@@ -1,5 +1,5 @@
/* BFD backend for sparc little-endian aout binaries.
Copyright 1996, 2001, 2005, 2007, 2012 Free Software Foundation, Inc.
Copyright (C) 1996-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -23,7 +23,7 @@
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
remove whitespace added here, and thus will fail to concatenate
the tokens. */
#define MY(OP) CONCAT2 (sparcle_aout_,OP)
#define MY(OP) CONCAT2 (sparc_aout_le_,OP)
#include "sysdep.h"
#include "bfd.h"
+4 -6
View File
@@ -1,7 +1,5 @@
/* Define a target vector and some small routines for a variant of a.out.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -470,6 +468,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
#ifndef MY_find_nearest_line
#define MY_find_nearest_line NAME (aout, find_nearest_line)
#endif
#ifndef MY_find_line
#define MY_find_line _bfd_nosymbols_find_line
#endif
#ifndef MY_find_inliner_info
#define MY_find_inliner_info _bfd_nosymbols_find_inliner_info
#endif
@@ -523,9 +524,6 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
#ifndef MY_bfd_link_hash_table_create
#define MY_bfd_link_hash_table_create NAME (aout, link_hash_table_create)
#endif
#ifndef MY_bfd_link_hash_table_free
#define MY_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#endif
#ifndef MY_bfd_link_add_symbols
#define MY_bfd_link_add_symbols NAME (aout, link_add_symbols)
#endif
+4 -6
View File
@@ -1,7 +1,5 @@
/* BFD back-end for TMS320C30 a.out binaries.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1998-2014 Free Software Foundation, Inc.
Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
This file is part of BFD, the Binary File Descriptor library.
@@ -928,6 +926,9 @@ tic30_aout_set_arch_mach (bfd *abfd,
#ifndef MY_find_nearest_line
#define MY_find_nearest_line NAME (aout, find_nearest_line)
#endif
#ifndef MY_find_line
#define MY_find_line _bfd_nosymbols_find_line
#endif
#ifndef MY_find_inliner_info
#define MY_find_inliner_info _bfd_nosymbols_find_inliner_info
#endif
@@ -981,9 +982,6 @@ tic30_aout_set_arch_mach (bfd *abfd,
#ifndef MY_bfd_link_hash_table_create
#define MY_bfd_link_hash_table_create NAME (aout, link_hash_table_create)
#endif
#ifndef MY_bfd_link_hash_table_free
#define MY_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#endif
#ifndef MY_bfd_link_add_symbols
#define MY_bfd_link_add_symbols NAME (aout, link_add_symbols)
#endif
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD backend for SunOS style a.out with flags set to 0
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 2001, 2005, 2007, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -25,7 +24,7 @@
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
remove whitespace added here, and thus will fail to concatenate
the tokens. */
#define MY(OP) CONCAT2 (aout0_big_,OP)
#define MY(OP) CONCAT2 (aout0_be_,OP)
#include "sysdep.h"
#include "bfd.h"
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD back-end for 32-bit a.out files.
Copyright 1990, 1991, 1992, 1993, 1994, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD back-end for 64-bit a.out files.
Copyright 1990, 1991, 1992, 1994, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
+1 -3
View File
@@ -1,7 +1,5 @@
/* A.out "format 1" file handling code for BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
+33 -28
View File
@@ -1,7 +1,5 @@
/* BFD semi-generic back-end for a.out binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -68,12 +66,12 @@ DESCRIPTION
from @file{sunos.c}:
| #define TARGET_NAME "a.out-sunos-big"
| #define VECNAME sunos_big_vec
| #define VECNAME sparc_aout_sunos_be_vec
| #include "aoutf1.h"
requires all the names from @file{aout32.c}, and produces the jump vector
| sunos_big_vec
| sparc_aout_sunos_be_vec
The file @file{host-aout.c} is a special case. It is for a large set
of hosts that use ``more or less standard'' a.out files, and
@@ -103,7 +101,7 @@ DESCRIPTION
| TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
| TDEPFILES= host-aout.o trad-core.o
in the @file{config/@var{XXX}.mt} file, and modify @file{configure.in}
in the @file{config/@var{XXX}.mt} file, and modify @file{configure.ac}
to use the
@file{@var{XXX}.mt} file (by setting "<<bfd_target=XXX>>") when your
configuration is selected. */
@@ -205,8 +203,8 @@ reloc_howto_type howto_table_ext[] =
HOWTO (RELOC_GLOB_DAT,0, 2, 0, FALSE, 0, complain_overflow_bitfield, 0, "GLOB_DAT", FALSE, 0, 0x00000000, FALSE),
HOWTO (RELOC_JMP_SLOT,0, 2, 0, FALSE, 0, complain_overflow_bitfield, 0, "JMP_SLOT", FALSE, 0, 0x00000000, FALSE),
HOWTO (RELOC_RELATIVE,0, 2, 0, FALSE, 0, complain_overflow_bitfield, 0, "RELATIVE", FALSE, 0, 0x00000000, FALSE),
HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
HOWTO (0, 0, 3, 0, FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
HOWTO (0, 0, 3, 0, FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE",FALSE, 0, 0x00000000, TRUE),
#define RELOC_SPARC_REV32 RELOC_WDISP19
HOWTO (RELOC_SPARC_REV32, 0, 2, 32, FALSE, 0, complain_overflow_dont, 0,"R_SPARC_REV32",FALSE, 0, 0xffffffff, FALSE),
};
@@ -793,9 +791,15 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
case bfd_mach_mips16:
case bfd_mach_mipsisa32:
case bfd_mach_mipsisa32r2:
case bfd_mach_mipsisa32r3:
case bfd_mach_mipsisa32r5:
case bfd_mach_mipsisa32r6:
case bfd_mach_mips5:
case bfd_mach_mipsisa64:
case bfd_mach_mipsisa64r2:
case bfd_mach_mipsisa64r3:
case bfd_mach_mipsisa64r5:
case bfd_mach_mipsisa64r6:
case bfd_mach_mips_sb1:
case bfd_mach_mips_xlr:
/* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc. */
@@ -1296,14 +1300,14 @@ aout_get_external_symbols (bfd *abfd)
{
bfd_size_type count;
struct external_nlist *syms;
bfd_size_type amt = exec_hdr (abfd)->a_syms;
count = exec_hdr (abfd)->a_syms / EXTERNAL_NLIST_SIZE;
count = amt / EXTERNAL_NLIST_SIZE;
if (count == 0)
return TRUE; /* Nothing to do. */
#ifdef USE_MMAP
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd),
exec_hdr (abfd)->a_syms,
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), amt,
&obj_aout_sym_window (abfd), TRUE))
return FALSE;
syms = (struct external_nlist *) obj_aout_sym_window (abfd).data;
@@ -1311,20 +1315,16 @@ aout_get_external_symbols (bfd *abfd)
/* We allocate using malloc to make the values easy to free
later on. If we put them on the objalloc it might not be
possible to free them. */
syms = (struct external_nlist *) bfd_malloc (count * EXTERNAL_NLIST_SIZE);
syms = (struct external_nlist *) bfd_malloc (amt);
if (syms == NULL)
return FALSE;
{
bfd_size_type amt;
amt = exec_hdr (abfd)->a_syms;
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
|| bfd_bread (syms, amt, abfd) != amt)
{
free (syms);
return FALSE;
}
}
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
|| bfd_bread (syms, amt, abfd) != amt)
{
free (syms);
return FALSE;
}
#endif
obj_aout_external_syms (abfd) = syms;
@@ -2636,12 +2636,13 @@ NAME (aout, minisymbol_to_symbol) (bfd *abfd,
bfd_boolean
NAME (aout, find_nearest_line) (bfd *abfd,
asection *section,
asymbol **symbols,
asection *section,
bfd_vma offset,
const char **filename_ptr,
const char **functionname_ptr,
unsigned int *line_ptr)
unsigned int *line_ptr,
unsigned int *disriminator_ptr)
{
/* Run down the file looking for the filename, function and linenumber. */
asymbol **p;
@@ -2659,6 +2660,8 @@ NAME (aout, find_nearest_line) (bfd *abfd,
*filename_ptr = abfd->filename;
*functionname_ptr = 0;
*line_ptr = 0;
if (disriminator_ptr)
*disriminator_ptr = 0;
if (symbols != NULL)
{
@@ -3402,6 +3405,8 @@ aout_link_check_ar_symbols (bfd *abfd,
static bfd_boolean
aout_link_check_archive_element (bfd *abfd,
struct bfd_link_info *info,
struct bfd_link_hash_entry *h ATTRIBUTE_UNUSED,
const char *name ATTRIBUTE_UNUSED,
bfd_boolean *pneeded)
{
bfd *oldbfd;
@@ -3811,7 +3816,7 @@ aout_link_reloc_link_order (struct aout_final_link_info *flaginfo,
size = bfd_get_reloc_size (howto);
buf = (bfd_byte *) bfd_zmalloc (size);
if (buf == NULL)
if (buf == NULL && size != 0)
return FALSE;
r = MY_relocate_contents (howto, flaginfo->output_bfd,
(bfd_vma) pr->addend, buf);
@@ -5307,7 +5312,7 @@ aout_link_input_bfd (struct aout_final_link_info *flaginfo, bfd *input_bfd)
/* Do the final link step. This is called on the output BFD. The
INFO structure should point to a list of BFDs linked through the
link_next field which can be used to find each BFD which takes part
link.next field which can be used to find each BFD which takes part
in the output. Also, each section in ABFD should point to a list
of bfd_link_order structures which list all the input sections for
the output section. */
@@ -5354,7 +5359,7 @@ NAME (aout, final_link) (bfd *abfd,
max_contents_size = 0;
max_relocs_size = 0;
max_sym_count = 0;
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
{
bfd_size_type sz;
@@ -5493,7 +5498,7 @@ NAME (aout, final_link) (bfd *abfd,
We use the output_has_begun field of the input BFDs to see
whether we have already handled it. */
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
sub->output_has_begun = FALSE;
/* Mark all sections which are to be included in the link. This
+32 -7
View File
@@ -1,5 +1,5 @@
/* BFD back-end for archive files (libraries).
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support. Mostly Gumby Henkel-Wallace's fault.
This file is part of BFD, the Binary File Descriptor library.
@@ -140,6 +140,7 @@ SUBSECTION
#include "safe-ctype.h"
#include "hashtab.h"
#include "filenames.h"
#include "bfdlink.h"
#ifndef errno
extern int errno;
@@ -310,8 +311,7 @@ _bfd_look_for_bfd_in_cache (bfd *arch_bfd, file_ptr filepos)
struct ar_cache *entry = (struct ar_cache *) htab_find (hash_table, &m);
if (!entry)
return NULL;
else
return entry->arbfd;
return entry->arbfd;
}
else
return NULL;
@@ -705,7 +705,7 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos)
else
{
n_nfd->origin = n_nfd->proxy_origin;
n_nfd->filename = filename;
n_nfd->filename = xstrdup (filename);
}
n_nfd->arelt_data = new_areldata;
@@ -901,6 +901,10 @@ do_slurp_bsd_armap (bfd *abfd)
return FALSE;
parsed_size = mapdata->parsed_size;
free (mapdata);
/* PR 17512: file: 883ff754. */
/* PR 17512: file: 0458885f. */
if (parsed_size < 4)
return FALSE;
raw_armap = (bfd_byte *) bfd_zalloc (abfd, parsed_size);
if (raw_armap == NULL)
@@ -1037,12 +1041,19 @@ do_slurp_coff_armap (bfd *abfd)
}
/* OK, build the carsyms. */
for (i = 0; i < nsymz; i++)
for (i = 0; i < nsymz && stringsize > 0; i++)
{
bfd_size_type len;
rawptr = raw_armap + i;
carsyms->file_offset = swap ((bfd_byte *) rawptr);
carsyms->name = stringbase;
stringbase += strlen (stringbase) + 1;
/* PR 17512: file: 4a1d50c1. */
len = strnlen (stringbase, stringsize);
if (len < stringsize)
len ++;
stringbase += len;
stringsize -= len;
carsyms++;
}
*stringbase = 0;
@@ -1130,6 +1141,7 @@ bfd_slurp_armap (bfd *abfd)
return FALSE;
if (bfd_seek (abfd, -(file_ptr) (sizeof (hdr) + 20), SEEK_CUR) != 0)
return FALSE;
extname[20] = 0;
if (CONST_STRNEQ (extname, "__.SYMDEF SORTED")
|| CONST_STRNEQ (extname, "__.SYMDEF"))
return do_slurp_bsd_armap (abfd);
@@ -1299,6 +1311,8 @@ _bfd_slurp_extended_name_table (bfd *abfd)
{
byebye:
free (namedata);
bfd_ardata (abfd)->extended_names = NULL;
bfd_ardata (abfd)->extended_names_size = 0;
return FALSE;
}
@@ -1315,11 +1329,12 @@ _bfd_slurp_extended_name_table (bfd *abfd)
text, the entries in the list are newline-padded, not null
padded. In SVR4-style archives, the names also have a
trailing '/'. DOS/NT created archive often have \ in them
We'll fix all problems here.. */
We'll fix all problems here. */
{
char *ext_names = bfd_ardata (abfd)->extended_names;
char *temp = ext_names;
char *limit = temp + namedata->parsed_size;
for (; temp < limit; ++temp)
{
if (*temp == ARFMAG[1])
@@ -1960,6 +1975,9 @@ bfd_generic_stat_arch_elt (bfd *abfd, struct stat *buf)
}
hdr = arch_hdr (abfd);
/* PR 17512: file: 3d9e9fe9. */
if (hdr == NULL)
return -1;
#define foo(arelt, stelt, size) \
buf->stelt = strtol (hdr->arelt, &aloser, size); \
@@ -2356,6 +2374,10 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
map = new_map;
}
if (strcmp (syms[src_count]->name, "__gnu_lto_slim") == 0)
(*_bfd_error_handler)
(_("%s: plugin needed to handle lto object"),
bfd_get_filename (current));
namelen = strlen (syms[src_count]->name);
amt = sizeof (char *);
map[orl_count].name = (char **) bfd_alloc (arch, amt);
@@ -2751,5 +2773,8 @@ _bfd_archive_close_and_cleanup (bfd *abfd)
}
}
}
if (abfd->is_linker_output)
(*abfd->link.hash->hash_table_free) (abfd);
return TRUE;
}
+11 -2
View File
@@ -1,5 +1,5 @@
/* Support for 64-bit ELF archives.
Copyright 1996-2013 Free Software Foundation, Inc.
Copyright (C) 1996-2014 Free Software Foundation, Inc.
Ian Lance Taylor, Cygnus Support
Linker support added by Mark Mitchell, CodeSourcery, LLC.
<mark@codesourcery.com>
@@ -46,6 +46,7 @@ bfd_elf64_archive_slurp_armap (bfd *abfd)
struct areltdata *mapdata;
bfd_byte int_buf[8];
char *stringbase;
char *stringend;
bfd_byte *raw_armap = NULL;
carsym *carsyms;
bfd_size_type amt;
@@ -92,11 +93,18 @@ bfd_elf64_archive_slurp_armap (bfd *abfd)
ptrsize = 8 * nsymz;
amt = carsym_size + stringsize + 1;
if (carsym_size < nsymz || ptrsize < nsymz || amt < nsymz)
{
bfd_set_error (bfd_error_malformed_archive);
return FALSE;
}
ardata->symdefs = (struct carsym *) bfd_zalloc (abfd, amt);
if (ardata->symdefs == NULL)
return FALSE;
carsyms = ardata->symdefs;
stringbase = ((char *) ardata->symdefs) + carsym_size;
stringbase[stringsize] = 0;
stringend = stringbase + stringsize;
raw_armap = (bfd_byte *) bfd_alloc (abfd, ptrsize);
if (raw_armap == NULL)
@@ -114,7 +122,8 @@ bfd_elf64_archive_slurp_armap (bfd *abfd)
{
carsyms->file_offset = bfd_getb64 (raw_armap + i * 8);
carsyms->name = stringbase;
stringbase += strlen (stringbase) + 1;
if (stringbase < stringend)
stringbase += strlen (stringbase) + 1;
++carsyms;
}
*stringbase = '\0';
+21 -7
View File
@@ -1,5 +1,5 @@
/* BFD library support routines for architectures.
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -121,7 +121,9 @@ DESCRIPTION
.#define bfd_mach_i960_jx 7
.#define bfd_mach_i960_hx 8
.
. bfd_arch_or32, {* OpenRISC 32 *}
. bfd_arch_or1k, {* OpenRISC 1000 *}
.#define bfd_mach_or1k 1
.#define bfd_mach_or1knd 2
.
. bfd_arch_sparc, {* SPARC *}
.#define bfd_mach_sparc 1
@@ -180,8 +182,14 @@ DESCRIPTION
.#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *}
.#define bfd_mach_mipsisa32 32
.#define bfd_mach_mipsisa32r2 33
.#define bfd_mach_mipsisa32r3 34
.#define bfd_mach_mipsisa32r5 36
.#define bfd_mach_mipsisa32r6 37
.#define bfd_mach_mipsisa64 64
.#define bfd_mach_mipsisa64r2 65
.#define bfd_mach_mipsisa64r3 66
.#define bfd_mach_mipsisa64r5 68
.#define bfd_mach_mipsisa64r6 69
.#define bfd_mach_mips_micromips 96
. bfd_arch_i386, {* Intel 386 *}
.#define bfd_mach_i386_intel_syntax (1 << 0)
@@ -316,6 +324,12 @@ DESCRIPTION
.#define bfd_mach_arm_ep9312 11
.#define bfd_mach_arm_iWMMXt 12
.#define bfd_mach_arm_iWMMXt2 13
. bfd_arch_nds32, {* Andes NDS32 *}
.#define bfd_mach_n1 1
.#define bfd_mach_n1h 2
.#define bfd_mach_n1h_v2 3
.#define bfd_mach_n1h_v3 4
.#define bfd_mach_n1h_v3m 5
. bfd_arch_ns32k, {* National Semiconductors ns32000 *}
. bfd_arch_w65, {* WDC 65816 *}
. bfd_arch_tic30, {* Texas Instruments TMS320C30 *}
@@ -398,6 +412,7 @@ DESCRIPTION
.#define bfd_mach_avr5 5
.#define bfd_mach_avr51 51
.#define bfd_mach_avr6 6
.#define bfd_mach_avrtiny 100
.#define bfd_mach_avrxmega1 101
.#define bfd_mach_avrxmega2 102
.#define bfd_mach_avrxmega3 103
@@ -427,7 +442,6 @@ DESCRIPTION
. bfd_arch_score, {* Sunplus score *}
.#define bfd_mach_score3 3
.#define bfd_mach_score7 7
. bfd_arch_openrisc, {* OpenRISC *}
. bfd_arch_mmix, {* Donald Knuth's educational processor. *}
. bfd_arch_xstormy16,
.#define bfd_mach_xstormy16 1
@@ -574,10 +588,10 @@ extern const bfd_arch_info_type bfd_mn10300_arch;
extern const bfd_arch_info_type bfd_moxie_arch;
extern const bfd_arch_info_type bfd_msp430_arch;
extern const bfd_arch_info_type bfd_mt_arch;
extern const bfd_arch_info_type bfd_nds32_arch;
extern const bfd_arch_info_type bfd_nios2_arch;
extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_openrisc_arch;
extern const bfd_arch_info_type bfd_or32_arch;
extern const bfd_arch_info_type bfd_or1k_arch;
extern const bfd_arch_info_type bfd_pdp11_arch;
extern const bfd_arch_info_type bfd_pj_arch;
extern const bfd_arch_info_type bfd_plugin_arch;
@@ -663,10 +677,10 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
&bfd_moxie_arch,
&bfd_msp430_arch,
&bfd_mt_arch,
&bfd_nds32_arch,
&bfd_nios2_arch,
&bfd_ns32k_arch,
&bfd_openrisc_arch,
&bfd_or32_arch,
&bfd_or1k_arch,
&bfd_pdp11_arch,
&bfd_powerpc_arch,
&bfd_rs6000_arch,
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for NetBSD/ARM a.out-ish binaries.
Copyright 1999, 2000, 2001, 2002, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1999-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +31,7 @@
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
remove whitespace added here, and thus will fail to concatenate
the tokens. */
#define MY(OP) CONCAT2 (armnetbsd_, OP)
#define MY(OP) CONCAT2 (arm_aout_nbsd_, OP)
/* This needs to start with a.out so GDB knows it is an a.out variant. */
#define TARGETNAME "a.out-arm-netbsd"
+30 -26
View File
@@ -1,6 +1,6 @@
/* Main header file for the bfd library -- portable access to object files.
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -292,13 +292,13 @@ typedef struct bfd_section *sec_ptr;
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
#define bfd_get_section_limit_octets(bfd, sec) \
((bfd)->direction != write_direction && (sec)->rawsize != 0 \
? (sec)->rawsize : (sec)->size)
/* Find the address one past the end of SEC. */
#define bfd_get_section_limit(bfd, sec) \
(((bfd)->direction != write_direction && (sec)->rawsize != 0 \
? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd))
(bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
/* Return TRUE if input section SEC has been discarded. */
#define discarded_section(sec) \
@@ -517,8 +517,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
extern bfd_boolean bfd_cache_close
(bfd *abfd);
/* NB: This declaration should match the autogenerated one in libbfd.h. */
@@ -663,7 +661,7 @@ extern int bfd_elf_get_dyn_lib_class
(bfd *);
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
(bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf_discard_info
extern int bfd_elf_discard_info
(bfd *, struct bfd_link_info *);
extern unsigned int _bfd_elf_default_action_discarded
(struct bfd_section *);
@@ -685,19 +683,21 @@ extern int bfd_get_elf_phdrs
(bfd *abfd, void *phdrs);
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
reconstruct an ELF file by reading the segments out of remote memory
based on the ELF file header at EHDR_VMA and the ELF program headers it
points to. If not null, *LOADBASEP is filled in with the difference
between the VMAs from which the segments were read, and the VMAs the
file headers (and hence BFD's idea of each section's VMA) put them at.
reconstruct an ELF file by reading the segments out of remote
memory based on the ELF file header at EHDR_VMA and the ELF program
headers it points to. If non-zero, SIZE is the known extent of the
object. If not null, *LOADBASEP is filled in with the difference
between the VMAs from which the segments were read, and the VMAs
the file headers (and hence BFD's idea of each section's VMA) put
them at.
The function TARGET_READ_MEMORY is called to copy LEN bytes from the
remote memory at target address VMA into the local buffer at MYADDR; it
should return zero on success or an `errno' code on failure. TEMPL must
be a BFD for an ELF target with the word size and byte order found in
the remote memory. */
The function TARGET_READ_MEMORY is called to copy LEN bytes from
the remote memory at target address VMA into the local buffer at
MYADDR; it should return zero on success or an `errno' code on
failure. TEMPL must be a BFD for a target with the word size and
byte order found in the remote memory. */
extern bfd *bfd_elf_bfd_from_remote_memory
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
(bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
bfd_size_type len));
@@ -882,15 +882,19 @@ extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
(bfd *, struct bfd_link_info *);
/* ELF ARM mapping symbol support */
/* ELF ARM mapping symbol support. */
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
extern bfd_boolean bfd_is_arm_special_symbol_name
(const char * name, int type);
extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
extern bfd_boolean bfd_is_arm_special_symbol_name
(const char *, int);
extern void bfd_elf32_arm_set_byteswap_code
(struct bfd_link_info *, int);
extern void bfd_elf32_arm_use_long_plt (void);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines
@@ -936,10 +940,10 @@ extern void bfd_elf32_aarch64_init_maps
(bfd *);
extern void bfd_elf64_aarch64_set_options
(bfd *, struct bfd_link_info *, int, int, int);
(bfd *, struct bfd_link_info *, int, int, int, int);
extern void bfd_elf32_aarch64_set_options
(bfd *, struct bfd_link_info *, int, int, int);
(bfd *, struct bfd_link_info *, int, int, int, int);
/* ELF AArch64 mapping symbol support. */
#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0)
+419 -108
View File
@@ -7,7 +7,7 @@
/* Main header file for the bfd library -- portable access to object files.
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -299,13 +299,13 @@ typedef struct bfd_section *sec_ptr;
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
#define bfd_get_section_limit_octets(bfd, sec) \
((bfd)->direction != write_direction && (sec)->rawsize != 0 \
? (sec)->rawsize : (sec)->size)
/* Find the address one past the end of SEC. */
#define bfd_get_section_limit(bfd, sec) \
(((bfd)->direction != write_direction && (sec)->rawsize != 0 \
? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd))
(bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
/* Return TRUE if input section SEC has been discarded. */
#define discarded_section(sec) \
@@ -524,8 +524,6 @@ extern void warn_deprecated (const char *, const char *, int, const char *);
#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
extern bfd_boolean bfd_cache_close
(bfd *abfd);
/* NB: This declaration should match the autogenerated one in libbfd.h. */
@@ -670,7 +668,7 @@ extern int bfd_elf_get_dyn_lib_class
(bfd *);
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
(bfd *, struct bfd_link_info *);
extern bfd_boolean bfd_elf_discard_info
extern int bfd_elf_discard_info
(bfd *, struct bfd_link_info *);
extern unsigned int _bfd_elf_default_action_discarded
(struct bfd_section *);
@@ -692,19 +690,21 @@ extern int bfd_get_elf_phdrs
(bfd *abfd, void *phdrs);
/* Create a new BFD as if by bfd_openr. Rather than opening a file,
reconstruct an ELF file by reading the segments out of remote memory
based on the ELF file header at EHDR_VMA and the ELF program headers it
points to. If not null, *LOADBASEP is filled in with the difference
between the VMAs from which the segments were read, and the VMAs the
file headers (and hence BFD's idea of each section's VMA) put them at.
reconstruct an ELF file by reading the segments out of remote
memory based on the ELF file header at EHDR_VMA and the ELF program
headers it points to. If non-zero, SIZE is the known extent of the
object. If not null, *LOADBASEP is filled in with the difference
between the VMAs from which the segments were read, and the VMAs
the file headers (and hence BFD's idea of each section's VMA) put
them at.
The function TARGET_READ_MEMORY is called to copy LEN bytes from the
remote memory at target address VMA into the local buffer at MYADDR; it
should return zero on success or an `errno' code on failure. TEMPL must
be a BFD for an ELF target with the word size and byte order found in
the remote memory. */
The function TARGET_READ_MEMORY is called to copy LEN bytes from
the remote memory at target address VMA into the local buffer at
MYADDR; it should return zero on success or an `errno' code on
failure. TEMPL must be a BFD for a target with the word size and
byte order found in the remote memory. */
extern bfd *bfd_elf_bfd_from_remote_memory
(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
(bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
bfd_size_type len));
@@ -889,15 +889,19 @@ extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
(bfd *, struct bfd_link_info *);
/* ELF ARM mapping symbol support */
/* ELF ARM mapping symbol support. */
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
extern bfd_boolean bfd_is_arm_special_symbol_name
(const char * name, int type);
extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
extern bfd_boolean bfd_is_arm_special_symbol_name
(const char *, int);
extern void bfd_elf32_arm_set_byteswap_code
(struct bfd_link_info *, int);
extern void bfd_elf32_arm_use_long_plt (void);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines
@@ -943,10 +947,10 @@ extern void bfd_elf32_aarch64_init_maps
(bfd *);
extern void bfd_elf64_aarch64_set_options
(bfd *, struct bfd_link_info *, int, int, int);
(bfd *, struct bfd_link_info *, int, int, int, int);
extern void bfd_elf32_aarch64_set_options
(bfd *, struct bfd_link_info *, int, int, int);
(bfd *, struct bfd_link_info *, int, int, int, int);
/* ELF AArch64 mapping symbol support. */
#define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP (1 << 0)
@@ -1021,6 +1025,7 @@ extern struct coff_comdat_info * bfd_coff_get_comdat_section
void bfd_init (void);
/* Extracted from opncls.c. */
/* Set to N to open the next N BFDs using an alternate id space. */
extern unsigned int bfd_use_reserved_id;
bfd *bfd_fopen (const char *filename, const char *target,
const char *mode, int fd);
@@ -1029,7 +1034,7 @@ bfd *bfd_openr (const char *filename, const char *target);
bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
bfd *bfd_openstreamr (const char *, const char *, void *);
bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
bfd *bfd_openr_iovec (const char *filename, const char *target,
void *(*open_func) (struct bfd *nbfd,
@@ -1067,7 +1072,9 @@ unsigned long bfd_calc_gnu_debuglink_crc32
char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
char *bfd_get_alt_debug_link_info (bfd *abfd, unsigned long *crc32_out);
char *bfd_get_alt_debug_link_info (bfd * abfd,
bfd_size_type *buildid_len,
bfd_byte **buildid_out);
char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
@@ -1203,6 +1210,7 @@ void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
/* Extracted from bfdwin.c. */
/* Extracted from section.c. */
typedef struct bfd_section
{
/* The name of the section; the name isn't a copy, the pointer is
@@ -1440,6 +1448,7 @@ typedef struct bfd_section
#define SEC_INFO_TYPE_MERGE 2
#define SEC_INFO_TYPE_EH_FRAME 3
#define SEC_INFO_TYPE_JUST_SYMS 4
#define SEC_INFO_TYPE_TARGET 5
/* Nonzero if this section uses RELA relocations, rather than REL. */
unsigned int use_rela_p:1;
@@ -1594,6 +1603,32 @@ struct relax_table {
int size;
};
/* Note: the following are provided as inline functions rather than macros
because not all callers use the return value. A macro implementation
would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
compilers will complain about comma expressions that have no effect. */
static inline bfd_boolean
bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
{
ptr->userdata = val;
return TRUE;
}
static inline bfd_boolean
bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
{
ptr->vma = ptr->lma = val;
ptr->user_set_vma = TRUE;
return TRUE;
}
static inline bfd_boolean
bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
{
ptr->alignment_power = val;
return TRUE;
}
/* These sections are global, and are managed by BFD. The application
and target back end are not permitted to change the values in
these sections. */
@@ -1876,7 +1911,9 @@ enum bfd_architecture
#define bfd_mach_i960_jx 7
#define bfd_mach_i960_hx 8
bfd_arch_or32, /* OpenRISC 32 */
bfd_arch_or1k, /* OpenRISC 1000 */
#define bfd_mach_or1k 1
#define bfd_mach_or1knd 2
bfd_arch_sparc, /* SPARC */
#define bfd_mach_sparc 1
@@ -1935,8 +1972,14 @@ enum bfd_architecture
#define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */
#define bfd_mach_mipsisa32 32
#define bfd_mach_mipsisa32r2 33
#define bfd_mach_mipsisa32r3 34
#define bfd_mach_mipsisa32r5 36
#define bfd_mach_mipsisa32r6 37
#define bfd_mach_mipsisa64 64
#define bfd_mach_mipsisa64r2 65
#define bfd_mach_mipsisa64r3 66
#define bfd_mach_mipsisa64r5 68
#define bfd_mach_mipsisa64r6 69
#define bfd_mach_mips_micromips 96
bfd_arch_i386, /* Intel 386 */
#define bfd_mach_i386_intel_syntax (1 << 0)
@@ -2071,6 +2114,12 @@ enum bfd_architecture
#define bfd_mach_arm_ep9312 11
#define bfd_mach_arm_iWMMXt 12
#define bfd_mach_arm_iWMMXt2 13
bfd_arch_nds32, /* Andes NDS32 */
#define bfd_mach_n1 1
#define bfd_mach_n1h 2
#define bfd_mach_n1h_v2 3
#define bfd_mach_n1h_v3 4
#define bfd_mach_n1h_v3m 5
bfd_arch_ns32k, /* National Semiconductors ns32000 */
bfd_arch_w65, /* WDC 65816 */
bfd_arch_tic30, /* Texas Instruments TMS320C30 */
@@ -2153,6 +2202,7 @@ enum bfd_architecture
#define bfd_mach_avr5 5
#define bfd_mach_avr51 51
#define bfd_mach_avr6 6
#define bfd_mach_avrtiny 100
#define bfd_mach_avrxmega1 101
#define bfd_mach_avrxmega2 102
#define bfd_mach_avrxmega3 103
@@ -2182,7 +2232,6 @@ enum bfd_architecture
bfd_arch_score, /* Sunplus score */
#define bfd_mach_score3 3
#define bfd_mach_score7 7
bfd_arch_openrisc, /* OpenRISC */
bfd_arch_mmix, /* Donald Knuth's educational processor. */
bfd_arch_xstormy16,
#define bfd_mach_xstormy16 1
@@ -2302,6 +2351,7 @@ unsigned int bfd_arch_mach_octets_per_byte
(enum bfd_architecture arch, unsigned long machine);
/* Extracted from reloc.c. */
typedef enum bfd_reloc_status
{
/* No errors detected. */
@@ -2351,6 +2401,7 @@ typedef struct reloc_cache_entry
}
arelent;
enum complain_overflow
{
/* Do not complain on overflow. */
@@ -2369,6 +2420,7 @@ enum complain_overflow
unsigned number. */
complain_overflow_unsigned
};
struct bfd_symbol; /* Forward declaration. */
struct reloc_howto_struct
{
@@ -2896,6 +2948,12 @@ to compensate for the borrow when the low bits are added. */
BFD_RELOC_MICROMIPS_10_PCREL_S1,
BFD_RELOC_MICROMIPS_16_PCREL_S1,
/* MIPS PC-relative relocations. */
BFD_RELOC_MIPS_21_PCREL_S2,
BFD_RELOC_MIPS_26_PCREL_S2,
BFD_RELOC_MIPS_18_PCREL_S3,
BFD_RELOC_MIPS_19_PCREL_S2,
/* microMIPS versions of generic BFD relocs. */
BFD_RELOC_MICROMIPS_GPREL16,
BFD_RELOC_MICROMIPS_HI16,
@@ -3225,6 +3283,7 @@ instruction. */
BFD_RELOC_PPC64_PLTGOT16_LO_DS,
BFD_RELOC_PPC64_ADDR16_HIGH,
BFD_RELOC_PPC64_ADDR16_HIGHA,
BFD_RELOC_PPC64_ADDR64_LOCAL,
/* PowerPC and PowerPC64 thread-local storage relocations. */
BFD_RELOC_PPC_TLS,
@@ -3794,6 +3853,205 @@ add3, load, and store instructions. */
BFD_RELOC_M32R_GOTPC_HI_SLO,
BFD_RELOC_M32R_GOTPC_LO,
/* NDS32 relocs.
This is a 20 bit absolute address. */
BFD_RELOC_NDS32_20,
/* This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. */
BFD_RELOC_NDS32_9_PCREL,
/* This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. */
BFD_RELOC_NDS32_WORD_9_PCREL,
/* This is an 15-bit reloc with the right 1 bit assumed to be 0. */
BFD_RELOC_NDS32_15_PCREL,
/* This is an 17-bit reloc with the right 1 bit assumed to be 0. */
BFD_RELOC_NDS32_17_PCREL,
/* This is a 25-bit reloc with the right 1 bit assumed to be 0. */
BFD_RELOC_NDS32_25_PCREL,
/* This is a 20-bit reloc containing the high 20 bits of an address
used with the lower 12 bits */
BFD_RELOC_NDS32_HI20,
/* This is a 12-bit reloc containing the lower 12 bits of an address
then shift right by 3. This is used with ldi,sdi... */
BFD_RELOC_NDS32_LO12S3,
/* This is a 12-bit reloc containing the lower 12 bits of an address
then shift left by 2. This is used with lwi,swi... */
BFD_RELOC_NDS32_LO12S2,
/* This is a 12-bit reloc containing the lower 12 bits of an address
then shift left by 1. This is used with lhi,shi... */
BFD_RELOC_NDS32_LO12S1,
/* This is a 12-bit reloc containing the lower 12 bits of an address
then shift left by 0. This is used with lbisbi... */
BFD_RELOC_NDS32_LO12S0,
/* This is a 12-bit reloc containing the lower 12 bits of an address
then shift left by 0. This is only used with branch relaxations */
BFD_RELOC_NDS32_LO12S0_ORI,
/* This is a 15-bit reloc containing the small data area 18-bit signed offset
and shift left by 3 for use in ldi, sdi... */
BFD_RELOC_NDS32_SDA15S3,
/* This is a 15-bit reloc containing the small data area 17-bit signed offset
and shift left by 2 for use in lwi, swi... */
BFD_RELOC_NDS32_SDA15S2,
/* This is a 15-bit reloc containing the small data area 16-bit signed offset
and shift left by 1 for use in lhi, shi... */
BFD_RELOC_NDS32_SDA15S1,
/* This is a 15-bit reloc containing the small data area 15-bit signed offset
and shift left by 0 for use in lbi, sbi... */
BFD_RELOC_NDS32_SDA15S0,
/* This is a 16-bit reloc containing the small data area 16-bit signed offset
and shift left by 3 */
BFD_RELOC_NDS32_SDA16S3,
/* This is a 17-bit reloc containing the small data area 17-bit signed offset
and shift left by 2 for use in lwi.gp, swi.gp... */
BFD_RELOC_NDS32_SDA17S2,
/* This is a 18-bit reloc containing the small data area 18-bit signed offset
and shift left by 1 for use in lhi.gp, shi.gp... */
BFD_RELOC_NDS32_SDA18S1,
/* This is a 19-bit reloc containing the small data area 19-bit signed offset
and shift left by 0 for use in lbi.gp, sbi.gp... */
BFD_RELOC_NDS32_SDA19S0,
/* for PIC */
BFD_RELOC_NDS32_GOT20,
BFD_RELOC_NDS32_9_PLTREL,
BFD_RELOC_NDS32_25_PLTREL,
BFD_RELOC_NDS32_COPY,
BFD_RELOC_NDS32_GLOB_DAT,
BFD_RELOC_NDS32_JMP_SLOT,
BFD_RELOC_NDS32_RELATIVE,
BFD_RELOC_NDS32_GOTOFF,
BFD_RELOC_NDS32_GOTOFF_HI20,
BFD_RELOC_NDS32_GOTOFF_LO12,
BFD_RELOC_NDS32_GOTPC20,
BFD_RELOC_NDS32_GOT_HI20,
BFD_RELOC_NDS32_GOT_LO12,
BFD_RELOC_NDS32_GOTPC_HI20,
BFD_RELOC_NDS32_GOTPC_LO12,
/* for relax */
BFD_RELOC_NDS32_INSN16,
BFD_RELOC_NDS32_LABEL,
BFD_RELOC_NDS32_LONGCALL1,
BFD_RELOC_NDS32_LONGCALL2,
BFD_RELOC_NDS32_LONGCALL3,
BFD_RELOC_NDS32_LONGJUMP1,
BFD_RELOC_NDS32_LONGJUMP2,
BFD_RELOC_NDS32_LONGJUMP3,
BFD_RELOC_NDS32_LOADSTORE,
BFD_RELOC_NDS32_9_FIXED,
BFD_RELOC_NDS32_15_FIXED,
BFD_RELOC_NDS32_17_FIXED,
BFD_RELOC_NDS32_25_FIXED,
BFD_RELOC_NDS32_LONGCALL4,
BFD_RELOC_NDS32_LONGCALL5,
BFD_RELOC_NDS32_LONGCALL6,
BFD_RELOC_NDS32_LONGJUMP4,
BFD_RELOC_NDS32_LONGJUMP5,
BFD_RELOC_NDS32_LONGJUMP6,
BFD_RELOC_NDS32_LONGJUMP7,
/* for PIC */
BFD_RELOC_NDS32_PLTREL_HI20,
BFD_RELOC_NDS32_PLTREL_LO12,
BFD_RELOC_NDS32_PLT_GOTREL_HI20,
BFD_RELOC_NDS32_PLT_GOTREL_LO12,
/* for floating point */
BFD_RELOC_NDS32_SDA12S2_DP,
BFD_RELOC_NDS32_SDA12S2_SP,
BFD_RELOC_NDS32_LO12S2_DP,
BFD_RELOC_NDS32_LO12S2_SP,
/* for dwarf2 debug_line. */
BFD_RELOC_NDS32_DWARF2_OP1,
BFD_RELOC_NDS32_DWARF2_OP2,
BFD_RELOC_NDS32_DWARF2_LEB,
/* for eliminate 16-bit instructions */
BFD_RELOC_NDS32_UPDATE_TA,
/* for PIC object relaxation */
BFD_RELOC_NDS32_PLT_GOTREL_LO20,
BFD_RELOC_NDS32_PLT_GOTREL_LO15,
BFD_RELOC_NDS32_PLT_GOTREL_LO19,
BFD_RELOC_NDS32_GOT_LO15,
BFD_RELOC_NDS32_GOT_LO19,
BFD_RELOC_NDS32_GOTOFF_LO15,
BFD_RELOC_NDS32_GOTOFF_LO19,
BFD_RELOC_NDS32_GOT15S2,
BFD_RELOC_NDS32_GOT17S2,
/* NDS32 relocs.
This is a 5 bit absolute address. */
BFD_RELOC_NDS32_5,
/* This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0. */
BFD_RELOC_NDS32_10_UPCREL,
/* If fp were omitted, fp can used as another gp. */
BFD_RELOC_NDS32_SDA_FP7U2_RELA,
/* relaxation relative relocation types */
BFD_RELOC_NDS32_RELAX_ENTRY,
BFD_RELOC_NDS32_GOT_SUFF,
BFD_RELOC_NDS32_GOTOFF_SUFF,
BFD_RELOC_NDS32_PLT_GOT_SUFF,
BFD_RELOC_NDS32_MULCALL_SUFF,
BFD_RELOC_NDS32_PTR,
BFD_RELOC_NDS32_PTR_COUNT,
BFD_RELOC_NDS32_PTR_RESOLVED,
BFD_RELOC_NDS32_PLTBLOCK,
BFD_RELOC_NDS32_RELAX_REGION_BEGIN,
BFD_RELOC_NDS32_RELAX_REGION_END,
BFD_RELOC_NDS32_MINUEND,
BFD_RELOC_NDS32_SUBTRAHEND,
BFD_RELOC_NDS32_DIFF8,
BFD_RELOC_NDS32_DIFF16,
BFD_RELOC_NDS32_DIFF32,
BFD_RELOC_NDS32_DIFF_ULEB128,
BFD_RELOC_NDS32_EMPTY,
/* This is a 25 bit absolute address. */
BFD_RELOC_NDS32_25_ABS,
/* For ex9 and ifc using. */
BFD_RELOC_NDS32_DATA,
BFD_RELOC_NDS32_TRAN,
BFD_RELOC_NDS32_17IFC_PCREL,
BFD_RELOC_NDS32_10IFCU_PCREL,
/* For TLS. */
BFD_RELOC_NDS32_TPOFF,
BFD_RELOC_NDS32_TLS_LE_HI20,
BFD_RELOC_NDS32_TLS_LE_LO12,
BFD_RELOC_NDS32_TLS_LE_ADD,
BFD_RELOC_NDS32_TLS_LE_LS,
BFD_RELOC_NDS32_GOTTPOFF,
BFD_RELOC_NDS32_TLS_IE_HI20,
BFD_RELOC_NDS32_TLS_IE_LO12S2,
BFD_RELOC_NDS32_TLS_TPOFF,
BFD_RELOC_NDS32_TLS_LE_20,
BFD_RELOC_NDS32_TLS_LE_15S0,
BFD_RELOC_NDS32_TLS_LE_15S1,
BFD_RELOC_NDS32_TLS_LE_15S2,
/* This is a 9-bit reloc */
BFD_RELOC_V850_9_PCREL,
@@ -4251,6 +4509,28 @@ in .byte hi8(symbol) */
in .byte hlo8(symbol) */
BFD_RELOC_AVR_8_HLO,
/* AVR relocations to mark the difference of two local symbols.
These are only needed to support linker relaxation and can be ignored
when not relaxing. The field is set to the value of the difference
assuming no relaxation. The relocation encodes the position of the
second symbol so the linker can determine whether to adjust the field
value. */
BFD_RELOC_AVR_DIFF8,
BFD_RELOC_AVR_DIFF16,
BFD_RELOC_AVR_DIFF32,
/* This is a 7 bit reloc for the AVR that stores SRAM address for 16bit
lds and sts instructions supported only tiny core. */
BFD_RELOC_AVR_LDS_STS_16,
/* This is a 6 bit reloc for the AVR that stores an I/O register
number for the IN and OUT instructions */
BFD_RELOC_AVR_PORT6,
/* This is a 5 bit reloc for the AVR that stores an I/O register
number for the SBIC, SBIS, SBI and CBI instructions */
BFD_RELOC_AVR_PORT5,
/* Renesas RL78 Relocations. */
BFD_RELOC_RL78_NEG8,
BFD_RELOC_RL78_NEG16,
@@ -4914,9 +5194,31 @@ a matching LO8XG part. */
BFD_RELOC_860_HIGOT,
BFD_RELOC_860_HIGOTOFF,
/* OpenRISC Relocations. */
BFD_RELOC_OPENRISC_ABS_26,
BFD_RELOC_OPENRISC_REL_26,
/* OpenRISC 1000 Relocations. */
BFD_RELOC_OR1K_REL_26,
BFD_RELOC_OR1K_GOTPC_HI16,
BFD_RELOC_OR1K_GOTPC_LO16,
BFD_RELOC_OR1K_GOT16,
BFD_RELOC_OR1K_PLT26,
BFD_RELOC_OR1K_GOTOFF_HI16,
BFD_RELOC_OR1K_GOTOFF_LO16,
BFD_RELOC_OR1K_COPY,
BFD_RELOC_OR1K_GLOB_DAT,
BFD_RELOC_OR1K_JMP_SLOT,
BFD_RELOC_OR1K_RELATIVE,
BFD_RELOC_OR1K_TLS_GD_HI16,
BFD_RELOC_OR1K_TLS_GD_LO16,
BFD_RELOC_OR1K_TLS_LDM_HI16,
BFD_RELOC_OR1K_TLS_LDM_LO16,
BFD_RELOC_OR1K_TLS_LDO_HI16,
BFD_RELOC_OR1K_TLS_LDO_LO16,
BFD_RELOC_OR1K_TLS_IE_HI16,
BFD_RELOC_OR1K_TLS_IE_LO16,
BFD_RELOC_OR1K_TLS_LE_HI16,
BFD_RELOC_OR1K_TLS_LE_LO16,
BFD_RELOC_OR1K_TLS_TPOFF,
BFD_RELOC_OR1K_TLS_DTPOFF,
BFD_RELOC_OR1K_TLS_DTPMOD,
/* H8 elf Relocations. */
BFD_RELOC_H8_DIR16A8,
@@ -5024,6 +5326,11 @@ a matching LO8XG part. */
BFD_RELOC_NIOS2_JUMP_SLOT,
BFD_RELOC_NIOS2_RELATIVE,
BFD_RELOC_NIOS2_GOTOFF,
BFD_RELOC_NIOS2_CALL26_NOAT,
BFD_RELOC_NIOS2_GOT_LO,
BFD_RELOC_NIOS2_GOT_HA,
BFD_RELOC_NIOS2_CALL_LO,
BFD_RELOC_NIOS2_CALL_HA,
/* IQ2000 Relocations. */
BFD_RELOC_IQ2000_OFFSET_16,
@@ -5763,6 +6070,7 @@ assembler and not (currently) written to any object files. */
/* Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. */
BFD_RELOC_EPIPHANY_IMM8,
BFD_RELOC_UNUSED };
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
reloc_howto_type *bfd_reloc_type_lookup
(bfd *abfd, bfd_reloc_code_real_type code);
@@ -5960,6 +6268,7 @@ bfd_boolean bfd_copy_private_symbol_data
(ibfd, isymbol, obfd, osymbol))
/* Extracted from bfd.c. */
enum bfd_direction
{
no_direction = 0,
@@ -5970,9 +6279,6 @@ enum bfd_direction
struct bfd
{
/* A unique identifier of the BFD */
unsigned int id;
/* The filename the application opened the BFD with. */
const char *filename;
@@ -5995,17 +6301,17 @@ struct bfd
/* File modified time, if mtime_set is TRUE. */
long mtime;
/* Reserved for an unimplemented file locking extension. */
int ifd;
/* A unique identifier of the BFD */
unsigned int id;
/* The format which belongs to the BFD. (object, core, etc.) */
bfd_format format;
ENUM_BITFIELD (bfd_format) format : 3;
/* The direction with which the BFD was opened. */
enum bfd_direction direction;
ENUM_BITFIELD (bfd_direction) direction : 2;
/* Format_specific flags. */
flagword flags;
flagword flags : 17;
/* Values that may appear in the flags field of a BFD. These also
appear in the object_flags field of the bfd_target structure, where
@@ -6064,26 +6370,23 @@ struct bfd
struct. */
#define BFD_IN_MEMORY 0x800
/* The sections in this BFD specify a memory page. */
#define HAS_LOAD_PAGE 0x1000
/* This BFD has been created by the linker and doesn't correspond
to any input file. */
#define BFD_LINKER_CREATED 0x2000
#define BFD_LINKER_CREATED 0x1000
/* This may be set before writing out a BFD to request that it
be written using values for UIDs, GIDs, timestamps, etc. that
will be consistent from run to run. */
#define BFD_DETERMINISTIC_OUTPUT 0x4000
#define BFD_DETERMINISTIC_OUTPUT 0x2000
/* Compress sections in this BFD. */
#define BFD_COMPRESS 0x8000
#define BFD_COMPRESS 0x4000
/* Decompress sections in this BFD. */
#define BFD_DECOMPRESS 0x10000
#define BFD_DECOMPRESS 0x8000
/* BFD is a dummy, for plugins. */
#define BFD_PLUGIN 0x20000
#define BFD_PLUGIN 0x10000
/* Flags bits to be saved in bfd_preserve_save. */
#define BFD_FLAGS_SAVED \
@@ -6094,6 +6397,42 @@ struct bfd
(BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
| BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT)
/* Is the file descriptor being cached? That is, can it be closed as
needed, and re-opened when accessed later? */
unsigned int cacheable : 1;
/* Marks whether there was a default target specified when the
BFD was opened. This is used to select which matching algorithm
to use to choose the back end. */
unsigned int target_defaulted : 1;
/* ... and here: (``once'' means at least once). */
unsigned int opened_once : 1;
/* Set if we have a locally maintained mtime value, rather than
getting it from the file each time. */
unsigned int mtime_set : 1;
/* Flag set if symbols from this BFD should not be exported. */
unsigned int no_export : 1;
/* Remember when output has begun, to stop strange things
from happening. */
unsigned int output_has_begun : 1;
/* Have archive map. */
unsigned int has_armap : 1;
/* Set if this is a thin archive. */
unsigned int is_thin_archive : 1;
/* Set if only required symbols should be added in the link hash table for
this object. Used by VMS linkers. */
unsigned int selective_search : 1;
/* Set if this is the linker output BFD. */
unsigned int is_linker_output : 1;
/* Currently my_archive is tested before adding origin to
anything. I believe that this can become always an add of
origin, with origin set to 0 for non archive files. */
@@ -6118,17 +6457,21 @@ struct bfd
/* The number of sections. */
unsigned int section_count;
/* A field used by _bfd_generic_link_add_archive_symbols. This will
be used only for archive elements. */
int archive_pass;
/* Stuff only useful for object files:
The start address. */
bfd_vma start_address;
/* Used for input and output. */
unsigned int symcount;
/* Symbol table for output BFD (with symcount entries).
Also used by the linker to cache input BFD symbols. */
struct bfd_symbol **outsymbols;
/* Used for input and output. */
unsigned int symcount;
/* Used for slurped dynamic symbol tables. */
unsigned int dynsymcount;
@@ -6143,12 +6486,12 @@ struct bfd
struct bfd *nested_archives; /* List of nested archive in a flattened
thin archive. */
/* A chain of BFD structures involved in a link. */
struct bfd *link_next;
/* A field used by _bfd_generic_link_add_archive_symbols. This will
be used only for archive elements. */
int archive_pass;
union {
/* For input BFDs, a chain of BFDs involved in a link. */
struct bfd *next;
/* For output BFD, the linker hash table. */
struct bfd_link_hash_table *hash;
} link;
/* Used by the back end to hold private data. */
union
@@ -6200,41 +6543,17 @@ struct bfd
struct objalloc *, but we use void * to avoid requiring the inclusion
of objalloc.h. */
void *memory;
/* Is the file descriptor being cached? That is, can it be closed as
needed, and re-opened when accessed later? */
unsigned int cacheable : 1;
/* Marks whether there was a default target specified when the
BFD was opened. This is used to select which matching algorithm
to use to choose the back end. */
unsigned int target_defaulted : 1;
/* ... and here: (``once'' means at least once). */
unsigned int opened_once : 1;
/* Set if we have a locally maintained mtime value, rather than
getting it from the file each time. */
unsigned int mtime_set : 1;
/* Flag set if symbols from this BFD should not be exported. */
unsigned int no_export : 1;
/* Remember when output has begun, to stop strange things
from happening. */
unsigned int output_has_begun : 1;
/* Have archive map. */
unsigned int has_armap : 1;
/* Set if this is a thin archive. */
unsigned int is_thin_archive : 1;
/* Set if only required symbols should be added in the link hash table for
this object. Used by VMS linkers. */
unsigned int selective_search : 1;
};
/* See note beside bfd_set_section_userdata. */
static inline bfd_boolean
bfd_set_cacheable (bfd * abfd, bfd_boolean val)
{
abfd->cacheable = val;
return TRUE;
}
typedef enum bfd_error
{
bfd_error_no_error = 0,
@@ -6270,6 +6589,7 @@ const char *bfd_errmsg (bfd_error_type error_tag);
void bfd_perror (const char *message);
typedef void (*bfd_error_handler_type) (const char *, ...);
bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
@@ -6278,6 +6598,7 @@ void bfd_set_error_program_name (const char *);
bfd_error_handler_type bfd_get_error_handler (void);
typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg,
const char *bfd_version,
const char *bfd_file,
@@ -6333,12 +6654,12 @@ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
BFD_SEND (abfd, _bfd_find_nearest_line, \
(abfd, sec, syms, off, file, func, line))
(abfd, syms, sec, off, file, func, line, NULL))
#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
line, disc) \
BFD_SEND (abfd, _bfd_find_nearest_line_discriminator, \
(abfd, sec, syms, off, file, func, line, disc))
BFD_SEND (abfd, _bfd_find_nearest_line, \
(abfd, syms, sec, off, file, func, line, disc))
#define bfd_find_line(abfd, syms, sym, file, line) \
BFD_SEND (abfd, _bfd_find_line, \
@@ -6387,9 +6708,6 @@ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
#define bfd_link_hash_table_create(abfd) \
BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
#define bfd_link_hash_table_free(abfd, hash) \
BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
#define bfd_link_add_symbols(abfd, info) \
BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
@@ -6703,8 +7021,7 @@ typedef struct bfd_target
NAME##_bfd_is_target_special_symbol, \
NAME##_get_lineno, \
NAME##_find_nearest_line, \
_bfd_generic_find_nearest_line_discriminator, \
_bfd_generic_find_line, \
NAME##_find_line, \
NAME##_find_inliner_info, \
NAME##_bfd_make_debug_symbol, \
NAME##_read_minisymbols, \
@@ -6725,10 +7042,7 @@ typedef struct bfd_target
bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
alent * (*_get_lineno) (bfd *, struct bfd_symbol *);
bfd_boolean (*_bfd_find_nearest_line)
(bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
const char **, const char **, unsigned int *);
bfd_boolean (*_bfd_find_nearest_line_discriminator)
(bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
(bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *);
bfd_boolean (*_bfd_find_line)
(bfd *, struct bfd_symbol **, struct bfd_symbol *,
@@ -6782,7 +7096,6 @@ typedef struct bfd_target
NAME##_bfd_get_relocated_section_contents, \
NAME##_bfd_relax_section, \
NAME##_bfd_link_hash_table_create, \
NAME##_bfd_link_hash_table_free, \
NAME##_bfd_link_add_symbols, \
NAME##_bfd_link_just_syms, \
NAME##_bfd_copy_link_hash_symbol_type, \
@@ -6809,16 +7122,14 @@ typedef struct bfd_target
struct bfd_link_hash_table *
(*_bfd_link_hash_table_create) (bfd *);
/* Release the memory associated with the linker hash table. */
void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
/* Add symbols from this object file into the hash table. */
bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
/* Indicate that we are only retrieving symbol values from this section. */
void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
/* Copy the symbol type of a linker hash table entry. */
/* Copy the symbol type and other attributes for a linker script
assignment of one symbol to another. */
#define bfd_copy_link_hash_symbol_type(b, t, f) \
BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
void (*_bfd_copy_link_hash_symbol_type)
+77 -69
View File
@@ -1,5 +1,5 @@
/* Generic BFD library interface and support routines.
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -46,9 +46,6 @@ CODE_FRAGMENT
.
.struct bfd
.{
. {* A unique identifier of the BFD *}
. unsigned int id;
.
. {* The filename the application opened the BFD with. *}
. const char *filename;
.
@@ -71,17 +68,17 @@ CODE_FRAGMENT
. {* File modified time, if mtime_set is TRUE. *}
. long mtime;
.
. {* Reserved for an unimplemented file locking extension. *}
. int ifd;
. {* A unique identifier of the BFD *}
. unsigned int id;
.
. {* The format which belongs to the BFD. (object, core, etc.) *}
. bfd_format format;
. ENUM_BITFIELD (bfd_format) format : 3;
.
. {* The direction with which the BFD was opened. *}
. enum bfd_direction direction;
. ENUM_BITFIELD (bfd_direction) direction : 2;
.
. {* Format_specific flags. *}
. flagword flags;
. flagword flags : 17;
.
. {* Values that may appear in the flags field of a BFD. These also
. appear in the object_flags field of the bfd_target structure, where
@@ -140,26 +137,23 @@ CODE_FRAGMENT
. struct. *}
.#define BFD_IN_MEMORY 0x800
.
. {* The sections in this BFD specify a memory page. *}
.#define HAS_LOAD_PAGE 0x1000
.
. {* This BFD has been created by the linker and doesn't correspond
. to any input file. *}
.#define BFD_LINKER_CREATED 0x2000
.#define BFD_LINKER_CREATED 0x1000
.
. {* This may be set before writing out a BFD to request that it
. be written using values for UIDs, GIDs, timestamps, etc. that
. will be consistent from run to run. *}
.#define BFD_DETERMINISTIC_OUTPUT 0x4000
.#define BFD_DETERMINISTIC_OUTPUT 0x2000
.
. {* Compress sections in this BFD. *}
.#define BFD_COMPRESS 0x8000
.#define BFD_COMPRESS 0x4000
.
. {* Decompress sections in this BFD. *}
.#define BFD_DECOMPRESS 0x10000
.#define BFD_DECOMPRESS 0x8000
.
. {* BFD is a dummy, for plugins. *}
.#define BFD_PLUGIN 0x20000
.#define BFD_PLUGIN 0x10000
.
. {* Flags bits to be saved in bfd_preserve_save. *}
.#define BFD_FLAGS_SAVED \
@@ -170,6 +164,42 @@ CODE_FRAGMENT
. (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
. | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT)
.
. {* Is the file descriptor being cached? That is, can it be closed as
. needed, and re-opened when accessed later? *}
. unsigned int cacheable : 1;
.
. {* Marks whether there was a default target specified when the
. BFD was opened. This is used to select which matching algorithm
. to use to choose the back end. *}
. unsigned int target_defaulted : 1;
.
. {* ... and here: (``once'' means at least once). *}
. unsigned int opened_once : 1;
.
. {* Set if we have a locally maintained mtime value, rather than
. getting it from the file each time. *}
. unsigned int mtime_set : 1;
.
. {* Flag set if symbols from this BFD should not be exported. *}
. unsigned int no_export : 1;
.
. {* Remember when output has begun, to stop strange things
. from happening. *}
. unsigned int output_has_begun : 1;
.
. {* Have archive map. *}
. unsigned int has_armap : 1;
.
. {* Set if this is a thin archive. *}
. unsigned int is_thin_archive : 1;
.
. {* Set if only required symbols should be added in the link hash table for
. this object. Used by VMS linkers. *}
. unsigned int selective_search : 1;
.
. {* Set if this is the linker output BFD. *}
. unsigned int is_linker_output : 1;
.
. {* Currently my_archive is tested before adding origin to
. anything. I believe that this can become always an add of
. origin, with origin set to 0 for non archive files. *}
@@ -194,17 +224,21 @@ CODE_FRAGMENT
. {* The number of sections. *}
. unsigned int section_count;
.
. {* A field used by _bfd_generic_link_add_archive_symbols. This will
. be used only for archive elements. *}
. int archive_pass;
.
. {* Stuff only useful for object files:
. The start address. *}
. bfd_vma start_address;
.
. {* Used for input and output. *}
. unsigned int symcount;
.
. {* Symbol table for output BFD (with symcount entries).
. Also used by the linker to cache input BFD symbols. *}
. struct bfd_symbol **outsymbols;
.
. {* Used for input and output. *}
. unsigned int symcount;
.
. {* Used for slurped dynamic symbol tables. *}
. unsigned int dynsymcount;
.
@@ -219,12 +253,12 @@ CODE_FRAGMENT
. struct bfd *nested_archives; {* List of nested archive in a flattened
. thin archive. *}
.
. {* A chain of BFD structures involved in a link. *}
. struct bfd *link_next;
.
. {* A field used by _bfd_generic_link_add_archive_symbols. This will
. be used only for archive elements. *}
. int archive_pass;
. union {
. {* For input BFDs, a chain of BFDs involved in a link. *}
. struct bfd *next;
. {* For output BFD, the linker hash table. *}
. struct bfd_link_hash_table *hash;
. } link;
.
. {* Used by the back end to hold private data. *}
. union
@@ -276,41 +310,16 @@ CODE_FRAGMENT
. struct objalloc *, but we use void * to avoid requiring the inclusion
. of objalloc.h. *}
. void *memory;
.
. {* Is the file descriptor being cached? That is, can it be closed as
. needed, and re-opened when accessed later? *}
. unsigned int cacheable : 1;
.
. {* Marks whether there was a default target specified when the
. BFD was opened. This is used to select which matching algorithm
. to use to choose the back end. *}
. unsigned int target_defaulted : 1;
.
. {* ... and here: (``once'' means at least once). *}
. unsigned int opened_once : 1;
.
. {* Set if we have a locally maintained mtime value, rather than
. getting it from the file each time. *}
. unsigned int mtime_set : 1;
.
. {* Flag set if symbols from this BFD should not be exported. *}
. unsigned int no_export : 1;
.
. {* Remember when output has begun, to stop strange things
. from happening. *}
. unsigned int output_has_begun : 1;
.
. {* Have archive map. *}
. unsigned int has_armap : 1;
.
. {* Set if this is a thin archive. *}
. unsigned int is_thin_archive : 1;
.
. {* Set if only required symbols should be added in the link hash table for
. this object. Used by VMS linkers. *}
. unsigned int selective_search : 1;
.};
.
.{* See note beside bfd_set_section_userdata. *}
.static inline bfd_boolean
.bfd_set_cacheable (bfd * abfd, bfd_boolean val)
.{
. abfd->cacheable = val;
. return TRUE;
.}
.
*/
#include "sysdep.h"
@@ -1065,9 +1074,11 @@ SYNOPSIS
int bfd_get_arch_size (bfd *abfd);
DESCRIPTION
Returns the architecture address size, in bits, as determined
by the object file's format. For ELF, this information is
included in the header.
Returns the normalized architecture address size, in bits, as
determined by the object file's format. By normalized, we mean
either 32 or 64. For ELF, this information is included in the
header. Use bfd_arch_bits_per_address for number of bits in
the architecture address.
RETURNS
Returns the arch size in bits if known, <<-1>> otherwise.
@@ -1079,7 +1090,7 @@ bfd_get_arch_size (bfd *abfd)
if (abfd->xvec->flavour == bfd_target_elf_flavour)
return get_elf_backend_data (abfd)->s->arch_size;
return -1;
return bfd_arch_bits_per_address (abfd) > 32 ? 64 : 32;
}
/*
@@ -1433,12 +1444,12 @@ DESCRIPTION
.
.#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
. BFD_SEND (abfd, _bfd_find_nearest_line, \
. (abfd, sec, syms, off, file, func, line))
. (abfd, syms, sec, off, file, func, line, NULL))
.
.#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
. line, disc) \
. BFD_SEND (abfd, _bfd_find_nearest_line_discriminator, \
. (abfd, sec, syms, off, file, func, line, disc))
. BFD_SEND (abfd, _bfd_find_nearest_line, \
. (abfd, syms, sec, off, file, func, line, disc))
.
.#define bfd_find_line(abfd, syms, sym, file, line) \
. BFD_SEND (abfd, _bfd_find_line, \
@@ -1487,9 +1498,6 @@ DESCRIPTION
.#define bfd_link_hash_table_create(abfd) \
. BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
.
.#define bfd_link_hash_table_free(abfd, hash) \
. BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
.
.#define bfd_link_add_symbols(abfd, info) \
. BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
.
+1 -1
View File
@@ -1,6 +1,6 @@
dnl This file was derived from acinclude.m4.
dnl
dnl Copyright 2012 Free Software Foundation
dnl Copyright (C) 2012-2014 Free Software Foundation, Inc.
dnl
dnl This file is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -1,6 +1,6 @@
/* Low-level I/O routines for BFDs.
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
+1 -2
View File
@@ -1,6 +1,5 @@
/* Support for memory-mapped windows into a BFD.
Copyright 1995, 1996, 2001, 2002, 2003, 2005, 2007, 2008, 2009, 2011
Free Software Foundation, Inc.
Copyright (C) 1995-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for binary objects.
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006, 2007, 2009, 2011 Free Software Foundation, Inc.
Copyright (C) 1994-2014 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>
This file is part of BFD, the Binary File Descriptor library.
@@ -205,6 +204,7 @@ binary_get_symbol_info (bfd *ignore_abfd ATTRIBUTE_UNUSED,
#define binary_bfd_is_local_label_name bfd_generic_is_local_label_name
#define binary_get_lineno _bfd_nosymbols_get_lineno
#define binary_find_nearest_line _bfd_nosymbols_find_nearest_line
#define binary_find_line _bfd_nosymbols_find_line
#define binary_find_inliner_info _bfd_nosymbols_find_inliner_info
#define binary_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define binary_read_minisymbols _bfd_generic_read_minisymbols
@@ -306,7 +306,6 @@ binary_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
#define binary_section_already_linked _bfd_generic_section_already_linked
#define binary_bfd_define_common_symbol bfd_generic_define_common_symbol
#define binary_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
#define binary_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define binary_bfd_link_just_syms _bfd_generic_link_just_syms
#define binary_bfd_copy_link_hash_symbol_type \
_bfd_generic_copy_link_hash_symbol_type
+7 -9
View File
@@ -1,7 +1,5 @@
/* BFD back-end for Intel 960 b.out binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -1376,10 +1374,10 @@ b_out_bfd_get_relocated_section_contents (bfd *output_bfd,
/* Build the transfer vectors for Big and Little-Endian B.OUT files. */
#define aout_32_find_line _bfd_nosymbols_find_line
#define aout_32_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info
#define b_out_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
#define b_out_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define b_out_bfd_link_add_symbols _bfd_generic_link_add_symbols
#define b_out_bfd_link_just_syms _bfd_generic_link_just_syms
#define b_out_bfd_copy_link_hash_symbol_type \
@@ -1395,9 +1393,9 @@ b_out_bfd_get_relocated_section_contents (bfd *output_bfd,
#define b_out_bfd_define_common_symbol bfd_generic_define_common_symbol
#define aout_32_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
extern const bfd_target b_out_vec_little_host;
extern const bfd_target bout_le_vec;
const bfd_target b_out_vec_big_host =
const bfd_target bout_be_vec =
{
"b.out.big", /* Name. */
bfd_target_aout_flavour,
@@ -1434,12 +1432,12 @@ const bfd_target b_out_vec_big_host =
BFD_JUMP_TABLE_LINK (b_out),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& b_out_vec_little_host,
& bout_le_vec,
NULL
};
const bfd_target b_out_vec_little_host =
const bfd_target bout_le_vec =
{
"b.out.little", /* Name. */
bfd_target_aout_flavour,
@@ -1477,7 +1475,7 @@ const bfd_target b_out_vec_little_host =
BFD_JUMP_TABLE_LINK (b_out),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& b_out_vec_big_host,
& bout_be_vec,
NULL
};
+4 -5
View File
@@ -1,7 +1,6 @@
/* BFD library -- caching of file descriptors.
Copyright 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support (steve@cygnus.com).
@@ -82,7 +81,7 @@ bfd_cache_max_open (void)
#ifdef HAVE_GETRLIMIT
struct rlimit rlim;
if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
&& rlim.rlim_cur != RLIM_INFINITY)
&& rlim.rlim_cur != (rlim_t) RLIM_INFINITY)
max = rlim.rlim_cur / 8;
else
#endif /* HAVE_GETRLIMIT */
@@ -311,7 +310,7 @@ cache_bread_1 (struct bfd *abfd, void *buf, file_ptr nbytes)
if (nread == (file_ptr)-1)
{
bfd_set_error (bfd_error_system_call);
return -1;
return nread;
}
#else
nread = fread (buf, 1, nbytes, f);
@@ -321,7 +320,7 @@ cache_bread_1 (struct bfd *abfd, void *buf, file_ptr nbytes)
if (nread < nbytes && ferror (f))
{
bfd_set_error (bfd_error_system_call);
return -1;
return nread;
}
#endif
if (nread < nbytes)
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Intel 386 COFF LynxOS files.
Copyright 1993, 1994, 1995, 2005, 2007, 2008
Free Software Foundation, Inc.
Copyright (C) 1993-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -23,7 +22,7 @@
#include "sysdep.h"
#include "bfd.h"
#define TARGET_SYM i386lynx_coff_vec
#define TARGET_SYM i386_coff_lynx_vec
#define TARGET_NAME "coff-i386-lynx"
#define LYNXOS
+2 -2
View File
@@ -1,5 +1,5 @@
/* BFD back-end for Sparc COFF LynxOS files.
Copyright 1993, 1994, 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 1993-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -19,7 +19,7 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
#define TARGET_SYM sparclynx_coff_vec
#define TARGET_SYM sparc_coff_lynx_vec
#define TARGET_NAME "coff-sparc-lynx"
#define LYNXOS
+6 -8
View File
@@ -1,7 +1,5 @@
/* BFD back-end for CISCO crash dumps.
Copyright 1994, 1997, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007,
2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1994-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -315,9 +313,9 @@ cisco_core_file_failing_signal (bfd *abfd ATTRIBUTE_UNUSED)
return abfd->tdata.cisco_core_data->sig;
}
extern const bfd_target cisco_core_little_vec;
extern const bfd_target core_cisco_le_vec;
const bfd_target cisco_core_big_vec =
const bfd_target core_cisco_be_vec =
{
"cisco-ios-core-big",
bfd_target_unknown_flavour,
@@ -363,12 +361,12 @@ const bfd_target cisco_core_big_vec =
BFD_JUMP_TABLE_LINK (_bfd_nolink),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& cisco_core_little_vec,
& core_cisco_le_vec,
NULL /* backend_data */
};
const bfd_target cisco_core_little_vec =
const bfd_target core_cisco_le_vec =
{
"cisco-ios-core-little",
bfd_target_unknown_flavour,
@@ -414,7 +412,7 @@ const bfd_target cisco_core_little_vec =
BFD_JUMP_TABLE_LINK (_bfd_nolink),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
&cisco_core_big_vec,
&core_cisco_be_vec,
NULL /* backend_data */
};
+3 -5
View File
@@ -1,7 +1,5 @@
/* BFD back-end for ALPHA Extended-Coff files.
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1993-2014 Free Software Foundation, Inc.
Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
Ian Lance Taylor <ian@cygnus.com>.
@@ -2243,7 +2241,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out,
alpha_ecoff_swap_scnhdr_out,
FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE,
ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2,
ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768,
alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in,
alpha_ecoff_swap_scnhdr_in, NULL,
alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
@@ -2348,7 +2346,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
_bfd_coff_section_already_linked
#define _bfd_ecoff_bfd_define_common_symbol bfd_generic_define_common_symbol
const bfd_target ecoffalpha_little_vec =
const bfd_target alpha_ecoff_le_vec =
{
"ecoff-littlealpha", /* name */
bfd_target_ecoff_flavour,
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Apollo 68000 COFF binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1999, 2000, 2001, 2002, 2003,
2005, 2007, 2008, 2012 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
By Troy Rollo (troy@cbme.unsw.edu.au)
Based on m68k standard COFF version Written by Cygnus Support.
@@ -107,7 +106,7 @@ apollo_howto2rtype (reloc_howto_type *internal)
#include "coffcode.h"
#ifndef TARGET_SYM
#define TARGET_SYM apollocoff_vec
#define TARGET_SYM m68k_coff_apollo_vec
#endif
#ifndef TARGET_NAME
+3 -5
View File
@@ -1,7 +1,5 @@
/* BFD back-end for ARM COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -2530,13 +2528,13 @@ coff_arm_final_link_postscript (bfd * abfd ATTRIBUTE_UNUSED,
#include "coffcode.h"
#ifndef TARGET_LITTLE_SYM
#define TARGET_LITTLE_SYM armcoff_little_vec
#define TARGET_LITTLE_SYM arm_coff_le_vec
#endif
#ifndef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "coff-arm-little"
#endif
#ifndef TARGET_BIG_SYM
#define TARGET_BIG_SYM armcoff_big_vec
#define TARGET_BIG_SYM arm_coff_be_vec
#endif
#ifndef TARGET_BIG_NAME
#define TARGET_BIG_NAME "coff-arm-big"
+36 -31
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Apple M68K COFF A/UX 3.x files.
Copyright 1996, 1997, 2000, 2002, 2005, 2007, 2008, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1996-2014 Free Software Foundation, Inc.
Written by Richard Henderson <rth@tamu.edu>.
This file is part of BFD, the Binary File Descriptor library.
@@ -20,7 +19,7 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
#define TARGET_SYM m68kaux_coff_vec
#define TARGET_SYM m68k_coff_aux_vec
#define TARGET_NAME "coff-m68k-aux"
#ifndef TARG_AUX
@@ -74,20 +73,17 @@ coff_m68k_aux_link_add_one_symbol (struct bfd_link_info *info,
bfd_boolean collect,
struct bfd_link_hash_entry **hashp)
{
struct bfd_link_hash_entry *h;
struct bfd_link_hash_entry *h, *inh, *t;
if ((flags & (BSF_WARNING | BSF_CONSTRUCTOR | BSF_WEAK)) == 0 &&
!bfd_is_und_section (section) &&
!bfd_is_com_section (section))
if ((flags & (BSF_WARNING | BSF_CONSTRUCTOR | BSF_WEAK)) == 0
&& !bfd_is_und_section (section)
&& !bfd_is_com_section (section))
{
/* The new symbol is a definition or an indirect definition */
/* This bit copied from linker.c */
if (hashp != NULL && *hashp != NULL)
{
h = *hashp;
BFD_ASSERT (strcmp (h->root.string, name) == 0);
}
h = *hashp;
else
{
h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE);
@@ -99,37 +95,46 @@ coff_m68k_aux_link_add_one_symbol (struct bfd_link_info *info,
}
}
if (info->notice_hash != (struct bfd_hash_table *) NULL
&& (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE)
!= (struct bfd_hash_entry *) NULL))
{
if (! (*info->callbacks->notice) (info, h, abfd, section, value,
flags, string))
return FALSE;
}
if (hashp != (struct bfd_link_hash_entry **) NULL)
*hashp = h;
/* end duplication from linker.c */
if (h->type == bfd_link_hash_defined
|| h->type == bfd_link_hash_indirect)
t = h;
inh = NULL;
if (h->type == bfd_link_hash_indirect)
{
asection *msec;
inh = h->u.i.link;
t = inh;
}
if (h->type == bfd_link_hash_defined)
msec = h->u.def.section;
else
msec = bfd_ind_section_ptr;
if (t->type == bfd_link_hash_defined)
{
asection *msec = t->u.def.section;
bfd_boolean special = FALSE;
if (bfd_is_abs_section (msec) && !bfd_is_abs_section (section))
{
h->u.def.section = section;
h->u.def.value = value;
return TRUE;
t->u.def.section = section;
t->u.def.value = value;
special = TRUE;
}
else if (bfd_is_abs_section (section) && !bfd_is_abs_section (msec))
return TRUE;
special = TRUE;
if (special)
{
if (info->notice_all
|| (info->notice_hash != NULL
&& bfd_hash_lookup (info->notice_hash, name,
FALSE, FALSE) != NULL))
{
if (!(*info->callbacks->notice) (info, h, inh,
abfd, section, value, flags))
return FALSE;
}
return TRUE;
}
}
}
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Intel 386 COFF files (DJGPP variant).
Copyright 1990, 1991, 1992, 1993, 1994, 1999, 2000, 2001, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by DJ Delorie.
This file is part of BFD, the Binary File Descriptor library.
@@ -20,7 +19,7 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
#define TARGET_SYM go32coff_vec
#define TARGET_SYM i386_coff_go32_vec
#define TARGET_NAME "coff-go32"
#define TARGET_UNDERSCORE '_'
#define COFF_LONG_SECTION_NAMES
+3 -5
View File
@@ -1,7 +1,5 @@
/* BFD back-end for Renesas H8/300 COFF binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Steve Chamberlain, <sac@cygnus.com>.
This file is part of BFD, the Binary File Descriptor library.
@@ -339,7 +337,7 @@ rtype2howto (arelent *internal, struct internal_reloc *dst)
internal->howto = howto_table + 19;
break;
default:
abort ();
internal->howto = NULL;
break;
}
}
@@ -1416,4 +1414,4 @@ h8300_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
bfd_coff_reloc16_get_relocated_section_contents
#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
CREATE_BIG_COFF_TARGET_VEC (h8300coff_vec, "coff-h8300", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_BIG_COFF_TARGET_VEC (h8300_coff_vec, "coff-h8300", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
+3 -4
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Renesas H8/500 COFF binaries.
Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2007, 2008, 2012 Free Software Foundation, Inc.
Copyright (C) 1993-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
Written by Steve Chamberlain, <sac@cygnus.com>.
@@ -96,7 +95,7 @@ rtype2howto (arelent * internal, struct internal_reloc *dst)
switch (dst->r_type)
{
default:
abort ();
internal->howto = NULL;
break;
case R_H8500_IMM8:
internal->howto = &r_imm8;
@@ -302,4 +301,4 @@ extra_case (bfd *in_abfd,
bfd_coff_reloc16_get_relocated_section_contents
#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
CREATE_BIG_COFF_TARGET_VEC (h8500coff_vec, "coff-h8500", 0, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_BIG_COFF_TARGET_VEC (h8500_coff_vec, "coff-h8500", 0, 0, '_', NULL, COFF_SWAP_TABLE)
+12 -14
View File
@@ -1,7 +1,5 @@
/* BFD back-end for Intel 386 COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -342,16 +340,18 @@ static reloc_howto_type howto_table[] =
PCRELOFFSET) /* pcrel_offset */
};
#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0]))
/* Turn a howto into a reloc nunmber */
#define SELECT_RELOC(x,howto) { x.r_type = howto->type; }
#define BADMAG(x) I386BADMAG(x)
#define I386 1 /* Customize coffcode.h */
#define RTYPE2HOWTO(cache_ptr, dst) \
((cache_ptr)->howto = \
((dst)->r_type < sizeof (howto_table) / sizeof (howto_table[0]) \
? howto_table + (dst)->r_type \
#define RTYPE2HOWTO(cache_ptr, dst) \
((cache_ptr)->howto = \
((dst)->r_type < NUM_HOWTOS \
? howto_table + (dst)->r_type \
: NULL))
/* For 386 COFF a STYP_NOLOAD | STYP_BSS section is part of a shared
@@ -388,7 +388,8 @@ static reloc_howto_type howto_table[] =
cache_ptr->addend = - (ptr->section->vma + ptr->value); \
else \
cache_ptr->addend = 0; \
if (ptr && howto_table[reloc.r_type].pc_relative) \
if (ptr && reloc.r_type < NUM_HOWTOS \
&& howto_table[reloc.r_type].pc_relative) \
cache_ptr->addend += asect->vma; \
}
@@ -440,7 +441,7 @@ coff_i386_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
{
reloc_howto_type *howto;
if (rel->r_type >= sizeof (howto_table) / sizeof (howto_table[0]))
if (rel->r_type >= NUM_HOWTOS)
{
bfd_set_error (bfd_error_bad_value);
return NULL;
@@ -576,7 +577,7 @@ coff_i386_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
{
unsigned int i;
for (i = 0; i < sizeof (howto_table) / sizeof (howto_table[0]); i++)
for (i = 0; i < NUM_HOWTOS; i++)
if (howto_table[i].name != NULL
&& strcasecmp (howto_table[i].name, r_name) == 0)
return &howto_table[i];
@@ -607,14 +608,11 @@ coff_i386_is_local_label_name (bfd *abfd, const char *name)
#include "coffcode.h"
#define _bfd_generic_find_nearest_line_discriminator \
coff_find_nearest_line_discriminator
const bfd_target
#ifdef TARGET_SYM
TARGET_SYM =
#else
i386coff_vec =
i386_coff_vec =
#endif
{
#ifdef TARGET_NAME
+6 -4
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Intel i860 COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Created mostly by substituting "860" for "386" in coff-i386.c
Harry Dolan <dolan@ssd.intel.com>, October 1995
@@ -468,7 +467,10 @@ static reloc_howto_type howto_table[] =
FIXME: This macro refers to symbols and asect; these are from the
calling function, not the macro arguments. */
#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr)
/* PR 17512: file: 0a38fb7c
Set an addend value, even if it is not going to be used. A tool
like coffdump might be used to print out the contents of the reloc. */
#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) (cache_ptr)->addend = 0
/* We use the special COFF backend linker. */
#define coff_relocate_section _bfd_coff_generic_relocate_section
@@ -657,7 +659,7 @@ const bfd_target
#ifdef TARGET_SYM
TARGET_SYM =
#else
i860coff_vec =
i860_coff_vec =
#endif
{
#ifdef TARGET_NAME
+5 -7
View File
@@ -1,7 +1,5 @@
/* BFD back-end for Intel 960 COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2007, 2008, 2009, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -610,11 +608,11 @@ coff_i960_adjust_symndx (bfd *obfd ATTRIBUTE_UNUSED,
#include "coffcode.h"
extern const bfd_target icoff_big_vec;
extern const bfd_target icoff_be_vec;
CREATE_LITTLE_COFF_TARGET_VEC (icoff_little_vec, "coff-Intel-little", 0, 0, '_', & icoff_big_vec, COFF_SWAP_TABLE)
CREATE_LITTLE_COFF_TARGET_VEC (icoff_le_vec, "coff-Intel-little", 0, 0, '_', & icoff_be_vec, COFF_SWAP_TABLE)
const bfd_target icoff_big_vec =
const bfd_target icoff_be_vec =
{
"coff-Intel-big", /* name */
bfd_target_coff_flavour,
@@ -655,7 +653,7 @@ bfd_getb64, bfd_getb_signed_64, bfd_putb64,
BFD_JUMP_TABLE_LINK (coff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& icoff_little_vec,
& icoff_le_vec,
COFF_SWAP_TABLE
};
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD back-end for HP/Intel IA-64 COFF files.
Copyright 1999, 2000, 2001, 2002, 2005, 2007, 2008, 2009, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1999-2014 Free Software Foundation, Inc.
Contributed by David Mosberger <davidm@hpl.hp.com>
This file is part of BFD, the Binary File Descriptor library.
+4 -5
View File
@@ -1,7 +1,5 @@
/* BFD back-end for Motorola 68000 COFF binaries.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999,
2000, 2001, 2002, 2003, 2005, 2007, 2008, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +30,7 @@
variants. The following macros control its behaviour:
TARGET_SYM
The C name of the BFD target vector. The default is m68kcoff_vec.
The C name of the BFD target vector. The default is m68k_coff_vec.
TARGET_NAME
The user visible target name. The default is "coff-m68k".
NAMES_HAVE_UNDERSCORE
@@ -145,6 +143,7 @@ m68k_rtype2howto (arelent *internal, int relocentry)
case R_PCRWORD: internal->howto = m68kcoff_howto_table + 4; break;
case R_PCRLONG: internal->howto = m68kcoff_howto_table + 5; break;
case R_RELLONG_NEG: internal->howto = m68kcoff_howto_table + 6; break;
default: internal->howto = NULL; break;
}
}
@@ -530,7 +529,7 @@ bfd_m68k_coff_create_embedded_relocs (bfd *abfd,
#include "coffcode.h"
#ifndef TARGET_SYM
#define TARGET_SYM m68kcoff_vec
#define TARGET_SYM m68k_coff_vec
#endif
#ifndef TARGET_NAME
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Motorola 88000 COFF "Binary Compatibility Standard" files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2005, 2007, 2008, 2012 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -282,4 +281,4 @@ reloc_processing (arelent *relent,
#undef coff_write_armap
CREATE_BIG_COFF_TARGET_VEC (m88kbcs_vec, "coff-m88kbcs", 0, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_BIG_COFF_TARGET_VEC (m88k_coff_bcs_vec, "coff-m88kbcs", 0, 0, '_', NULL, COFF_SWAP_TABLE)
+10 -9
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Motorola MCore COFF/PE
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1999-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -274,16 +273,15 @@ mcore_coff_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
}
#undef HOW2MAP
#define NUM_HOWTOS NUM_ELEM (mcore_coff_howto_table)
static reloc_howto_type *
mcore_coff_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
const char *r_name)
{
unsigned int i;
for (i = 0;
i < (sizeof (mcore_coff_howto_table)
/ sizeof (mcore_coff_howto_table[0]));
i++)
for (i = 0; i < NUM_HOWTOS; i++)
if (mcore_coff_howto_table[i].name != NULL
&& strcasecmp (mcore_coff_howto_table[i].name, r_name) == 0)
return &mcore_coff_howto_table[i];
@@ -291,8 +289,11 @@ mcore_coff_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
return NULL;
}
#define RTYPE2HOWTO(cache_ptr, dst) \
(cache_ptr)->howto = mcore_coff_howto_table + (dst)->r_type;
#define RTYPE2HOWTO(cache_ptr, dst) \
((cache_ptr)->howto = \
((dst)->r_type < NUM_HOWTOS \
? mcore_coff_howto_table + (dst)->r_type \
: NULL))
static reloc_howto_type *
coff_mcore_rtype_to_howto (bfd * abfd ATTRIBUTE_UNUSED,
@@ -304,7 +305,7 @@ coff_mcore_rtype_to_howto (bfd * abfd ATTRIBUTE_UNUSED,
{
reloc_howto_type * howto;
if (rel->r_type >= NUM_ELEM (mcore_coff_howto_table))
if (rel->r_type >= NUM_HOWTOS)
return NULL;
howto = mcore_coff_howto_table + rel->r_type;
+8 -10
View File
@@ -1,7 +1,5 @@
/* BFD back-end for MIPS Extended-Coff files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Original version by Per Bothner.
Full support added by Ian Lance Taylor, ian@cygnus.com.
@@ -1256,7 +1254,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out,
mips_ecoff_swap_scnhdr_out,
FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE,
ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2,
ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768,
mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in,
mips_ecoff_swap_scnhdr_in, NULL,
mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
@@ -1365,9 +1363,9 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
_bfd_coff_section_already_linked
#define _bfd_ecoff_bfd_define_common_symbol bfd_generic_define_common_symbol
extern const bfd_target ecoff_big_vec;
extern const bfd_target mips_ecoff_be_vec;
const bfd_target ecoff_little_vec =
const bfd_target mips_ecoff_le_vec =
{
"ecoff-littlemips", /* name */
bfd_target_ecoff_flavour,
@@ -1407,12 +1405,12 @@ const bfd_target ecoff_little_vec =
BFD_JUMP_TABLE_LINK (_bfd_ecoff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& ecoff_big_vec,
& mips_ecoff_be_vec,
& mips_ecoff_backend_data
};
const bfd_target ecoff_big_vec =
const bfd_target mips_ecoff_be_vec =
{
"ecoff-bigmips", /* name */
bfd_target_ecoff_flavour,
@@ -1451,12 +1449,12 @@ const bfd_target ecoff_big_vec =
BFD_JUMP_TABLE_LINK (_bfd_ecoff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& ecoff_little_vec,
& mips_ecoff_le_vec,
& mips_ecoff_backend_data
};
const bfd_target ecoff_biglittle_vec =
const bfd_target mips_ecoff_bele_vec =
{
"ecoff-biglittlemips", /* name */
bfd_target_ecoff_flavour,
-629
View File
@@ -1,629 +0,0 @@
/* BFD back-end for OpenRISC 1000 COFF binaries.
Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2011, 2012
Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
This file is part of BFD, the Binary File Descriptor library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
#define OR32 1
#include "sysdep.h"
#include "bfd.h"
#include "libbfd.h"
#include "coff/or32.h"
#include "coff/internal.h"
#include "libcoff.h"
static bfd_reloc_status_type or32_reloc
(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
#define INSERT_HWORD(WORD,HWORD) \
(((WORD) & 0xffff0000) | ((HWORD)& 0x0000ffff))
#define EXTRACT_HWORD(WORD) \
((WORD) & 0x0000ffff)
#define SIGN_EXTEND_HWORD(HWORD) \
((HWORD) & 0x8000 ? (HWORD)|(~0xffffL) : (HWORD))
#define INSERT_JUMPTARG(WORD,JT) \
(((WORD) & 0xfc000000) | ((JT)& 0x03ffffff))
#define EXTRACT_JUMPTARG(WORD) \
((WORD) & 0x03ffffff)
#define SIGN_EXTEND_JUMPTARG(JT) \
((JT) & 0x04000000 ? (JT)|(~0x03ffffffL) : (JT))
/* Provided the symbol, returns the value reffed. */
static long
get_symbol_value (asymbol *symbol)
{
long relocation = 0;
if (bfd_is_com_section (symbol->section))
relocation = 0;
else
relocation = symbol->value +
symbol->section->output_section->vma +
symbol->section->output_offset;
return relocation;
}
/* This function is in charge of performing all the or32 relocations. */
static bfd_reloc_status_type
or32_reloc (bfd *abfd,
arelent *reloc_entry,
asymbol *symbol_in,
void * data,
asection *input_section,
bfd *output_bfd,
char **error_message)
{
/* The consth relocation comes in two parts, we have to remember
the state between calls, in these variables. */
static bfd_boolean part1_consth_active = FALSE;
static unsigned long part1_consth_value;
unsigned long insn;
unsigned long sym_value;
unsigned long unsigned_value;
unsigned short r_type;
long signed_value;
unsigned long addr = reloc_entry->address ; /*+ input_section->vma*/
bfd_byte *hit_data =addr + (bfd_byte *)(data);
r_type = reloc_entry->howto->type;
if (output_bfd)
{
/* Partial linking - do nothing. */
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
}
if (symbol_in != NULL
&& bfd_is_und_section (symbol_in->section))
{
/* Keep the state machine happy in case we're called again. */
if (r_type == R_IHIHALF)
{
part1_consth_active = TRUE;
part1_consth_value = 0;
}
return bfd_reloc_undefined;
}
if ((part1_consth_active) && (r_type != R_IHCONST))
{
part1_consth_active = FALSE;
*error_message = (char *) "Missing IHCONST";
return bfd_reloc_dangerous;
}
sym_value = get_symbol_value (symbol_in);
switch (r_type)
{
case R_IREL:
insn = bfd_get_32(abfd, hit_data);
/* Take the value in the field and sign extend it. */
signed_value = EXTRACT_JUMPTARG (insn);
signed_value = SIGN_EXTEND_JUMPTARG (signed_value);
signed_value <<= 2;
/* See the note on the R_IREL reloc in coff_or32_relocate_section. */
if (signed_value == - (long) reloc_entry->address)
signed_value = 0;
signed_value += sym_value + reloc_entry->addend;
/* Relative jmp/call, so subtract from the value the
address of the place we're coming from. */
signed_value -= (reloc_entry->address
+ input_section->output_section->vma
+ input_section->output_offset);
if (signed_value > 0x7ffffff || signed_value < -0x8000000)
return bfd_reloc_overflow;
signed_value >>= 2;
insn = INSERT_JUMPTARG (insn, signed_value);
bfd_put_32 (abfd, insn, hit_data);
break;
case R_ILOHALF:
insn = bfd_get_32 (abfd, hit_data);
unsigned_value = EXTRACT_HWORD (insn);
unsigned_value += sym_value + reloc_entry->addend;
insn = INSERT_HWORD (insn, unsigned_value);
bfd_put_32 (abfd, insn, hit_data);
break;
case R_IHIHALF:
insn = bfd_get_32 (abfd, hit_data);
/* consth, part 1
Just get the symbol value that is referenced. */
part1_consth_active = TRUE;
part1_consth_value = sym_value + reloc_entry->addend;
/* Don't modify insn until R_IHCONST. */
break;
case R_IHCONST:
insn = bfd_get_32 (abfd, hit_data);
/* consth, part 2
Now relocate the reference. */
if (! part1_consth_active)
{
*error_message = (char *) "Missing IHIHALF";
return bfd_reloc_dangerous;
}
/* sym_ptr_ptr = r_symndx, in coff_slurp_reloc_table() */
unsigned_value = 0; /*EXTRACT_HWORD(insn) << 16;*/
unsigned_value += reloc_entry->addend; /* r_symndx */
unsigned_value += part1_consth_value;
unsigned_value = unsigned_value >> 16;
insn = INSERT_HWORD (insn, unsigned_value);
part1_consth_active = FALSE;
bfd_put_32 (abfd, insn, hit_data);
break;
case R_BYTE:
insn = bfd_get_8 (abfd, hit_data);
unsigned_value = insn + sym_value + reloc_entry->addend;
if (unsigned_value & 0xffffff00)
return bfd_reloc_overflow;
bfd_put_8 (abfd, unsigned_value, hit_data);
break;
case R_HWORD:
insn = bfd_get_16 (abfd, hit_data);
unsigned_value = insn + sym_value + reloc_entry->addend;
if (unsigned_value & 0xffff0000)
return bfd_reloc_overflow;
bfd_put_16 (abfd, insn, hit_data);
break;
case R_WORD:
insn = bfd_get_32 (abfd, hit_data);
insn += sym_value + reloc_entry->addend;
bfd_put_32 (abfd, insn, hit_data);
break;
default:
*error_message = _("Unrecognized reloc");
return bfd_reloc_dangerous;
}
return bfd_reloc_ok;
}
/* type rightshift
size
bitsize
pc-relative
bitpos
absolute
complain_on_overflow
special_function
relocation name
partial_inplace
src_mask
*/
/* FIXME: I'm not real sure about this table. */
static reloc_howto_type howto_table[] =
{
{ R_ABS, 0, 3, 32, FALSE, 0, complain_overflow_bitfield, or32_reloc, "ABS", TRUE, 0xffffffff,0xffffffff, FALSE },
EMPTY_HOWTO (1),
EMPTY_HOWTO (2),
EMPTY_HOWTO (3),
EMPTY_HOWTO (4),
EMPTY_HOWTO (5),
EMPTY_HOWTO (6),
EMPTY_HOWTO (7),
EMPTY_HOWTO (8),
EMPTY_HOWTO (9),
EMPTY_HOWTO (10),
EMPTY_HOWTO (11),
EMPTY_HOWTO (12),
EMPTY_HOWTO (13),
EMPTY_HOWTO (14),
EMPTY_HOWTO (15),
EMPTY_HOWTO (16),
EMPTY_HOWTO (17),
EMPTY_HOWTO (18),
EMPTY_HOWTO (19),
EMPTY_HOWTO (20),
EMPTY_HOWTO (21),
EMPTY_HOWTO (22),
EMPTY_HOWTO (23),
{ R_IREL, 0, 3, 32, TRUE, 0, complain_overflow_signed, or32_reloc, "IREL", TRUE, 0xffffffff,0xffffffff, FALSE },
{ R_IABS, 0, 3, 32, FALSE, 0, complain_overflow_bitfield, or32_reloc, "IABS", TRUE, 0xffffffff,0xffffffff, FALSE },
{ R_ILOHALF, 0, 3, 16, TRUE, 0, complain_overflow_signed, or32_reloc, "ILOHALF", TRUE, 0x0000ffff,0x0000ffff, FALSE },
{ R_IHIHALF, 0, 3, 16, TRUE, 16,complain_overflow_signed, or32_reloc, "IHIHALF", TRUE, 0xffff0000,0xffff0000, FALSE },
{ R_IHCONST, 0, 3, 16, TRUE, 0, complain_overflow_signed, or32_reloc, "IHCONST", TRUE, 0xffff0000,0xffff0000, FALSE },
{ R_BYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, or32_reloc, "BYTE", TRUE, 0x000000ff,0x000000ff, FALSE },
{ R_HWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, or32_reloc, "HWORD", TRUE, 0x0000ffff,0x0000ffff, FALSE },
{ R_WORD, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, or32_reloc, "WORD", TRUE, 0xffffffff,0xffffffff, FALSE },
};
#define BADMAG(x) OR32BADMAG (x)
#define RELOC_PROCESSING(relent, reloc, symbols, abfd, section) \
reloc_processing (relent, reloc, symbols, abfd, section)
static void
reloc_processing (arelent *relent,
struct internal_reloc *reloc,
asymbol **symbols,
bfd *abfd,
asection *section)
{
static bfd_vma ihihalf_vaddr = (bfd_vma) -1;
relent->address = reloc->r_vaddr;
relent->howto = howto_table + reloc->r_type;
if (reloc->r_type == R_IHCONST)
{
/* The address of an R_IHCONST should always be the address of
the immediately preceding R_IHIHALF. relocs generated by gas
are correct, but relocs generated by High C are different (I
can't figure out what the address means for High C). We can
handle both gas and High C by ignoring the address here, and
simply reusing the address saved for R_IHIHALF. */
if (ihihalf_vaddr == (bfd_vma) -1)
abort ();
relent->address = ihihalf_vaddr;
ihihalf_vaddr = (bfd_vma) -1;
relent->addend = reloc->r_symndx;
relent->sym_ptr_ptr= bfd_abs_section_ptr->symbol_ptr_ptr;
}
else
{
relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx];
relent->addend = 0;
relent->address-= section->vma;
if (reloc->r_type == R_IHIHALF)
ihihalf_vaddr = relent->address;
else if (ihihalf_vaddr != (bfd_vma) -1)
abort ();
}
}
/* The reloc processing routine for the optimized COFF linker. */
static bfd_boolean
coff_or32_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info,
bfd *input_bfd,
asection *input_section,
bfd_byte *contents,
struct internal_reloc *relocs,
struct internal_syment *syms,
asection **sections)
{
struct internal_reloc *rel;
struct internal_reloc *relend;
bfd_boolean hihalf;
bfd_vma hihalf_val;
/* If we are performing a relocatable link, we don't need to do a
thing. The caller will take care of adjusting the reloc
addresses and symbol indices. */
if (info->relocatable)
return TRUE;
hihalf = FALSE;
hihalf_val = 0;
rel = relocs;
relend = rel + input_section->reloc_count;
for (; rel < relend; rel++)
{
long symndx;
bfd_byte *loc;
struct coff_link_hash_entry *h;
struct internal_syment *sym;
asection *sec;
bfd_vma val;
bfd_boolean overflow;
unsigned long insn;
long signed_value;
unsigned long unsigned_value;
bfd_reloc_status_type rstat;
symndx = rel->r_symndx;
loc = contents + rel->r_vaddr - input_section->vma;
if (symndx == -1 || rel->r_type == R_IHCONST)
h = NULL;
else
h = obj_coff_sym_hashes (input_bfd)[symndx];
sym = NULL;
sec = NULL;
val = 0;
/* An R_IHCONST reloc does not have a symbol. Instead, the
symbol index is an addend. R_IHCONST is always used in
conjunction with R_IHHALF. */
if (rel->r_type != R_IHCONST)
{
if (h == NULL)
{
if (symndx == -1)
sec = bfd_abs_section_ptr;
else
{
sym = syms + symndx;
sec = sections[symndx];
val = (sec->output_section->vma
+ sec->output_offset
+ sym->n_value
- sec->vma);
}
}
else
{
if (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
{
sec = h->root.u.def.section;
val = (h->root.u.def.value
+ sec->output_section->vma
+ sec->output_offset);
}
else
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
rel->r_vaddr - input_section->vma, TRUE)))
return FALSE;
}
}
if (hihalf)
{
if (! ((*info->callbacks->reloc_dangerous)
(info, "missing IHCONST reloc", input_bfd,
input_section, rel->r_vaddr - input_section->vma)))
return FALSE;
hihalf = FALSE;
}
}
overflow = FALSE;
switch (rel->r_type)
{
default:
bfd_set_error (bfd_error_bad_value);
return FALSE;
case R_IREL:
insn = bfd_get_32 (input_bfd, loc);
/* Extract the addend. */
signed_value = EXTRACT_JUMPTARG (insn);
signed_value = SIGN_EXTEND_JUMPTARG (signed_value);
signed_value <<= 2;
/* Determine the destination of the jump. */
signed_value += val;
/* Make the destination PC relative. */
signed_value -= (input_section->output_section->vma
+ input_section->output_offset
+ (rel->r_vaddr - input_section->vma));
if (signed_value > 0x7ffffff || signed_value < - 0x8000000)
{
overflow = TRUE;
signed_value = 0;
}
/* Put the adjusted value back into the instruction. */
signed_value >>= 2;
insn = INSERT_JUMPTARG(insn, signed_value);
bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
break;
case R_ILOHALF:
insn = bfd_get_32 (input_bfd, loc);
unsigned_value = EXTRACT_HWORD (insn);
unsigned_value += val;
insn = INSERT_HWORD (insn, unsigned_value);
bfd_put_32 (input_bfd, insn, loc);
break;
case R_IHIHALF:
/* Save the value for the R_IHCONST reloc. */
hihalf = TRUE;
hihalf_val = val;
break;
case R_IHCONST:
if (! hihalf)
{
if (! ((*info->callbacks->reloc_dangerous)
(info, "missing IHIHALF reloc", input_bfd,
input_section, rel->r_vaddr - input_section->vma)))
return FALSE;
hihalf_val = 0;
}
insn = bfd_get_32 (input_bfd, loc);
unsigned_value = rel->r_symndx + hihalf_val;
unsigned_value >>= 16;
insn = INSERT_HWORD (insn, unsigned_value);
bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
hihalf = FALSE;
break;
case R_BYTE:
case R_HWORD:
case R_WORD:
rstat = _bfd_relocate_contents (howto_table + rel->r_type,
input_bfd, val, loc);
if (rstat == bfd_reloc_overflow)
overflow = TRUE;
else if (rstat != bfd_reloc_ok)
abort ();
break;
}
if (overflow)
{
const char *name;
char buf[SYMNMLEN + 1];
if (symndx == -1)
name = "*ABS*";
else if (h != NULL)
name = NULL;
else if (sym == NULL)
name = "*unknown*";
else if (sym->_n._n_n._n_zeroes == 0
&& sym->_n._n_n._n_offset != 0)
name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset;
else
{
strncpy (buf, sym->_n._n_name, SYMNMLEN);
buf[SYMNMLEN] = '\0';
name = buf;
}
if (! ((*info->callbacks->reloc_overflow)
(info, (h ? &h->root : NULL), name,
howto_table[rel->r_type].name, (bfd_vma) 0, input_bfd,
input_section, rel->r_vaddr - input_section->vma)))
return FALSE;
}
}
return TRUE;
}
#define coff_relocate_section coff_or32_relocate_section
/* We don't want to change the symndx of a R_IHCONST reloc, since it
is actually an addend, not a symbol index at all. */
static bfd_boolean
coff_or32_adjust_symndx (bfd *obfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info ATTRIBUTE_UNUSED,
bfd *ibfd ATTRIBUTE_UNUSED,
asection *sec ATTRIBUTE_UNUSED,
struct internal_reloc *irel,
bfd_boolean *adjustedp)
{
if (irel->r_type == R_IHCONST)
*adjustedp = TRUE;
else
*adjustedp = FALSE;
return TRUE;
}
#define coff_adjust_symndx coff_or32_adjust_symndx
#ifndef bfd_pe_print_pdata
#define bfd_pe_print_pdata NULL
#endif
#include "coffcode.h"
const bfd_target or32coff_big_vec =
{
"coff-or32-big", /* Name. */
bfd_target_coff_flavour,
BFD_ENDIAN_BIG, /* Data byte order is big. */
BFD_ENDIAN_BIG, /* Header byte order is big. */
(HAS_RELOC | EXEC_P | /* Object flags. */
HAS_LINENO | HAS_DEBUG |
HAS_SYMS | HAS_LOCALS | WP_TEXT),
(SEC_HAS_CONTENTS | SEC_ALLOC | /* Section flags. */
SEC_LOAD | SEC_RELOC |
SEC_READONLY ),
'_', /* Leading underscore. */
'/', /* ar_pad_char. */
15, /* ar_max_namelen. */
0, /* match priority. */
/* Data. */
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
/* Headers. */
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
{
_bfd_dummy_target,
coff_object_p,
bfd_generic_archive_p,
_bfd_dummy_target
},
{
bfd_false,
coff_mkobject,
_bfd_generic_mkarchive,
bfd_false
},
{
bfd_false,
coff_write_object_contents,
_bfd_write_archive_contents,
bfd_false
},
BFD_JUMP_TABLE_GENERIC (coff),
BFD_JUMP_TABLE_COPY (coff),
BFD_JUMP_TABLE_CORE (_bfd_nocore),
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
BFD_JUMP_TABLE_SYMBOLS (coff),
BFD_JUMP_TABLE_RELOCS (coff),
BFD_JUMP_TABLE_WRITE (coff),
BFD_JUMP_TABLE_LINK (coff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
/* Alternative_target. */
#ifdef TARGET_LITTLE_SYM
& TARGET_LITTLE_SYM,
#else
NULL,
#endif
COFF_SWAP_TABLE
};
+13 -12
View File
@@ -1,7 +1,5 @@
/* BFD back-end for PowerPC Microsoft Portable Executable files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
2012 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Original version pieced together by Kim Knuttila (krk@cygnus.com)
@@ -1075,10 +1073,11 @@ coff_ppc_relocate_section (bfd *output_bfd,
{
/* It is a file local symbol. */
int *local_toc_table;
const char *name;
char name[SYMNMLEN + 1];
sym = syms + symndx;
name = sym->_n._n_name;
strncpy (name, sym->_n._n_name, SYMNMLEN);
name[SYMNMLEN] = '\0';
local_toc_table = obj_coff_local_toc_table(input_bfd);
our_toc_offset = local_toc_table[symndx];
@@ -1227,9 +1226,14 @@ coff_ppc_relocate_section (bfd *output_bfd,
case IMAGE_REL_PPC_ABSOLUTE:
{
const char *my_name;
char buf[SYMNMLEN + 1];
if (h == 0)
my_name = (syms+symndx)->_n._n_name;
{
strncpy (buf, (syms+symndx)->_n._n_name, SYMNMLEN);
buf[SYMNMLEN] = '\0';
my_name = buf;
}
else
my_name = h->root.root.root.string;
@@ -1290,11 +1294,8 @@ coff_ppc_relocate_section (bfd *output_bfd,
}
if (h == 0)
{
/* It is a file local symbol. */
sym = syms + symndx;
name = sym->_n._n_name;
}
/* It is a file local symbol. */
sym = syms + symndx;
else
{
char *target = 0;
@@ -2151,7 +2152,7 @@ ppc_bfd_coff_final_link (bfd *abfd, struct bfd_link_info *info)
the opportunity to clear the output_has_begun fields of all the
input BFD's. */
max_sym_count = 0;
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
{
bfd_size_type sz;
+113 -213
View File
@@ -1,7 +1,5 @@
/* BFD back-end for IBM RS/6000 "XCOFF" files.
Copyright 1990-1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Metin G. Ozisik, Mimi Phuong-Thao Vo, and John Gilmore.
Archive support from Damon A. Permezel.
Contributed by IBM Corporation and Cygnus Support.
@@ -77,10 +75,7 @@ void xcoff_rtype2howto (arelent *, struct internal_reloc *);
#define NO_COFF_SYMBOLS
#define RTYPE2HOWTO(cache_ptr, dst) xcoff_rtype2howto (cache_ptr, dst)
#define coff_mkobject _bfd_xcoff_mkobject
#define coff_bfd_copy_private_bfd_data _bfd_xcoff_copy_private_bfd_data
#define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
#define coff_bfd_reloc_type_lookup _bfd_xcoff_reloc_type_lookup
#define coff_bfd_reloc_name_lookup _bfd_xcoff_reloc_name_lookup
#ifdef AIX_CORE
extern const bfd_target * rs6000coff_core_p (bfd *abfd);
extern bfd_boolean rs6000coff_core_file_matches_executable_p
@@ -119,6 +114,7 @@ extern int rs6000coff_core_file_failing_signal (bfd *abfd);
#define bfd_pe_print_pdata NULL
#endif
#include <stdint.h>
#include "coffcode.h"
/* The main body of code is in coffcode.h. */
@@ -434,39 +430,6 @@ static const struct dwarf_debug_section xcoff_debug_sections[] =
{ NULL, NULL }, /* .debug_weaknames */
{ NULL, NULL },
};
static bfd_boolean
xcoff_find_nearest_line (bfd *abfd,
asection *section,
asymbol **symbols,
bfd_vma offset,
const char **filename_ptr,
const char **functionname_ptr,
unsigned int *line_ptr)
{
return coff_find_nearest_line_with_names (abfd, xcoff_debug_sections,
section, symbols, offset,
filename_ptr, functionname_ptr,
line_ptr);
}
static bfd_boolean
xcoff_find_nearest_line_discriminator (bfd *abfd,
asection *section,
asymbol **symbols,
bfd_vma offset,
const char **filename_ptr,
const char **functionname_ptr,
unsigned int *line_ptr,
unsigned int *discriminator)
{
*discriminator = 0;
return coff_find_nearest_line_with_names (abfd, xcoff_debug_sections,
section, symbols, offset,
filename_ptr, functionname_ptr,
line_ptr);
}
void
_bfd_xcoff_swap_sym_in (bfd *abfd, void * ext1, void * in1)
@@ -2407,7 +2370,10 @@ xcoff_write_archive_contents_big (bfd *abfd)
PRINT20 (ahdrp->nextoff, iterator.next.offset);
if (!do_pad (abfd, iterator.current.leading_padding))
return FALSE;
{
free (offsets);
return FALSE;
}
BFD_ASSERT (iterator.current.offset == bfd_tell (abfd));
namlen = iterator.current.padded_namlen;
@@ -2417,7 +2383,10 @@ xcoff_write_archive_contents_big (bfd *abfd)
|| bfd_seek (iterator.current.member, 0, SEEK_SET) != 0
|| !do_copy (abfd, iterator.current.member)
|| !do_pad (abfd, iterator.current.trailing_padding))
return FALSE;
{
free (offsets);
return FALSE;
}
offsets[i] = iterator.current.offset;
prevoff = iterator.current.offset;
@@ -2462,7 +2431,10 @@ xcoff_write_archive_contents_big (bfd *abfd)
member_table_size += member_table_size & 1;
member_table = bfd_zmalloc (member_table_size);
if (member_table == NULL)
return FALSE;
{
free (offsets);
return FALSE;
}
hdr = (struct xcoff_ar_hdr_big *) member_table;
@@ -2603,7 +2575,7 @@ _bfd_xcoff_sizeof_headers (bfd *abfd,
return -1;
/* Sum. */
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
for (s = sub->sections; s != NULL; s = s->next)
{
struct nbr_reloc_lineno *e = &n_rl[s->output_section->index];
@@ -3995,6 +3967,84 @@ const struct xcoff_dwsect_name xcoff_dwsect_names[] = {
{ SSUBTYP_DWRNGES, ".dwrnges", TRUE }
};
/* For generic entry points. */
#define _bfd_xcoff_close_and_cleanup _bfd_archive_close_and_cleanup
#define _bfd_xcoff_bfd_free_cached_info bfd_true
#define _bfd_xcoff_new_section_hook coff_new_section_hook
#define _bfd_xcoff_get_section_contents _bfd_generic_get_section_contents
#define _bfd_xcoff_get_section_contents_in_window \
_bfd_generic_get_section_contents_in_window
/* For copy private data entry points. */
#define _bfd_xcoff_bfd_copy_private_bfd_data \
_bfd_xcoff_copy_private_bfd_data
#define _bfd_xcoff_bfd_merge_private_bfd_data \
_bfd_generic_bfd_merge_private_bfd_data
#define _bfd_xcoff_bfd_copy_private_section_data \
_bfd_generic_bfd_copy_private_section_data
#define _bfd_xcoff_bfd_copy_private_symbol_data \
_bfd_generic_bfd_copy_private_symbol_data
#define _bfd_xcoff_bfd_copy_private_header_data \
_bfd_generic_bfd_copy_private_header_data
#define _bfd_xcoff_bfd_set_private_flags \
_bfd_generic_bfd_set_private_flags
#define _bfd_xcoff_bfd_print_private_bfd_data \
_bfd_generic_bfd_print_private_bfd_data
/* For archive entry points. */
#define _bfd_xcoff_slurp_extended_name_table \
_bfd_noarchive_slurp_extended_name_table
#define _bfd_xcoff_construct_extended_name_table \
_bfd_noarchive_construct_extended_name_table
#define _bfd_xcoff_truncate_arname bfd_dont_truncate_arname
#define _bfd_xcoff_write_ar_hdr _bfd_generic_write_ar_hdr
#define _bfd_xcoff_get_elt_at_index _bfd_generic_get_elt_at_index
#define _bfd_xcoff_generic_stat_arch_elt _bfd_xcoff_stat_arch_elt
#define _bfd_xcoff_update_armap_timestamp bfd_true
/* For symbols entry points. */
#define _bfd_xcoff_get_symtab_upper_bound coff_get_symtab_upper_bound
#define _bfd_xcoff_canonicalize_symtab coff_canonicalize_symtab
#define _bfd_xcoff_make_empty_symbol coff_make_empty_symbol
#define _bfd_xcoff_print_symbol coff_print_symbol
#define _bfd_xcoff_get_symbol_info coff_get_symbol_info
#define _bfd_xcoff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name
#define _bfd_xcoff_bfd_is_target_special_symbol \
coff_bfd_is_target_special_symbol
#define _bfd_xcoff_get_lineno coff_get_lineno
#define _bfd_xcoff_find_nearest_line coff_find_nearest_line
#define _bfd_xcoff_find_line coff_find_line
#define _bfd_xcoff_find_inliner_info coff_find_inliner_info
#define _bfd_xcoff_bfd_make_debug_symbol coff_bfd_make_debug_symbol
#define _bfd_xcoff_read_minisymbols _bfd_generic_read_minisymbols
#define _bfd_xcoff_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
/* For reloc entry points. */
#define _bfd_xcoff_get_reloc_upper_bound coff_get_reloc_upper_bound
#define _bfd_xcoff_canonicalize_reloc coff_canonicalize_reloc
#define _bfd_xcoff_bfd_reloc_type_lookup _bfd_xcoff_reloc_type_lookup
#define _bfd_xcoff_bfd_reloc_name_lookup _bfd_xcoff_reloc_name_lookup
/* For link entry points. */
#define _bfd_xcoff_bfd_get_relocated_section_contents \
bfd_generic_get_relocated_section_contents
#define _bfd_xcoff_bfd_relax_section bfd_generic_relax_section
#define _bfd_xcoff_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#define _bfd_xcoff_bfd_link_just_syms _bfd_generic_link_just_syms
#define _bfd_xcoff_bfd_copy_link_hash_symbol_type \
_bfd_generic_copy_link_hash_symbol_type
#define _bfd_xcoff_bfd_link_split_section _bfd_generic_link_split_section
#define _bfd_xcoff_bfd_gc_sections bfd_generic_gc_sections
#define _bfd_xcoff_bfd_lookup_section_flags bfd_generic_lookup_section_flags
#define _bfd_xcoff_bfd_merge_sections bfd_generic_merge_sections
#define _bfd_xcoff_bfd_is_group_section bfd_generic_is_group_section
#define _bfd_xcoff_bfd_discard_group bfd_generic_discard_group
#define _bfd_xcoff_section_already_linked _bfd_generic_section_already_linked
#define _bfd_xcoff_bfd_define_common_symbol _bfd_xcoff_define_common_symbol
/* For dynamic symbols and relocs entry points. */
#define _bfd_xcoff_get_synthetic_symtab _bfd_nodynamic_get_synthetic_symtab
static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
{
{ /* COFF backend, defined in libcoff.h. */
@@ -4021,6 +4071,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
3, /* _bfd_coff_default_section_alignment_power */
FALSE, /* _bfd_coff_force_symnames_in_strings */
2, /* _bfd_coff_debug_string_prefix_length */
32768, /* _bfd_coff_max_nscns */
coff_swap_filehdr_in,
coff_swap_aouthdr_in,
coff_swap_scnhdr_in,
@@ -4092,7 +4143,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
};
/* The transfer vector that leads the outside world to all of the above. */
const bfd_target rs6000coff_vec =
const bfd_target rs6000_xcoff_vec =
{
"aixcoff-rs6000",
bfd_target_xcoff_flavour,
@@ -4151,91 +4202,15 @@ const bfd_target rs6000coff_vec =
bfd_false
},
/* Generic */
_bfd_archive_close_and_cleanup,
bfd_true,
coff_new_section_hook,
_bfd_generic_get_section_contents,
_bfd_generic_get_section_contents_in_window,
/* Copy */
_bfd_xcoff_copy_private_bfd_data,
_bfd_generic_bfd_merge_private_bfd_data,
_bfd_generic_init_private_section_data,
_bfd_generic_bfd_copy_private_section_data,
_bfd_generic_bfd_copy_private_symbol_data,
_bfd_generic_bfd_copy_private_header_data,
_bfd_generic_bfd_set_private_flags,
_bfd_generic_bfd_print_private_bfd_data,
/* Core */
BFD_JUMP_TABLE_GENERIC (_bfd_xcoff),
BFD_JUMP_TABLE_COPY (_bfd_xcoff),
BFD_JUMP_TABLE_CORE (coff),
/* Archive */
_bfd_xcoff_slurp_armap,
_bfd_noarchive_slurp_extended_name_table,
_bfd_noarchive_construct_extended_name_table,
bfd_dont_truncate_arname,
_bfd_xcoff_write_armap,
_bfd_xcoff_read_ar_hdr,
_bfd_generic_write_ar_hdr,
_bfd_xcoff_openr_next_archived_file,
_bfd_generic_get_elt_at_index,
_bfd_xcoff_stat_arch_elt,
bfd_true,
/* Symbols */
coff_get_symtab_upper_bound,
coff_canonicalize_symtab,
coff_make_empty_symbol,
coff_print_symbol,
coff_get_symbol_info,
_bfd_xcoff_is_local_label_name,
coff_bfd_is_target_special_symbol,
coff_get_lineno,
xcoff_find_nearest_line,
xcoff_find_nearest_line_discriminator,
_bfd_generic_find_line,
coff_find_inliner_info,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
_bfd_generic_minisymbol_to_symbol,
/* Reloc */
coff_get_reloc_upper_bound,
coff_canonicalize_reloc,
_bfd_xcoff_reloc_type_lookup,
_bfd_xcoff_reloc_name_lookup,
/* Write */
coff_set_arch_mach,
coff_set_section_contents,
/* Link */
_bfd_xcoff_sizeof_headers,
bfd_generic_get_relocated_section_contents,
bfd_generic_relax_section,
_bfd_xcoff_bfd_link_hash_table_create,
_bfd_generic_link_hash_table_free,
_bfd_xcoff_bfd_link_add_symbols,
_bfd_generic_link_just_syms,
_bfd_generic_copy_link_hash_symbol_type,
_bfd_xcoff_bfd_final_link,
_bfd_generic_link_split_section,
bfd_generic_gc_sections,
bfd_generic_lookup_section_flags,
bfd_generic_merge_sections,
bfd_generic_is_group_section,
bfd_generic_discard_group,
_bfd_generic_section_already_linked,
_bfd_xcoff_define_common_symbol,
/* Dynamic */
_bfd_xcoff_get_dynamic_symtab_upper_bound,
_bfd_xcoff_canonicalize_dynamic_symtab,
_bfd_nodynamic_get_synthetic_symtab,
_bfd_xcoff_get_dynamic_reloc_upper_bound,
_bfd_xcoff_canonicalize_dynamic_reloc,
BFD_JUMP_TABLE_ARCHIVE (_bfd_xcoff),
BFD_JUMP_TABLE_SYMBOLS (_bfd_xcoff),
BFD_JUMP_TABLE_RELOCS (_bfd_xcoff),
BFD_JUMP_TABLE_WRITE (coff),
BFD_JUMP_TABLE_LINK (_bfd_xcoff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_xcoff),
/* Opposite endian version, none exists */
NULL,
@@ -4277,6 +4252,7 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data =
3, /* _bfd_coff_default_section_alignment_power */
FALSE, /* _bfd_coff_force_symnames_in_strings */
2, /* _bfd_coff_debug_string_prefix_length */
32768, /* _bfd_coff_max_nscns */
coff_swap_filehdr_in,
coff_swap_aouthdr_in,
coff_swap_scnhdr_in,
@@ -4348,7 +4324,7 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data =
};
/* The transfer vector that leads the outside world to all of the above. */
const bfd_target pmac_xcoff_vec =
const bfd_target powerpc_xcoff_vec =
{
"xcoff-powermac",
bfd_target_xcoff_flavour,
@@ -4407,91 +4383,15 @@ const bfd_target pmac_xcoff_vec =
bfd_false
},
/* Generic */
_bfd_archive_close_and_cleanup,
bfd_true,
coff_new_section_hook,
_bfd_generic_get_section_contents,
_bfd_generic_get_section_contents_in_window,
/* Copy */
_bfd_xcoff_copy_private_bfd_data,
_bfd_generic_bfd_merge_private_bfd_data,
_bfd_generic_init_private_section_data,
_bfd_generic_bfd_copy_private_section_data,
_bfd_generic_bfd_copy_private_symbol_data,
_bfd_generic_bfd_copy_private_header_data,
_bfd_generic_bfd_set_private_flags,
_bfd_generic_bfd_print_private_bfd_data,
/* Core */
BFD_JUMP_TABLE_GENERIC (_bfd_xcoff),
BFD_JUMP_TABLE_COPY (_bfd_xcoff),
BFD_JUMP_TABLE_CORE (coff),
/* Archive */
_bfd_xcoff_slurp_armap,
_bfd_noarchive_slurp_extended_name_table,
_bfd_noarchive_construct_extended_name_table,
bfd_dont_truncate_arname,
_bfd_xcoff_write_armap,
_bfd_xcoff_read_ar_hdr,
_bfd_generic_write_ar_hdr,
_bfd_xcoff_openr_next_archived_file,
_bfd_generic_get_elt_at_index,
_bfd_xcoff_stat_arch_elt,
bfd_true,
/* Symbols */
coff_get_symtab_upper_bound,
coff_canonicalize_symtab,
coff_make_empty_symbol,
coff_print_symbol,
coff_get_symbol_info,
_bfd_xcoff_is_local_label_name,
coff_bfd_is_target_special_symbol,
coff_get_lineno,
xcoff_find_nearest_line,
_bfd_generic_find_nearest_line_discriminator,
_bfd_generic_find_line,
coff_find_inliner_info,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
_bfd_generic_minisymbol_to_symbol,
/* Reloc */
coff_get_reloc_upper_bound,
coff_canonicalize_reloc,
_bfd_xcoff_reloc_type_lookup,
_bfd_xcoff_reloc_name_lookup,
/* Write */
coff_set_arch_mach,
coff_set_section_contents,
/* Link */
_bfd_xcoff_sizeof_headers,
bfd_generic_get_relocated_section_contents,
bfd_generic_relax_section,
_bfd_xcoff_bfd_link_hash_table_create,
_bfd_generic_link_hash_table_free,
_bfd_xcoff_bfd_link_add_symbols,
_bfd_generic_link_just_syms,
_bfd_generic_copy_link_hash_symbol_type,
_bfd_xcoff_bfd_final_link,
_bfd_generic_link_split_section,
bfd_generic_gc_sections,
bfd_generic_lookup_section_flags,
bfd_generic_merge_sections,
bfd_generic_is_group_section,
bfd_generic_discard_group,
_bfd_generic_section_already_linked,
_bfd_xcoff_define_common_symbol,
/* Dynamic */
_bfd_xcoff_get_dynamic_symtab_upper_bound,
_bfd_xcoff_canonicalize_dynamic_symtab,
_bfd_nodynamic_get_synthetic_symtab,
_bfd_xcoff_get_dynamic_reloc_upper_bound,
_bfd_xcoff_canonicalize_dynamic_reloc,
BFD_JUMP_TABLE_ARCHIVE (_bfd_xcoff),
BFD_JUMP_TABLE_SYMBOLS (_bfd_xcoff),
BFD_JUMP_TABLE_RELOCS (_bfd_xcoff),
BFD_JUMP_TABLE_WRITE (coff),
BFD_JUMP_TABLE_LINK (_bfd_xcoff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_xcoff),
/* Opposite endian version, none exists */
NULL,
+9 -10
View File
@@ -1,7 +1,5 @@
/* BFD back-end for Renesas Super-H COFF binaries.
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1993-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
Written by Steve Chamberlain, <sac@cygnus.com>.
Relaxing code written by Ian Lance Taylor, <ian@cygnus.com>.
@@ -3000,13 +2998,13 @@ sh_coff_get_relocated_section_contents (bfd *output_bfd,
/* The target vectors. */
#ifndef TARGET_SHL_SYM
CREATE_BIG_COFF_TARGET_VEC (shcoff_vec, "coff-sh", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_BIG_COFF_TARGET_VEC (sh_coff_vec, "coff-sh", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
#endif
#ifdef TARGET_SHL_SYM
#define TARGET_SYM TARGET_SHL_SYM
#else
#define TARGET_SYM shlcoff_vec
#define TARGET_SYM sh_coff_le_vec
#endif
#ifndef TARGET_SHL_NAME
@@ -3092,6 +3090,7 @@ static bfd_coff_backend_data bfd_coff_small_swap_table =
#else
2,
#endif
32768,
coff_swap_filehdr_in, coff_swap_aouthdr_in, coff_swap_scnhdr_in,
coff_swap_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook,
coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook,
@@ -3113,9 +3112,9 @@ static bfd_coff_backend_data bfd_coff_small_swap_table =
#define coff_small_get_section_contents_in_window \
coff_get_section_contents_in_window
extern const bfd_target shlcoff_small_vec;
extern const bfd_target sh_coff_small_le_vec;
const bfd_target shcoff_small_vec =
const bfd_target sh_coff_small_vec =
{
"coff-sh-small", /* name */
bfd_target_coff_flavour,
@@ -3155,12 +3154,12 @@ const bfd_target shcoff_small_vec =
BFD_JUMP_TABLE_LINK (coff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& shlcoff_small_vec,
& sh_coff_small_le_vec,
& bfd_coff_small_swap_table
};
const bfd_target shlcoff_small_vec =
const bfd_target sh_coff_small_le_vec =
{
"coff-shl-small", /* name */
bfd_target_coff_flavour,
@@ -3200,7 +3199,7 @@ const bfd_target shlcoff_small_vec =
BFD_JUMP_TABLE_LINK (coff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& shcoff_small_vec,
& sh_coff_small_vec,
& bfd_coff_small_swap_table
};
+3 -4
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Sparc COFF files.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001,
2002, 2003, 2005, 2007, 2008, 2012 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -75,7 +74,7 @@ bfd_coff_generic_reloc (bfd *abfd ATTRIBUTE_UNUSED,
static reloc_howto_type coff_sparc_howto_table[] =
{
HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_NONE", FALSE,0,0x00000000,TRUE),
HOWTO(R_SPARC_NONE, 0,3, 0,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_NONE", FALSE,0,0x00000000,TRUE),
HOWTO(R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8", FALSE,0,0x000000ff,TRUE),
HOWTO(R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16", FALSE,0,0x0000ffff,TRUE),
HOWTO(R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32", FALSE,0,0xffffffff,TRUE),
@@ -199,7 +198,7 @@ rtype2howto (arelent *cache_ptr, struct internal_reloc *dst)
#include "coffcode.h"
#ifndef TARGET_SYM
#define TARGET_SYM sparccoff_vec
#define TARGET_SYM sparc_coff_vec
#endif
#ifndef TARGET_NAME
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Intel 386 COFF files (DJGPP variant with a stub).
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2005, 2006, 2007, 2009,
2011, 2012 Free Software Foundation, Inc.
Copyright (C) 1997-2014 Free Software Foundation, Inc.
Written by Robert Hoehne.
This file is part of BFD, the Binary File Descriptor library.
@@ -36,7 +35,7 @@
To be compatible with any existing executables I have fixed this
here and NOT in the DJGPP startup code. */
#define TARGET_SYM go32stubbedcoff_vec
#define TARGET_SYM i386_coff_go32stubbed_vec
#define TARGET_NAME "coff-go32-exe"
#define TARGET_UNDERSCORE '_'
#define COFF_GO32_EXE
+2 -2
View File
@@ -1,5 +1,5 @@
/* BFD back-end for Motorola sysv68
Copyright 1997, 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 1997-2014 Free Software Foundation, Inc.
Written by Philippe De Muyter <phdm@info.ucl.ac.be>.
This file is part of BFD, the Binary File Descriptor library.
@@ -19,7 +19,7 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
#define TARGET_SYM m68ksysvcoff_vec
#define TARGET_SYM m68k_coff_sysv_vec
#define TARGET_NAME "coff-m68k-sysv"
#define STATIC_RELOCS
#define COFF_COMMON_ADDEND
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for TMS320C30 coff binaries.
Copyright 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2008, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1998-2014 Free Software Foundation, Inc.
Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
This file is part of BFD, the Binary File Descriptor library.
@@ -137,7 +136,7 @@ rtype2howto (arelent *internal, struct internal_reloc *dst)
internal->howto = &tic30_coff_howto_table[4];
break;
default:
abort ();
internal->howto = NULL;
break;
}
}
+7 -8
View File
@@ -1,6 +1,5 @@
/* BFD back-end for TMS320C4X coff binaries.
Copyright 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2005, 2007,
2008, 2012 Free Software Foundation, Inc.
Copyright (C) 1996-2014 Free Software Foundation, Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
@@ -262,30 +261,30 @@ tic4x_reloc_processing (arelent *relent,
/* TI COFF v0, DOS tools (little-endian headers). */
CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff0_vec, "coff0-tic4x",
HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
0, SEC_CODE | SEC_READONLY, '_',
NULL, &ticoff0_swap_table);
/* TI COFF v0, SPARC tools (big-endian headers). */
CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff0_beh_vec, "coff0-beh-tic4x",
HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
0, SEC_CODE | SEC_READONLY, '_',
&tic4x_coff0_vec, &ticoff0_swap_table);
/* TI COFF v1, DOS tools (little-endian headers). */
CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff1_vec, "coff1-tic4x",
HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
0, SEC_CODE | SEC_READONLY, '_',
&tic4x_coff0_beh_vec, &ticoff1_swap_table);
/* TI COFF v1, SPARC tools (big-endian headers). */
CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff1_beh_vec, "coff1-beh-tic4x",
HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
0, SEC_CODE | SEC_READONLY, '_',
&tic4x_coff1_vec, &ticoff1_swap_table);
/* TI COFF v2, TI DOS tools output (little-endian headers). */
CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff2_vec, "coff2-tic4x",
HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
0, SEC_CODE | SEC_READONLY, '_',
&tic4x_coff1_beh_vec, COFF_SWAP_TABLE);
/* TI COFF v2, TI SPARC tools output (big-endian headers). */
CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff2_beh_vec, "coff2-beh-tic4x",
HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
0, SEC_CODE | SEC_READONLY, '_',
&tic4x_coff2_vec, COFF_SWAP_TABLE);
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD back-end for TMS320C54X coff binaries.
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 1999-2014 Free Software Foundation, Inc.
Contributed by Timothy Wall (twall@cygnus.com)
This file is part of BFD, the Binary File Descriptor library.
+2 -3
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
Copyright 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
2012 Free Software Foundation, Inc.
Copyright (C) 1996-2014 Free Software Foundation, Inc.
Written by Fred Fish (fnf@cygnus.com)
@@ -710,4 +709,4 @@ coff_tic80_relocate_section (bfd *output_bfd,
#include "coffcode.h"
CREATE_LITTLE_COFF_TARGET_VEC (tic80coff_vec, "coff-tic80", D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_LITTLE_COFF_TARGET_VEC (tic80_coff_vec, "coff-tic80", D_PAGED, 0, '_', NULL, COFF_SWAP_TABLE)
+2 -2
View File
@@ -1,5 +1,5 @@
/* BFD back-end for Motorola 68000 COFF binaries having underscore with name.
Copyright 1990, 1991, 1992, 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -19,7 +19,7 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
#define TARGET_SYM m68kcoffun_vec
#define TARGET_SYM m68k_coff_un_vec
#define TARGET_NAME "coff-m68k-un"
#define NAMES_HAVE_UNDERSCORE
+9 -5
View File
@@ -1,6 +1,5 @@
/* BFD back-end for WDC 65816 COFF binaries.
Copyright 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2012 Free Software Foundation, Inc.
Copyright (C) 1995-2014 Free Software Foundation, Inc.
Written by Steve Chamberlain, <sac@cygnus.com>.
This file is part of BFD, the Binary File Descriptor library.
@@ -43,6 +42,8 @@ static reloc_howto_type howto_table[] =
HOWTO (R_W65_DP, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "dp", TRUE, 0x000000ff, 0x000000ff, FALSE),
};
#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0]))
/* Turn a howto into a reloc number. */
#define SELECT_RELOC(x,howto) \
@@ -62,7 +63,7 @@ static reloc_howto_type howto_table[] =
static int
select_reloc (reloc_howto_type *howto)
{
return howto->type ;
return howto->type;
}
/* Code to turn a r_type into a howto ptr, uses the above howto table. */
@@ -71,7 +72,10 @@ static void
rtype2howto (arelent *internal,
struct internal_reloc *dst)
{
internal->howto = howto_table + dst->r_type - 1;
if (dst->r_type > 0 && dst->r_type <= NUM_HOWTOS)
internal->howto = howto_table + dst->r_type - 1;
else
internal->howto = NULL;
}
#define RTYPE2HOWTO(internal, relocentry) rtype2howto(internal,relocentry)
@@ -375,4 +379,4 @@ w65_reloc16_extra_cases (bfd *abfd,
bfd_coff_reloc16_get_relocated_section_contents
#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
CREATE_LITTLE_COFF_TARGET_VEC (w65_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_LITTLE_COFF_TARGET_VEC (w65_coff_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
+9 -5
View File
@@ -1,6 +1,5 @@
/* BFD back-end for we32k COFF files.
Copyright 1992, 1993, 1994, 1999, 2000, 2002, 2003, 2005, 2007, 2008
Free Software Foundation, Inc.
Copyright (C) 1992-2014 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@cs.widener.edu).
This file is part of BFD, the Binary File Descriptor library.
@@ -54,14 +53,19 @@ static reloc_howto_type howto_table[] =
HOWTO(R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE),
};
#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0]))
/* Turn a howto into a reloc nunmber */
#define SELECT_RELOC(x,howto) { x.r_type = howto->type; }
#define BADMAG(x) WE32KBADMAG(x)
#define WE32K 1
#define RTYPE2HOWTO(cache_ptr, dst) \
(cache_ptr)->howto = howto_table + (dst)->r_type;
#define RTYPE2HOWTO(cache_ptr, dst) \
((cache_ptr)->howto = \
((dst)->r_type < NUM_HOWTOS \
? howto_table + (dst)->r_type \
: NULL))
#ifndef bfd_pe_print_pdata
#define bfd_pe_print_pdata NULL
@@ -71,4 +75,4 @@ static reloc_howto_type howto_table[] =
#define coff_write_armap bsd_write_armap
CREATE_BIG_COFF_TARGET_VEC (we32kcoff_vec, "coff-we32k", 0, 0, 0, NULL, COFF_SWAP_TABLE)
CREATE_BIG_COFF_TARGET_VEC (we32k_coff_vec, "coff-we32k", 0, 0, 0, NULL, COFF_SWAP_TABLE)
+21 -11
View File
@@ -1,6 +1,5 @@
/* BFD back-end for AMD 64 COFF files.
Copyright 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Copyright (C) 2006-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -144,6 +143,16 @@ coff_amd64_reloc (bfd *abfd,
reloc_howto_type *howto = reloc_entry->howto;
unsigned char *addr = (unsigned char *) data + reloc_entry->address;
/* FIXME: We do not have an end address for data, so we cannot
accurately range check any addresses computed against it.
cf: PR binutils/17512: file: 1085-1761-0.004.
For now we do the best that we can. */
if (addr < (unsigned char *) data || addr > ((unsigned char *) data) + input_section->size)
{
bfd_set_error (bfd_error_bad_value);
return bfd_reloc_notsupported;
}
switch (howto->size)
{
case 0:
@@ -178,7 +187,8 @@ coff_amd64_reloc (bfd *abfd,
break;
default:
abort ();
bfd_set_error (bfd_error_bad_value);
return bfd_reloc_notsupported;
}
}
@@ -449,6 +459,8 @@ static reloc_howto_type howto_table[] =
PCRELOFFSET) /* pcrel_offset */
};
#define NUM_HOWTOS ARRAY_SIZE (howto_table)
/* Turn a howto into a reloc nunmber */
#define SELECT_RELOC(x,howto) { x.r_type = howto->type; }
@@ -457,7 +469,7 @@ static reloc_howto_type howto_table[] =
#define RTYPE2HOWTO(cache_ptr, dst) \
((cache_ptr)->howto = \
((dst)->r_type < ARRAY_SIZE (howto_table)) \
((dst)->r_type < NUM_HOWTOS) \
? howto_table + (dst)->r_type \
: NULL)
@@ -497,7 +509,8 @@ static reloc_howto_type howto_table[] =
cache_ptr->addend = - (ptr->section->vma + ptr->value); \
else \
cache_ptr->addend = 0; \
if (ptr && howto_table[reloc.r_type].pc_relative) \
if (ptr && reloc.r_type < NUM_HOWTOS \
&& howto_table[reloc.r_type].pc_relative) \
cache_ptr->addend += asect->vma; \
}
@@ -547,7 +560,7 @@ coff_amd64_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
{
reloc_howto_type *howto;
if (rel->r_type >= ARRAY_SIZE (howto_table))
if (rel->r_type >= NUM_HOWTOS)
{
bfd_set_error (bfd_error_bad_value);
return NULL;
@@ -690,7 +703,7 @@ coff_amd64_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
{
unsigned int i;
for (i = 0; i < sizeof (howto_table) / sizeof (howto_table[0]); i++)
for (i = 0; i < NUM_HOWTOS; i++)
if (howto_table[i].name != NULL
&& strcasecmp (howto_table[i].name, r_name) == 0)
return &howto_table[i];
@@ -731,14 +744,11 @@ coff_amd64_is_local_label_name (bfd *abfd, const char *name)
#define amd64coff_object_p coff_object_p
#endif
#define _bfd_generic_find_nearest_line_discriminator \
coff_find_nearest_line_discriminator
const bfd_target
#ifdef TARGET_SYM
TARGET_SYM =
#else
x86_64coff_vec =
x86_64_coff_vec =
#endif
{
#ifdef TARGET_NAME
+3 -3
View File
@@ -1,5 +1,5 @@
/* BFD back-end for Zilog Z80 COFF binaries.
Copyright 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 2005-2014 Free Software Foundation, Inc.
Contributed by Arnold Metselaar <arnold_m@operamail.com>
This file is part of BFD, the Binary File Descriptor library.
@@ -81,7 +81,7 @@ rtype2howto (arelent *internal, struct internal_reloc *dst)
switch (dst->r_type)
{
default:
abort ();
internal->howto = NULL;
break;
case R_IMM8:
internal->howto = &r_imm8;
@@ -283,7 +283,7 @@ extra_case (bfd *in_abfd,
#undef coff_bfd_relax_section
#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
CREATE_LITTLE_COFF_TARGET_VEC (z80coff_vec, "coff-z80", 0,
CREATE_LITTLE_COFF_TARGET_VEC (z80_coff_vec, "coff-z80", 0,
SEC_CODE | SEC_DATA, '\0', NULL,
COFF_SWAP_TABLE)
+3 -4
View File
@@ -1,6 +1,5 @@
/* BFD back-end for Zilog Z800n COFF binaries.
Copyright 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2007, 2008 Free Software Foundation, Inc.
Copyright (C) 1992-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
Written by Steve Chamberlain, <sac@cygnus.com>.
@@ -86,7 +85,7 @@ rtype2howto (arelent *internal, struct internal_reloc *dst)
switch (dst->r_type)
{
default:
abort ();
internal->howto = NULL;
break;
case R_IMM8:
internal->howto = &r_imm8;
@@ -385,4 +384,4 @@ extra_case (bfd *in_abfd,
#undef coff_bfd_relax_section
#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
CREATE_BIG_COFF_TARGET_VEC (z8kcoff_vec, "coff-z8k", 0, 0, '_', NULL, COFF_SWAP_TABLE)
CREATE_BIG_COFF_TARGET_VEC (z8k_coff_vec, "coff-z8k", 0, 0, '_', NULL, COFF_SWAP_TABLE)
+8 -11
View File
@@ -1,7 +1,5 @@
/* BFD back-end for IBM RS/6000 "XCOFF64" files.
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011
Free Software Foundation, Inc.
Copyright (C) 2000-2014 Free Software Foundation, Inc.
Written Clinton Popetz.
Contributed by Cygnus Support.
@@ -279,6 +277,7 @@ extern int rs6000coff_core_file_failing_signal
#define bfd_pe_print_pdata NULL
#endif
#include <stdint.h>
#include "coffcode.h"
/* For XCOFF64, the effective width of symndx changes depending on
@@ -2543,6 +2542,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
3, /* _bfd_coff_default_section_alignment_power */
TRUE, /* _bfd_coff_force_symnames_in_strings */
4, /* _bfd_coff_debug_string_prefix_length */
32768, /* _bfd_coff_max_nscns */
coff_swap_filehdr_in,
coff_swap_aouthdr_in,
coff_swap_scnhdr_in,
@@ -2614,7 +2614,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
};
/* The transfer vector that leads the outside world to all of the above. */
const bfd_target rs6000coff64_vec =
const bfd_target rs6000_xcoff64_vec =
{
"aixcoff64-rs6000",
bfd_target_xcoff_flavour,
@@ -2716,8 +2716,7 @@ const bfd_target rs6000coff64_vec =
coff_bfd_is_target_special_symbol,
coff_get_lineno,
coff_find_nearest_line,
_bfd_generic_find_nearest_line_discriminator,
_bfd_generic_find_line,
coff_find_line,
coff_find_inliner_info,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
@@ -2738,7 +2737,6 @@ const bfd_target rs6000coff64_vec =
bfd_generic_get_relocated_section_contents,
bfd_generic_relax_section,
_bfd_xcoff_bfd_link_hash_table_create,
_bfd_generic_link_hash_table_free,
_bfd_xcoff_bfd_link_add_symbols,
_bfd_generic_link_just_syms,
_bfd_generic_copy_link_hash_symbol_type,
@@ -2802,6 +2800,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
3, /* _bfd_coff_default_section_alignment_power */
TRUE, /* _bfd_coff_force_symnames_in_strings */
4, /* _bfd_coff_debug_string_prefix_length */
32768, /* _bfd_coff_max_nscns */
coff_swap_filehdr_in,
coff_swap_aouthdr_in,
coff_swap_scnhdr_in,
@@ -2872,7 +2871,7 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
};
/* The transfer vector that leads the outside world to all of the above. */
const bfd_target aix5coff64_vec =
const bfd_target rs6000_xcoff64_aix_vec =
{
"aix5coff64-rs6000",
bfd_target_xcoff_flavour,
@@ -2974,8 +2973,7 @@ const bfd_target aix5coff64_vec =
coff_bfd_is_target_special_symbol,
coff_get_lineno,
coff_find_nearest_line,
_bfd_generic_find_nearest_line_discriminator,
_bfd_generic_find_line,
coff_find_line,
coff_find_inliner_info,
coff_bfd_make_debug_symbol,
_bfd_generic_read_minisymbols,
@@ -2996,7 +2994,6 @@ const bfd_target aix5coff64_vec =
bfd_generic_get_relocated_section_contents,
bfd_generic_relax_section,
_bfd_xcoff_bfd_link_hash_table_create,
_bfd_generic_link_hash_table_free,
_bfd_xcoff_bfd_link_add_symbols,
_bfd_generic_link_just_syms,
_bfd_generic_copy_link_hash_symbol_type,
+430 -103
View File
@@ -1,5 +1,5 @@
/* Support for the generic parts of most COFF variants, for BFD.
Copyright 1990-2013 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -307,7 +307,7 @@ CODE_FRAGMENT
.typedef struct coff_ptr_struct
.{
. {* Remembers the offset from the first symbol in the file for
. this symbol. Generated by coff_renumber_symbols. *}
. this symbol. Generated by coff_renumber_symbols. *}
. unsigned int offset;
.
. {* Should the value of this symbol be renumbered. Used for
@@ -315,15 +315,15 @@ CODE_FRAGMENT
. unsigned int fix_value : 1;
.
. {* Should the tag field of this symbol be renumbered.
. Created by coff_pointerize_aux. *}
. Created by coff_pointerize_aux. *}
. unsigned int fix_tag : 1;
.
. {* Should the endidx field of this symbol be renumbered.
. Created by coff_pointerize_aux. *}
. Created by coff_pointerize_aux. *}
. unsigned int fix_end : 1;
.
. {* Should the x_csect.x_scnlen field be renumbered.
. Created by coff_pointerize_aux. *}
. Created by coff_pointerize_aux. *}
. unsigned int fix_scnlen : 1;
.
. {* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the
@@ -331,12 +331,15 @@ CODE_FRAGMENT
. unsigned int fix_line : 1;
.
. {* The container for the symbol structure as read and translated
. from the file. *}
. from the file. *}
. union
. {
. union internal_auxent auxent;
. struct internal_syment syment;
. } u;
.
. {* Selector for the union above. *}
. bfd_boolean is_sym;
.} combined_entry_type;
.
.
@@ -928,12 +931,7 @@ handle_COMDAT (bfd * abfd,
bfd_coff_swap_sym_in (abfd, esym, & isym);
if (sizeof (internal_s->s_name) > SYMNMLEN)
{
/* This case implies that the matching
symbol name will be in the string table. */
abort ();
}
BFD_ASSERT (sizeof (internal_s->s_name) <= SYMNMLEN);
if (isym.n_scnum == section->target_index)
{
@@ -964,8 +962,12 @@ handle_COMDAT (bfd * abfd,
/* All 3 branches use this. */
symname = _bfd_coff_internal_syment_name (abfd, &isym, buf);
/* PR 17512 file: 078-11867-0.004 */
if (symname == NULL)
abort ();
{
_bfd_error_handler (_("%B: unable to load COMDAT section name"), abfd);
break;
}
switch (seen_state)
{
@@ -1007,6 +1009,13 @@ handle_COMDAT (bfd * abfd,
seen_state = 1;
/* PR 17512: file: e2cfe54f. */
if (esym + bfd_coff_symesz (abfd) >= esymend)
{
_bfd_error_handler (_("%B: warning: No symbol for section '%s' found"),
abfd, symname);
break;
}
/* This is the section symbol. */
bfd_coff_swap_aux_in (abfd, (esym + bfd_coff_symesz (abfd)),
isym.n_type, isym.n_sclass,
@@ -1160,7 +1169,7 @@ styp_to_sec_flags (bfd *abfd,
flagword *flags_ptr)
{
struct internal_scnhdr *internal_s = (struct internal_scnhdr *) hdr;
long styp_flags = internal_s->s_flags;
unsigned long styp_flags = internal_s->s_flags;
flagword sec_flags;
bfd_boolean result = TRUE;
bfd_boolean is_dbg = FALSE;
@@ -1183,7 +1192,7 @@ styp_to_sec_flags (bfd *abfd,
/* Process each flag bit in styp_flags in turn. */
while (styp_flags)
{
long flag = styp_flags & - styp_flags;
unsigned long flag = styp_flags & - styp_flags;
char * unhandled = NULL;
styp_flags &= ~ flag;
@@ -1393,6 +1402,7 @@ Special entry points for gdb to swap in coff symbol table parts:
. unsigned int _bfd_coff_default_section_alignment_power;
. bfd_boolean _bfd_coff_force_symnames_in_strings;
. unsigned int _bfd_coff_debug_string_prefix_length;
. unsigned int _bfd_coff_max_nscns;
.
. void (*_bfd_coff_swap_filehdr_in)
. (bfd *, void *, void *);
@@ -1530,6 +1540,9 @@ Special entry points for gdb to swap in coff symbol table parts:
. ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
.#define bfd_coff_default_section_alignment_power(abfd) \
. (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
.#define bfd_coff_max_nscns(abfd) \
. (coff_backend_info (abfd)->_bfd_coff_max_nscns)
.
.#define bfd_coff_swap_filehdr_in(abfd, i,o) \
. ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
.
@@ -1793,6 +1806,7 @@ coff_new_section_hook (bfd * abfd, asection * section)
in case this symbol winds up getting written out. The value 0
for n_numaux is already correct. */
native->is_sym = TRUE;
native->u.syment.n_type = T_NULL;
native->u.syment.n_sclass = sclass;
@@ -2066,7 +2080,11 @@ coff_mkobject_hook (bfd * abfd,
#endif
if ((internal_f->f_flags & F_GO32STUB) != 0)
coff->go32stub = (char *) bfd_alloc (abfd, (bfd_size_type) GO32_STUBSIZE);
{
coff->go32stub = (char *) bfd_alloc (abfd, (bfd_size_type) GO32_STUBSIZE);
if (coff->go32stub == NULL)
return NULL;
}
if (coff->go32stub != NULL)
memcpy (coff->go32stub, internal_f->go32stub, GO32_STUBSIZE);
@@ -2092,12 +2110,6 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
machine = 0;
switch (internal_f->f_magic)
{
#ifdef OR32_MAGIC_BIG
case OR32_MAGIC_BIG:
case OR32_MAGIC_LITTLE:
arch = bfd_arch_or32;
break;
#endif
#ifdef PPCMAGIC
case PPCMAGIC:
arch = bfd_arch_powerpc;
@@ -2277,6 +2289,8 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
bfd_size_type amt = bfd_coff_symesz (abfd);
buf = bfd_malloc (amt);
if (buf == NULL)
return FALSE;
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
|| bfd_bread (buf, amt, abfd) != amt)
{
@@ -2500,11 +2514,13 @@ coff_pointerize_aux_hook (bfd *abfd ATTRIBUTE_UNUSED,
unsigned int indaux,
combined_entry_type *aux)
{
BFD_ASSERT (symbol->is_sym);
int n_sclass = symbol->u.syment.n_sclass;
if (CSECT_SYM_P (n_sclass)
&& indaux + 1 == symbol->u.syment.n_numaux)
{
BFD_ASSERT (! aux->is_sym);
if (SMTYP_SMTYP (aux->u.auxent.x_csect.x_smtyp) == XTY_LD)
{
aux->u.auxent.x_csect.x_scnlen.p =
@@ -2537,6 +2553,7 @@ coff_pointerize_aux_hook (bfd *abfd ATTRIBUTE_UNUSED,
/* Return TRUE if we don't want to pointerize this aux entry, which
is the case for the lastfirst aux entry for a C_LEAFPROC symbol. */
return (indaux == 1
&& symbol->is_sym
&& (symbol->u.syment.n_sclass == C_LEAFPROC
|| symbol->u.syment.n_sclass == C_LEAFSTAT
|| symbol->u.syment.n_sclass == C_LEAFEXT));
@@ -2559,6 +2576,8 @@ coff_print_aux (bfd *abfd ATTRIBUTE_UNUSED,
combined_entry_type *aux ATTRIBUTE_UNUSED,
unsigned int indaux ATTRIBUTE_UNUSED)
{
BFD_ASSERT (symbol->is_sym);
BFD_ASSERT (! aux->is_sym);
#ifdef RS6000COFF_C
if (CSECT_SYM_P (symbol->u.syment.n_sclass)
&& indaux + 1 == symbol->u.syment.n_numaux)
@@ -2660,10 +2679,16 @@ coff_write_relocs (bfd * abfd, int first_undef)
amt = s->reloc_count;
amt *= sizeof (arelent *);
p = bfd_malloc (amt);
if (p == NULL && s->reloc_count > 0)
return FALSE;
memcpy (p, s->orelocation, (size_t) amt);
qsort (p, s->reloc_count, sizeof (arelent *), compare_arelent_ptr);
if (p == NULL)
{
if (s->reloc_count > 0)
return FALSE;
}
else
{
memcpy (p, s->orelocation, (size_t) amt);
qsort (p, s->reloc_count, sizeof (arelent *), compare_arelent_ptr);
}
}
#endif
@@ -3064,15 +3089,6 @@ coff_set_flags (bfd * abfd,
return TRUE;
#endif
#ifdef OR32_MAGIC_BIG
case bfd_arch_or32:
if (bfd_big_endian (abfd))
* magicp = OR32_MAGIC_BIG;
else
* magicp = OR32_MAGIC_LITTLE;
return TRUE;
#endif
default: /* Unknown architecture. */
/* Fall through to "return FALSE" below, to avoid
"statement never reached" errors on the one below. */
@@ -3136,7 +3152,7 @@ coff_compute_section_file_positions (bfd * abfd)
asection *current;
file_ptr sofar = bfd_coff_filhsz (abfd);
bfd_boolean align_adjust;
int target_index;
unsigned int target_index;
#ifdef ALIGN_SECTIONS_IN_FILE
asection *previous = NULL;
file_ptr old_sofar;
@@ -3145,7 +3161,8 @@ coff_compute_section_file_positions (bfd * abfd)
#ifdef COFF_IMAGE_WITH_PE
int page_size;
if (coff_data (abfd)->link_info)
if (coff_data (abfd)->link_info
|| (pe_data (abfd) && pe_data (abfd)->pe_opthdr.FileAlignment))
{
page_size = pe_data (abfd)->pe_opthdr.FileAlignment;
@@ -3153,6 +3170,15 @@ coff_compute_section_file_positions (bfd * abfd)
This repairs 'ld -r' for arm-wince-pe target. */
if (page_size == 0)
page_size = 1;
/* PR 17512: file: 0ac816d3. */
if (page_size < 0)
{
bfd_set_error (bfd_error_file_too_big);
(*_bfd_error_handler)
(_("%B: page size is too large (0x%x)"), abfd, page_size);
return FALSE;
}
}
else
page_size = PE_DEF_FILE_ALIGNMENT;
@@ -3179,6 +3205,7 @@ coff_compute_section_file_positions (bfd * abfd)
cf = coff_symbol_from (abfd, *symp);
if (cf != NULL
&& cf->native != NULL
&& cf->native->is_sym
&& SYMNAME_IN_DEBUG (&cf->native->u.syment))
{
size_t len;
@@ -3304,7 +3331,7 @@ coff_compute_section_file_positions (bfd * abfd)
}
#endif /* ! COFF_IMAGE_WITH_PE */
if (target_index >= 32768)
if (target_index >= bfd_coff_max_nscns (abfd))
{
bfd_set_error (bfd_error_file_too_big);
(*_bfd_error_handler)
@@ -3876,6 +3903,7 @@ coff_write_object_contents (bfd * abfd)
csym = coff_symbol_from (abfd, *psym);
if (csym == NULL
|| csym->native == NULL
|| ! csym->native->is_sym
|| csym->native->u.syment.n_numaux < 1
|| csym->native->u.syment.n_sclass != C_STAT
|| csym->native->u.syment.n_type != T_NULL)
@@ -3898,6 +3926,7 @@ coff_write_object_contents (bfd * abfd)
x_associated field is not currently supported. */
aux = csym->native + 1;
BFD_ASSERT (! aux->is_sym);
switch (current->flags & SEC_LINK_DUPLICATES)
{
case SEC_LINK_DUPLICATES_DISCARD:
@@ -4043,8 +4072,6 @@ coff_write_object_contents (bfd * abfd)
internal_f.f_flags |= F_DYNLOAD;
#endif
memset (&internal_a, 0, sizeof internal_a);
/* Set up architecture-dependent stuff. */
{
unsigned int magic = 0;
@@ -4154,11 +4181,6 @@ coff_write_object_contents (bfd * abfd)
internal_a.magic = MIPS_PE_MAGIC;
#endif
#ifdef OR32
#define __A_MAGIC_SET__
internal_a.magic = NMAGIC; /* Assume separate i/d. */
#endif
#ifndef __A_MAGIC_SET__
#include "Your aouthdr magic number is not being set!"
#else
@@ -4325,7 +4347,18 @@ coff_write_object_contents (bfd * abfd)
}
#endif
/* Now write them. */
#ifdef COFF_WITH_PE
{
/* After object contents are finalized so we can compute a reasonable hash,
but before header is written so we can update it to point to debug directory. */
struct pe_tdata *pe = pe_data (abfd);
if (pe->build_id.after_write_object_contents != NULL)
(*pe->build_id.after_write_object_contents) (abfd);
}
#endif
/* Now write header. */
if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
return FALSE;
@@ -4460,11 +4493,11 @@ buy_and_read (bfd *abfd, file_ptr where, bfd_size_type size)
void * area = bfd_alloc (abfd, size);
if (!area)
return (NULL);
return NULL;
if (bfd_seek (abfd, where, SEEK_SET) != 0
|| bfd_bread (area, size, abfd) != size)
return (NULL);
return (area);
return NULL;
return area;
}
/*
@@ -4498,6 +4531,8 @@ coff_sort_func_alent (const void * arg1, const void * arg2)
const coff_symbol_type *s1 = (const coff_symbol_type *) (al1->u.sym);
const coff_symbol_type *s2 = (const coff_symbol_type *) (al2->u.sym);
if (s1 == NULL || s2 == NULL)
return 0;
if (s1->symbol.value < s2->symbol.value)
return -1;
else if (s1->symbol.value > s2->symbol.value)
@@ -4515,9 +4550,11 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
unsigned int counter;
alent *cache_ptr;
bfd_vma prev_offset = 0;
int ordered = 1;
bfd_boolean ordered = TRUE;
unsigned int nbr_func;
LINENO *src;
bfd_boolean have_func;
bfd_boolean ret = TRUE;
BFD_ASSERT (asect->lineno == NULL);
@@ -4540,57 +4577,88 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
asect->lineno = lineno_cache;
src = native_lineno;
nbr_func = 0;
have_func = FALSE;
for (counter = 0; counter < asect->lineno_count; counter++)
for (counter = 0; counter < asect->lineno_count; counter++, src++)
{
struct internal_lineno dst;
bfd_coff_swap_lineno_in (abfd, src, &dst);
cache_ptr->line_number = dst.l_lnno;
/* Appease memory checkers that get all excited about
uninitialised memory when copying alents if u.offset is
larger than u.sym. (64-bit BFD on 32-bit host.) */
memset (&cache_ptr->u, 0, sizeof (cache_ptr->u));
if (cache_ptr->line_number == 0)
{
bfd_boolean warned;
bfd_signed_vma symndx;
combined_entry_type * ent;
bfd_vma symndx;
coff_symbol_type *sym;
nbr_func++;
warned = FALSE;
have_func = FALSE;
symndx = dst.l_addr.l_symndx;
if (symndx < 0
|| (bfd_vma) symndx >= obj_raw_syment_count (abfd))
if (symndx >= obj_raw_syment_count (abfd))
{
(*_bfd_error_handler)
(_("%B: warning: illegal symbol index %ld in line numbers"),
abfd, (long) symndx);
symndx = 0;
warned = TRUE;
(_("%B: warning: illegal symbol index 0x%lx in line number entry %d"),
abfd, (long) symndx, counter);
cache_ptr->line_number = -1;
ret = FALSE;
continue;
}
ent = obj_raw_syments (abfd) + symndx;
/* FIXME: We should not be casting between ints and
pointers like this. */
sym = ((coff_symbol_type *)
((symndx + obj_raw_syments (abfd))
->u.syment._n._n_n._n_zeroes));
if (! ent->is_sym)
{
(*_bfd_error_handler)
(_("%B: warning: illegal symbol index 0x%lx in line number entry %d"),
abfd, (long) symndx, counter);
cache_ptr->line_number = -1;
ret = FALSE;
continue;
}
sym = (coff_symbol_type *) (ent->u.syment._n._n_n._n_zeroes);
/* PR 17512 file: 078-10659-0.004 */
if (sym < obj_symbols (abfd)
|| sym >= obj_symbols (abfd) + bfd_get_symcount (abfd))
{
(*_bfd_error_handler)
(_("%B: warning: illegal symbol in line number entry %d"),
abfd, counter);
cache_ptr->line_number = -1;
ret = FALSE;
continue;
}
have_func = TRUE;
nbr_func++;
cache_ptr->u.sym = (asymbol *) sym;
if (sym->lineno != NULL && ! warned)
if (sym->lineno != NULL)
(*_bfd_error_handler)
(_("%B: warning: duplicate line number information for `%s'"),
abfd, bfd_asymbol_name (&sym->symbol));
sym->lineno = cache_ptr;
if (sym->symbol.value < prev_offset)
ordered = 0;
ordered = FALSE;
prev_offset = sym->symbol.value;
}
else if (!have_func)
/* Drop line information that has no associated function.
PR 17521: file: 078-10659-0.004. */
continue;
else
cache_ptr->u.offset = dst.l_addr.l_paddr
- bfd_section_vma (abfd, asect);
cache_ptr->u.offset = (dst.l_addr.l_paddr
- bfd_section_vma (abfd, asect));
cache_ptr++;
src++;
}
cache_ptr->line_number = 0;
asect->lineno_count = cache_ptr - lineno_cache;
memset (cache_ptr, 0, sizeof (*cache_ptr));
bfd_release (abfd, native_lineno);
/* On some systems (eg AIX5.3) the lineno table may not be sorted. */
@@ -4607,15 +4675,17 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
alent **p = func_table;
unsigned int i;
for (i = 0; i < counter; i++)
for (i = 0; i < asect->lineno_count; i++)
if (lineno_cache[i].line_number == 0)
*p++ = &lineno_cache[i];
BFD_ASSERT ((unsigned int) (p - func_table) == nbr_func);
/* Sort by functions. */
qsort (func_table, nbr_func, sizeof (alent *), coff_sort_func_alent);
/* Create the new sorted table. */
amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent);
amt = (bfd_size_type) asect->lineno_count * sizeof (alent);
n_lineno_cache = (alent *) bfd_alloc (abfd, amt);
if (n_lineno_cache != NULL)
{
@@ -4626,25 +4696,29 @@ coff_slurp_line_table (bfd *abfd, asection *asect)
coff_symbol_type *sym;
alent *old_ptr = func_table[i];
/* Copy the function entry and update it. */
*n_cache_ptr = *old_ptr;
sym = (coff_symbol_type *)n_cache_ptr->u.sym;
sym->lineno = n_cache_ptr;
n_cache_ptr++;
old_ptr++;
/* Copy the line number entries. */
while (old_ptr->line_number != 0)
/* Update the function entry. */
sym = (coff_symbol_type *) old_ptr->u.sym;
/* PR binutils/17512: Point the lineno to where
this entry will be after the memcpy below. */
sym->lineno = lineno_cache + (n_cache_ptr - n_lineno_cache);
/* Copy the function and line number entries. */
do
*n_cache_ptr++ = *old_ptr++;
while (old_ptr->line_number != 0);
}
n_cache_ptr->line_number = 0;
BFD_ASSERT ((bfd_size_type) (n_cache_ptr - n_lineno_cache) == (amt / sizeof (alent)));
memcpy (lineno_cache, n_lineno_cache, amt);
}
else
ret = FALSE;
bfd_release (abfd, func_table);
}
else
ret = FALSE;
}
return TRUE;
return ret;
}
/* Slurp in the symbol table, converting it to generic form. Note
@@ -4659,6 +4733,7 @@ coff_slurp_symbol_table (bfd * abfd)
unsigned int *table_ptr;
bfd_size_type amt;
unsigned int number_of_symbols = 0;
bfd_boolean ret = TRUE;
if (obj_symbols (abfd))
return TRUE;
@@ -4676,7 +4751,7 @@ coff_slurp_symbol_table (bfd * abfd)
amt = obj_raw_syment_count (abfd);
amt *= sizeof (unsigned int);
table_ptr = (unsigned int *) bfd_alloc (abfd, amt);
table_ptr = (unsigned int *) bfd_zalloc (abfd, amt);
if (table_ptr == NULL)
return FALSE;
@@ -4690,14 +4765,17 @@ coff_slurp_symbol_table (bfd * abfd)
{
combined_entry_type *src = native_symbols + this_index;
table_ptr[this_index] = number_of_symbols;
dst->symbol.the_bfd = abfd;
dst->symbol.the_bfd = abfd;
BFD_ASSERT (src->is_sym);
dst->symbol.name = (char *) (src->u.syment._n._n_n._n_offset);
/* We use the native name field to point to the cached field. */
src->u.syment._n._n_n._n_zeroes = (bfd_hostptr_t) dst;
dst->symbol.section = coff_section_from_bfd_index (abfd,
src->u.syment.n_scnum);
dst->symbol.flags = 0;
/* PR 17512: file: 079-7098-0.001:0.1. */
dst->symbol.value = 0;
dst->done_lineno = FALSE;
switch (src->u.syment.n_sclass)
@@ -4971,22 +5049,23 @@ coff_slurp_symbol_table (bfd * abfd)
#if defined(TIC80COFF) || defined(TICOFF)
case C_UEXT: /* Tentative external definition. */
#endif
case C_EXTLAB: /* External load time label. */
case C_HIDDEN: /* Ext symbol in dmert public lib. */
default:
(*_bfd_error_handler)
(_("%B: Unrecognized storage class %d for %s symbol `%s'"),
abfd, src->u.syment.n_sclass,
dst->symbol.section->name, dst->symbol.name);
ret = FALSE;
case C_EXTLAB: /* External load time label. */
case C_HIDDEN: /* Ext symbol in dmert public lib. */
dst->symbol.flags = BSF_DEBUGGING;
dst->symbol.value = (src->u.syment.n_value);
break;
}
dst->native = src;
dst->symbol.udata.i = 0;
dst->lineno = NULL;
this_index += (src->u.syment.n_numaux) + 1;
dst++;
number_of_symbols++;
@@ -5005,12 +5084,13 @@ coff_slurp_symbol_table (bfd * abfd)
p = abfd->sections;
while (p)
{
coff_slurp_line_table (abfd, p);
if (! coff_slurp_line_table (abfd, p))
return FALSE;
p = p->next;
}
}
return TRUE;
return ret;
}
/* Classify a COFF symbol. A couple of targets have globally visible
@@ -5069,13 +5149,13 @@ coff_classify_symbol (bfd *abfd,
if (syment->n_value == 0)
{
asection *sec;
char buf[SYMNMLEN + 1];
sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
if (sec != NULL
&& (strcmp (bfd_get_section_name (abfd, sec),
_bfd_coff_internal_syment_name (abfd, syment, buf))
== 0))
char * name;
char buf[SYMNMLEN + 1];
name = _bfd_coff_internal_syment_name (abfd, syment, buf)
sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
if (sec != NULL && name != NULL
&& (strcmp (bfd_get_section_name (abfd, sec), name) == 0))
return COFF_SYMBOL_PE_SECTION;
}
#endif
@@ -5146,6 +5226,7 @@ SUBSUBSECTION
else if (ptr) \
coffsym = coff_symbol_from (abfd, ptr); \
if (coffsym != NULL \
&& coffsym->native->is_sym \
&& coffsym->native->u.syment.n_scnum == 0) \
cache_ptr->addend = 0; \
else if (ptr && bfd_asymbol_bfd (ptr) == abfd \
@@ -5268,7 +5349,7 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols)
static reloc_howto_type *
coff_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec ATTRIBUTE_UNUSED,
struct internal_reloc *rel,
struct internal_reloc *rel ATTRIBUTE_UNUSED,
struct coff_link_hash_entry *h ATTRIBUTE_UNUSED,
struct internal_syment *sym ATTRIBUTE_UNUSED,
bfd_vma *addendp ATTRIBUTE_UNUSED)
@@ -5360,10 +5441,6 @@ dummy_reloc16_extra_cases (bfd *abfd ATTRIBUTE_UNUSED,
}
#endif
#ifndef coff_bfd_link_hash_table_free
#define coff_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
#endif
/* If coff_relocate_section is defined, we can use the optimized COFF
backend linker. Otherwise we must continue to use the old linker. */
@@ -5497,6 +5574,7 @@ static bfd_coff_backend_data bfd_coff_std_swap_table ATTRIBUTE_UNUSED =
#else
2,
#endif
32768,
coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in,
coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook,
coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook,
@@ -5537,6 +5615,7 @@ static bfd_coff_backend_data ticoff0_swap_table =
#else
2,
#endif
32768,
coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in,
coff_SWAP_reloc_in, ticoff0_bad_format_hook, coff_set_arch_mach_hook,
coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook,
@@ -5578,6 +5657,7 @@ static bfd_coff_backend_data ticoff1_swap_table =
#else
2,
#endif
32768,
coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in,
coff_SWAP_reloc_in, ticoff1_bad_format_hook, coff_set_arch_mach_hook,
coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook,
@@ -5591,6 +5671,253 @@ static bfd_coff_backend_data ticoff1_swap_table =
};
#endif
#ifdef COFF_WITH_PE_BIGOBJ
/* The UID for bigobj files. */
static const char header_bigobj_classid[16] =
{
0xC7, 0xA1, 0xBA, 0xD1,
0xEE, 0xBA,
0xa9, 0x4b,
0xAF, 0x20,
0xFA, 0xF6, 0x6A, 0xA4, 0xDC, 0xB8
};
/* Swap routines. */
static void
coff_bigobj_swap_filehdr_in (bfd * abfd, void * src, void * dst)
{
struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_src =
(struct external_ANON_OBJECT_HEADER_BIGOBJ *) src;
struct internal_filehdr *filehdr_dst = (struct internal_filehdr *) dst;
filehdr_dst->f_magic = H_GET_16 (abfd, filehdr_src->Machine);
filehdr_dst->f_nscns = H_GET_32 (abfd, filehdr_src->NumberOfSections);
filehdr_dst->f_timdat = H_GET_32 (abfd, filehdr_src->TimeDateStamp);
filehdr_dst->f_symptr =
GET_FILEHDR_SYMPTR (abfd, filehdr_src->PointerToSymbolTable);
filehdr_dst->f_nsyms = H_GET_32 (abfd, filehdr_src->NumberOfSymbols);
filehdr_dst->f_opthdr = 0;
filehdr_dst->f_flags = 0;
/* Check other magic numbers. */
if (H_GET_16 (abfd, filehdr_src->Sig1) != IMAGE_FILE_MACHINE_UNKNOWN
|| H_GET_16 (abfd, filehdr_src->Sig2) != 0xffff
|| H_GET_16 (abfd, filehdr_src->Version) != 2
|| memcmp (filehdr_src->ClassID, header_bigobj_classid, 16) != 0)
filehdr_dst->f_opthdr = 0xffff;
/* Note that CLR metadata are ignored. */
}
static unsigned int
coff_bigobj_swap_filehdr_out (bfd *abfd, void * in, void * out)
{
struct internal_filehdr *filehdr_in = (struct internal_filehdr *) in;
struct external_ANON_OBJECT_HEADER_BIGOBJ *filehdr_out =
(struct external_ANON_OBJECT_HEADER_BIGOBJ *) out;
memset (filehdr_out, 0, sizeof (*filehdr_out));
H_PUT_16 (abfd, IMAGE_FILE_MACHINE_UNKNOWN, filehdr_out->Sig1);
H_PUT_16 (abfd, 0xffff, filehdr_out->Sig2);
H_PUT_16 (abfd, 2, filehdr_out->Version);
memcpy (filehdr_out->ClassID, header_bigobj_classid, 16);
H_PUT_16 (abfd, filehdr_in->f_magic, filehdr_out->Machine);
H_PUT_32 (abfd, filehdr_in->f_nscns, filehdr_out->NumberOfSections);
H_PUT_32 (abfd, filehdr_in->f_timdat, filehdr_out->TimeDateStamp);
PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr,
filehdr_out->PointerToSymbolTable);
H_PUT_32 (abfd, filehdr_in->f_nsyms, filehdr_out->NumberOfSymbols);
return bfd_coff_filhsz (abfd);
}
static void
coff_bigobj_swap_sym_in (bfd * abfd, void * ext1, void * in1)
{
SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) ext1;
struct internal_syment *in = (struct internal_syment *) in1;
if (ext->e.e_name[0] == 0)
{
in->_n._n_n._n_zeroes = 0;
in->_n._n_n._n_offset = H_GET_32 (abfd, ext->e.e.e_offset);
}
else
{
#if SYMNMLEN != E_SYMNMLEN
#error we need to cope with truncating or extending SYMNMLEN
#else
memcpy (in->_n._n_name, ext->e.e_name, SYMNMLEN);
#endif
}
in->n_value = H_GET_32 (abfd, ext->e_value);
in->n_scnum = H_GET_32 (abfd, ext->e_scnum);
in->n_type = H_GET_16 (abfd, ext->e_type);
in->n_sclass = H_GET_8 (abfd, ext->e_sclass);
in->n_numaux = H_GET_8 (abfd, ext->e_numaux);
}
static unsigned int
coff_bigobj_swap_sym_out (bfd * abfd, void * inp, void * extp)
{
struct internal_syment *in = (struct internal_syment *) inp;
SYMENT_BIGOBJ *ext = (SYMENT_BIGOBJ *) extp;
if (in->_n._n_name[0] == 0)
{
H_PUT_32 (abfd, 0, ext->e.e.e_zeroes);
H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e.e.e_offset);
}
else
{
#if SYMNMLEN != E_SYMNMLEN
#error we need to cope with truncating or extending SYMNMLEN
#else
memcpy (ext->e.e_name, in->_n._n_name, SYMNMLEN);
#endif
}
H_PUT_32 (abfd, in->n_value, ext->e_value);
H_PUT_32 (abfd, in->n_scnum, ext->e_scnum);
H_PUT_16 (abfd, in->n_type, ext->e_type);
H_PUT_8 (abfd, in->n_sclass, ext->e_sclass);
H_PUT_8 (abfd, in->n_numaux, ext->e_numaux);
return SYMESZ_BIGOBJ;
}
static void
coff_bigobj_swap_aux_in (bfd *abfd,
void * ext1,
int type,
int in_class,
int indx,
int numaux,
void * in1)
{
AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) ext1;
union internal_auxent *in = (union internal_auxent *) in1;
switch (in_class)
{
case C_FILE:
if (numaux > 1)
{
if (indx == 0)
memcpy (in->x_file.x_fname, ext->File.Name,
numaux * sizeof (AUXENT_BIGOBJ));
}
else
memcpy (in->x_file.x_fname, ext->File.Name, sizeof (ext->File.Name));
break;
case C_STAT:
case C_LEAFSTAT:
case C_HIDDEN:
if (type == T_NULL)
{
in->x_scn.x_scnlen = H_GET_32 (abfd, ext->Section.Length);
in->x_scn.x_nreloc =
H_GET_16 (abfd, ext->Section.NumberOfRelocations);
in->x_scn.x_nlinno =
H_GET_16 (abfd, ext->Section.NumberOfLinenumbers);
in->x_scn.x_checksum = H_GET_32 (abfd, ext->Section.Checksum);
in->x_scn.x_associated = H_GET_16 (abfd, ext->Section.Number)
| (H_GET_16 (abfd, ext->Section.HighNumber) << 16);
in->x_scn.x_comdat = H_GET_8 (abfd, ext->Section.Selection);
return;
}
break;
default:
in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->Sym.WeakDefaultSymIndex);
/* Characteristics is ignored. */
break;
}
}
static unsigned int
coff_bigobj_swap_aux_out (bfd * abfd,
void * inp,
int type,
int in_class,
int indx ATTRIBUTE_UNUSED,
int numaux ATTRIBUTE_UNUSED,
void * extp)
{
union internal_auxent * in = (union internal_auxent *) inp;
AUXENT_BIGOBJ *ext = (AUXENT_BIGOBJ *) extp;
memset (ext, 0, AUXESZ);
switch (in_class)
{
case C_FILE:
memcpy (ext->File.Name, in->x_file.x_fname, sizeof (ext->File.Name));
return AUXESZ;
case C_STAT:
case C_LEAFSTAT:
case C_HIDDEN:
if (type == T_NULL)
{
H_PUT_32 (abfd, in->x_scn.x_scnlen, ext->Section.Length);
H_PUT_16 (abfd, in->x_scn.x_nreloc,
ext->Section.NumberOfRelocations);
H_PUT_16 (abfd, in->x_scn.x_nlinno,
ext->Section.NumberOfLinenumbers);
H_PUT_32 (abfd, in->x_scn.x_checksum, ext->Section.Checksum);
H_PUT_16 (abfd, in->x_scn.x_associated & 0xffff,
ext->Section.Number);
H_PUT_16 (abfd, (in->x_scn.x_associated >> 16),
ext->Section.HighNumber);
H_PUT_8 (abfd, in->x_scn.x_comdat, ext->Section.Selection);
return AUXESZ;
}
break;
}
H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->Sym.WeakDefaultSymIndex);
H_PUT_32 (abfd, 1, ext->Sym.WeakSearchType);
return AUXESZ;
}
static bfd_coff_backend_data bigobj_swap_table =
{
coff_bigobj_swap_aux_in, coff_bigobj_swap_sym_in, coff_SWAP_lineno_in,
coff_bigobj_swap_aux_out, coff_bigobj_swap_sym_out,
coff_SWAP_lineno_out, coff_SWAP_reloc_out,
coff_bigobj_swap_filehdr_out, coff_SWAP_aouthdr_out,
coff_SWAP_scnhdr_out,
FILHSZ_BIGOBJ, AOUTSZ, SCNHSZ, SYMESZ_BIGOBJ, AUXESZ_BIGOBJ,
RELSZ, LINESZ, FILNMLEN_BIGOBJ,
TRUE,
COFF_DEFAULT_LONG_SECTION_NAMES,
COFF_DEFAULT_SECTION_ALIGNMENT_POWER,
FALSE,
2,
1U << 31,
coff_bigobj_swap_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in,
coff_SWAP_reloc_in, coff_bad_format_hook, coff_set_arch_mach_hook,
coff_mkobject_hook, styp_to_sec_flags, coff_set_alignment_hook,
coff_slurp_symbol_table, symname_in_debug_hook, coff_pointerize_aux_hook,
coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate,
coff_classify_symbol, coff_compute_section_file_positions,
coff_start_final_link, coff_relocate_section, coff_rtype_to_howto,
coff_adjust_symndx, coff_link_add_one_symbol,
coff_link_output_has_begun, coff_final_link_postscript,
bfd_pe_print_pdata /* huh */
};
#endif /* COFF_WITH_PE_BIGOBJ */
#ifndef coff_close_and_cleanup
#define coff_close_and_cleanup _bfd_generic_close_and_cleanup
#endif
+169 -75
View File
@@ -1,7 +1,5 @@
/* Support for the generic parts of COFF, for BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -86,9 +84,8 @@ make_a_section_from_file (bfd *abfd,
strings = _bfd_coff_read_string_table (abfd);
if (strings == NULL)
return FALSE;
/* FIXME: For extra safety, we should make sure that
strindex does not run us past the end, but right now we
don't know the length of the string table. */
if ((bfd_size_type)(strindex + 2) >= obj_coff_strings_len (abfd))
return FALSE;
strings += strindex;
name = (char *) bfd_alloc (abfd,
(bfd_size_type) strlen (strings) + 1 + 1);
@@ -149,8 +146,9 @@ make_a_section_from_file (bfd *abfd,
/* Compress/decompress DWARF debug sections with names: .debug_* and
.zdebug_*, after the section flags is set. */
if ((flags & SEC_DEBUGGING)
&& strlen (name) > 7
&& ((name[1] == 'd' && name[6] == '_')
|| (name[1] == 'z' && name[7] == '_')))
|| (strlen (name) > 8 && name[1] == 'z' && name[7] == '_')))
{
enum { nothing, compress, decompress } action = nothing;
char *new_name = NULL;
@@ -368,6 +366,10 @@ coff_object_p (bfd *abfd)
bfd_release (abfd, opthdr);
return NULL;
}
/* PR 17512: file: 11056-1136-0.004. */
if (internal_f.f_opthdr < aoutsz)
memset (((char *) opthdr) + internal_f.f_opthdr, 0, aoutsz - internal_f.f_opthdr);
bfd_coff_swap_aouthdr_in (abfd, opthdr, (void *) &internal_a);
bfd_release (abfd, opthdr);
}
@@ -466,6 +468,11 @@ _bfd_coff_internal_syment_name (bfd *abfd,
if (strings == NULL)
return NULL;
}
/* PR 17910: Only check for string overflow if the length has been set.
Some DLLs, eg those produced by Visual Studio, may not set the length field. */
if (obj_coff_strings_len (abfd) > 0
&& sym->_n._n_n._n_offset >= obj_coff_strings_len (abfd))
return NULL;
return strings + sym->_n._n_n._n_offset;
}
}
@@ -761,13 +768,16 @@ coff_renumber_symbols (bfd *bfd_ptr, int *first_undef)
for (symbol_index = 0; symbol_index < symbol_count; symbol_index++)
{
coff_symbol_type *coff_symbol_ptr = coff_symbol_from (bfd_ptr, symbol_ptr_ptr[symbol_index]);
coff_symbol_type *coff_symbol_ptr;
coff_symbol_ptr = coff_symbol_from (bfd_ptr, symbol_ptr_ptr[symbol_index]);
symbol_ptr_ptr[symbol_index]->udata.i = symbol_index;
if (coff_symbol_ptr && coff_symbol_ptr->native)
{
combined_entry_type *s = coff_symbol_ptr->native;
int i;
BFD_ASSERT (s->is_sym);
if (s->u.syment.n_sclass == C_FILE)
{
if (last_file != NULL)
@@ -804,14 +814,15 @@ coff_mangle_symbols (bfd *bfd_ptr)
for (symbol_index = 0; symbol_index < symbol_count; symbol_index++)
{
coff_symbol_type *coff_symbol_ptr =
coff_symbol_from (bfd_ptr, symbol_ptr_ptr[symbol_index]);
coff_symbol_type *coff_symbol_ptr;
coff_symbol_ptr = coff_symbol_from (bfd_ptr, symbol_ptr_ptr[symbol_index]);
if (coff_symbol_ptr && coff_symbol_ptr->native)
{
int i;
combined_entry_type *s = coff_symbol_ptr->native;
BFD_ASSERT (s->is_sym);
if (s->fix_value)
{
/* FIXME: We should use a union here. */
@@ -835,6 +846,8 @@ coff_mangle_symbols (bfd *bfd_ptr)
for (i = 0; i < s->u.syment.n_numaux; i++)
{
combined_entry_type *a = s + i + 1;
BFD_ASSERT (! a->is_sym);
if (a->fix_tag)
{
a->u.auxent.x_sym.x_tagndx.l =
@@ -878,6 +891,7 @@ coff_fix_symbol_name (bfd *abfd,
}
name_length = strlen (name);
BFD_ASSERT (native->is_sym);
if (native->u.syment.n_sclass == C_FILE
&& native->u.syment.n_numaux > 0)
{
@@ -893,6 +907,7 @@ coff_fix_symbol_name (bfd *abfd,
else
strncpy (native->u.syment._n._n_name, ".file", SYMNMLEN);
BFD_ASSERT (! (native + 1)->is_sym);
auxent = &(native + 1)->u.auxent;
filnmlen = bfd_coff_filnmlen (abfd);
@@ -995,6 +1010,8 @@ coff_write_symbol (bfd *abfd,
void * buf;
bfd_size_type symesz;
BFD_ASSERT (native->is_sym);
if (native->u.syment.n_sclass == C_FILE)
symbol->flags |= BSF_DEBUGGING;
@@ -1035,6 +1052,7 @@ coff_write_symbol (bfd *abfd,
return FALSE;
for (j = 0; j < native->u.syment.n_numaux; j++)
{
BFD_ASSERT (! (native + j + 1)->is_sym);
bfd_coff_swap_aux_out (abfd,
&((native + j + 1)->u.auxent),
type, n_sclass, (int) j,
@@ -1080,10 +1098,12 @@ coff_write_alien_symbol (bfd *abfd,
{
symbol->name = "";
if (isym != NULL)
memset (isym, 0, sizeof(*isym));
memset (isym, 0, sizeof (*isym));
return TRUE;
}
native = dummy;
native->is_sym = TRUE;
native[1].is_sym = FALSE;
native->u.syment.n_type = T_NULL;
native->u.syment.n_flags = 0;
native->u.syment.n_numaux = 0;
@@ -1110,7 +1130,7 @@ coff_write_alien_symbol (bfd *abfd,
name to keep it from being put in the string table. */
symbol->name = "";
if (isym != NULL)
memset (isym, 0, sizeof(*isym));
memset (isym, 0, sizeof (*isym));
return TRUE;
}
else
@@ -1169,6 +1189,7 @@ coff_write_native_symbol (bfd *abfd,
return TRUE;
}
BFD_ASSERT (native->is_sym);
/* If this symbol has an associated line number, we must store the
symbol index in the line number field. We also tag the auxent to
point to the right place in the lineno table. */
@@ -1278,8 +1299,9 @@ coff_write_symbols (bfd *abfd)
symbol which has no associated section and we do not have to
worry about this, all we need to know is that it is local. */
current_error_handler = bfd_set_error_handler (null_error_handler);
BFD_ASSERT (c_symbol->native->is_sym);
sym_class = bfd_coff_classify_symbol (abfd,
&c_symbol->native->u.syment);
&c_symbol->native->u.syment);
(void) bfd_set_error_handler (current_error_handler);
n_sclass = &c_symbol->native->u.syment.n_sclass;
@@ -1370,6 +1392,9 @@ coff_write_symbols (bfd *abfd)
file name, nor does it go in the .debug section. */
maxlen = bfd_coff_force_symnames_in_strings (abfd) ? 0 : SYMNMLEN;
else if (! c_symbol->native->is_sym)
maxlen = bfd_coff_force_symnames_in_strings (abfd) ? 0 : SYMNMLEN;
else if (bfd_coff_symname_in_debug (abfd,
&c_symbol->native->u.syment))
/* This symbol name is in the XCOFF .debug section.
@@ -1460,6 +1485,7 @@ coff_write_linenumbers (bfd *abfd)
{
/* Found a linenumber entry, output. */
struct internal_lineno out;
memset ((void *) & out, 0, sizeof (out));
out.l_lnno = 0;
out.l_addr.l_symndx = l->u.offset;
@@ -1507,6 +1533,7 @@ coff_pointerize_aux (bfd *abfd,
unsigned int type = symbol->u.syment.n_type;
unsigned int n_sclass = symbol->u.syment.n_sclass;
BFD_ASSERT (symbol->is_sym);
if (coff_backend_info (abfd)->_bfd_coff_pointerize_aux_hook)
{
if ((*coff_backend_info (abfd)->_bfd_coff_pointerize_aux_hook)
@@ -1520,6 +1547,7 @@ coff_pointerize_aux (bfd *abfd,
if (n_sclass == C_FILE)
return;
BFD_ASSERT (! auxent->is_sym);
/* Otherwise patch up. */
#define N_TMASK coff_data (abfd)->local_n_tmask
#define N_BTSHFT coff_data (abfd)->local_n_btshft
@@ -1547,7 +1575,7 @@ coff_pointerize_aux (bfd *abfd,
we didn't want to go to the trouble until someone needed it. */
static char *
build_debug_section (bfd *abfd)
build_debug_section (bfd *abfd, asection ** sect_return)
{
char *debug_section;
file_ptr position;
@@ -1575,6 +1603,8 @@ build_debug_section (bfd *abfd)
|| bfd_bread (debug_section, sec_size, abfd) != sec_size
|| bfd_seek (abfd, position, SEEK_SET) != 0)
return NULL;
* sect_return = sect;
return debug_section;
}
@@ -1637,7 +1667,9 @@ _bfd_coff_get_external_symbols (bfd *abfd)
/* Read in the external strings. The strings are not loaded until
they are needed. This is because we have no simple way of
detecting a missing string table in an archive. */
detecting a missing string table in an archive. If the strings
are loaded then the STRINGS and STRINGS_LEN fields in the
coff_tdata structure will be set. */
const char *
_bfd_coff_read_string_table (bfd *abfd)
@@ -1687,10 +1719,16 @@ _bfd_coff_read_string_table (bfd *abfd)
return NULL;
}
strings = (char *) bfd_malloc (strsize);
strings = (char *) bfd_malloc (strsize + 1);
if (strings == NULL)
return NULL;
/* PR 17521 file: 079-54929-0.004.
A corrupt file could contain an index that points into the first
STRING_SIZE_SIZE bytes of the string table, so make sure that
they are zero. */
memset (strings, 0, STRING_SIZE_SIZE);
if (bfd_bread (strings + STRING_SIZE_SIZE, strsize - STRING_SIZE_SIZE, abfd)
!= strsize - STRING_SIZE_SIZE)
{
@@ -1699,7 +1737,9 @@ _bfd_coff_read_string_table (bfd *abfd)
}
obj_coff_strings (abfd) = strings;
obj_coff_strings_len (abfd) = strsize;
/* Terminate the string table, just in case. */
strings[strsize] = 0;
return strings;
}
@@ -1719,6 +1759,7 @@ _bfd_coff_free_symbols (bfd *abfd)
{
free (obj_coff_strings (abfd));
obj_coff_strings (abfd) = NULL;
obj_coff_strings_len (abfd) = 0;
}
return TRUE;
}
@@ -1739,21 +1780,22 @@ coff_get_normalized_symtab (bfd *abfd)
char *raw_src;
char *raw_end;
const char *string_table = NULL;
char *debug_section = NULL;
asection * debug_sec = NULL;
char *debug_sec_data = NULL;
bfd_size_type size;
if (obj_raw_syments (abfd) != NULL)
return obj_raw_syments (abfd);
if (! _bfd_coff_get_external_symbols (abfd))
return NULL;
size = obj_raw_syment_count (abfd) * sizeof (combined_entry_type);
internal = (combined_entry_type *) bfd_zalloc (abfd, size);
if (internal == NULL && size != 0)
return NULL;
internal_end = internal + obj_raw_syment_count (abfd);
if (! _bfd_coff_get_external_symbols (abfd))
return NULL;
raw_src = (char *) obj_coff_external_syms (abfd);
/* Mark the end of the symbols. */
@@ -1768,23 +1810,43 @@ coff_get_normalized_symtab (bfd *abfd)
raw_src < raw_end;
raw_src += symesz, internal_ptr++)
{
unsigned int i;
bfd_coff_swap_sym_in (abfd, (void *) raw_src,
(void *) & internal_ptr->u.syment);
symbol_ptr = internal_ptr;
internal_ptr->is_sym = TRUE;
/* PR 17512: file: 1353-1166-0.004. */
if (symbol_ptr->u.syment.n_sclass == C_FILE
&& symbol_ptr->u.syment.n_numaux > 0
&& raw_src + symesz + symbol_ptr->u.syment.n_numaux
* symesz > raw_end)
{
bfd_release (abfd, internal);
return NULL;
}
for (i = 0;
i < symbol_ptr->u.syment.n_numaux;
i++)
{
internal_ptr++;
/* PR 17512: Prevent buffer overrun. */
if (internal_ptr >= internal_end)
{
bfd_release (abfd, internal);
return NULL;
}
raw_src += symesz;
bfd_coff_swap_aux_in (abfd, (void *) raw_src,
symbol_ptr->u.syment.n_type,
symbol_ptr->u.syment.n_sclass,
(int) i, symbol_ptr->u.syment.n_numaux,
&(internal_ptr->u.auxent));
internal_ptr->is_sym = FALSE;
coff_pointerize_aux (abfd, internal, symbol_ptr, i,
internal_ptr);
}
@@ -1798,12 +1860,18 @@ coff_get_normalized_symtab (bfd *abfd)
for (internal_ptr = internal; internal_ptr < internal_end;
internal_ptr++)
{
BFD_ASSERT (internal_ptr->is_sym);
if (internal_ptr->u.syment.n_sclass == C_FILE
&& internal_ptr->u.syment.n_numaux > 0)
{
combined_entry_type * aux = internal_ptr + 1;
/* Make a file symbol point to the name in the auxent, since
the text ".file" is redundant. */
if ((internal_ptr + 1)->u.auxent.x_file.x_n.x_zeroes == 0)
BFD_ASSERT (! aux->is_sym);
if (aux->u.auxent.x_file.x_n.x_zeroes == 0)
{
/* The filename is a long one, point into the string table. */
if (string_table == NULL)
@@ -1813,10 +1881,12 @@ coff_get_normalized_symtab (bfd *abfd)
return NULL;
}
internal_ptr->u.syment._n._n_n._n_offset =
((bfd_hostptr_t)
(string_table
+ (internal_ptr + 1)->u.auxent.x_file.x_n.x_offset));
if ((bfd_size_type)(aux->u.auxent.x_file.x_n.x_offset)
>= obj_coff_strings_len (abfd))
internal_ptr->u.syment._n._n_n._n_offset = (bfd_hostptr_t) _("<corrupt>");
else
internal_ptr->u.syment._n._n_n._n_offset =
(bfd_hostptr_t) (string_table + (aux->u.auxent.x_file.x_n.x_offset));
}
else
{
@@ -1826,15 +1896,15 @@ coff_get_normalized_symtab (bfd *abfd)
if (internal_ptr->u.syment.n_numaux > 1
&& coff_data (abfd)->pe)
internal_ptr->u.syment._n._n_n._n_offset =
((bfd_hostptr_t)
copy_name (abfd,
(internal_ptr + 1)->u.auxent.x_file.x_fname,
internal_ptr->u.syment.n_numaux * symesz));
(bfd_hostptr_t)
copy_name (abfd,
aux->u.auxent.x_file.x_fname,
internal_ptr->u.syment.n_numaux * symesz);
else
internal_ptr->u.syment._n._n_n._n_offset =
((bfd_hostptr_t)
copy_name (abfd,
(internal_ptr + 1)->u.auxent.x_file.x_fname,
aux->u.auxent.x_file.x_fname,
(size_t) bfd_coff_filnmlen (abfd)));
}
}
@@ -1871,18 +1941,33 @@ coff_get_normalized_symtab (bfd *abfd)
if (string_table == NULL)
return NULL;
}
internal_ptr->u.syment._n._n_n._n_offset =
((bfd_hostptr_t)
(string_table
+ internal_ptr->u.syment._n._n_n._n_offset));
if (internal_ptr->u.syment._n._n_n._n_offset >= obj_coff_strings_len (abfd)
|| string_table + internal_ptr->u.syment._n._n_n._n_offset < string_table)
internal_ptr->u.syment._n._n_n._n_offset = (bfd_hostptr_t) _("<corrupt>");
else
internal_ptr->u.syment._n._n_n._n_offset =
((bfd_hostptr_t)
(string_table
+ internal_ptr->u.syment._n._n_n._n_offset));
}
else
{
/* Long name in debug section. Very similar. */
if (debug_section == NULL)
debug_section = build_debug_section (abfd);
internal_ptr->u.syment._n._n_n._n_offset = (bfd_hostptr_t)
(debug_section + internal_ptr->u.syment._n._n_n._n_offset);
if (debug_sec_data == NULL)
debug_sec_data = build_debug_section (abfd, & debug_sec);
if (debug_sec_data != NULL)
{
BFD_ASSERT (debug_sec != NULL);
/* PR binutils/17512: Catch out of range offsets into the debug data. */
if (internal_ptr->u.syment._n._n_n._n_offset > debug_sec->size
|| debug_sec_data + internal_ptr->u.syment._n._n_n._n_offset < debug_sec_data)
internal_ptr->u.syment._n._n_n._n_offset = (bfd_hostptr_t) _("<corrupt>");
else
internal_ptr->u.syment._n._n_n._n_offset = (bfd_hostptr_t)
(debug_sec_data + internal_ptr->u.syment._n._n_n._n_offset);
}
else
internal_ptr->u.syment._n._n_n._n_offset = (bfd_hostptr_t) "";
}
}
internal_ptr += internal_ptr->u.syment.n_numaux;
@@ -1915,7 +2000,7 @@ coff_make_empty_symbol (bfd *abfd)
if (new_symbol == NULL)
return NULL;
new_symbol->symbol.section = 0;
new_symbol->native = 0;
new_symbol->native = NULL;
new_symbol->lineno = NULL;
new_symbol->done_lineno = FALSE;
new_symbol->symbol.the_bfd = abfd;
@@ -1941,6 +2026,7 @@ coff_bfd_make_debug_symbol (bfd *abfd,
new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
if (!new_symbol->native)
return NULL;
new_symbol->native->is_sym = TRUE;
new_symbol->symbol.section = bfd_abs_section_ptr;
new_symbol->symbol.flags = BSF_DEBUGGING;
new_symbol->lineno = NULL;
@@ -1956,7 +2042,8 @@ coff_get_symbol_info (bfd *abfd, asymbol *symbol, symbol_info *ret)
bfd_symbol_info (symbol, ret);
if (coffsymbol (symbol)->native != NULL
&& coffsymbol (symbol)->native->fix_value)
&& coffsymbol (symbol)->native->fix_value
&& coffsymbol (symbol)->native->is_sym)
ret->value = coffsymbol (symbol)->native->u.syment.n_value -
(bfd_hostptr_t) obj_raw_syments (abfd);
}
@@ -1971,7 +2058,8 @@ bfd_coff_get_syment (bfd *abfd,
coff_symbol_type *csym;
csym = coff_symbol_from (abfd, symbol);
if (csym == NULL || csym->native == NULL)
if (csym == NULL || csym->native == NULL
|| ! csym->native->is_sym)
{
bfd_set_error (bfd_error_invalid_operation);
return FALSE;
@@ -2003,6 +2091,7 @@ bfd_coff_get_auxent (bfd *abfd,
if (csym == NULL
|| csym->native == NULL
|| ! csym->native->is_sym
|| indx >= csym->native->u.syment.n_numaux)
{
bfd_set_error (bfd_error_invalid_operation);
@@ -2011,6 +2100,7 @@ bfd_coff_get_auxent (bfd *abfd,
ent = csym->native + indx + 1;
BFD_ASSERT (! ent->is_sym);
*pauxent = ent->u.auxent;
if (ent->fix_tag)
@@ -2064,6 +2154,15 @@ coff_print_symbol (bfd *abfd,
fprintf (file, "[%3ld]", (long) (combined - root));
/* PR 17512: file: 079-33786-0.001:0.1. */
if (combined < obj_raw_syments (abfd)
|| combined >= obj_raw_syments (abfd) + obj_raw_syment_count (abfd))
{
fprintf (file, _("<corrupt info> %s"), symbol->name);
break;
}
BFD_ASSERT (combined->is_sym);
if (! combined->fix_value)
val = (bfd_vma) combined->u.syment.n_value;
else
@@ -2083,6 +2182,7 @@ coff_print_symbol (bfd *abfd,
combined_entry_type *auxp = combined + aux + 1;
long tagndx;
BFD_ASSERT (! auxp->is_sym);
if (auxp->fix_tag)
tagndx = auxp->u.auxent.x_sym.x_tagndx.p - root;
else
@@ -2157,8 +2257,11 @@ coff_print_symbol (bfd *abfd,
l++;
while (l->line_number)
{
fprintf (file, "\n%4d : ", l->line_number);
bfd_fprintf_vma (abfd, file, l->u.offset + symbol->section->vma);
if (l->line_number > 0)
{
fprintf (file, "\n%4d : ", l->line_number);
bfd_fprintf_vma (abfd, file, l->u.offset + symbol->section->vma);
}
l++;
}
}
@@ -2193,13 +2296,13 @@ _bfd_coff_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED,
bfd_boolean
coff_find_nearest_line_with_names (bfd *abfd,
const struct dwarf_debug_section *debug_sections,
asection *section,
asymbol **symbols,
asection *section,
bfd_vma offset,
const char **filename_ptr,
const char **functionname_ptr,
unsigned int *line_ptr)
unsigned int *line_ptr,
const struct dwarf_debug_section *debug_sections)
{
bfd_boolean found;
unsigned int i;
@@ -2224,10 +2327,9 @@ coff_find_nearest_line_with_names (bfd *abfd,
return TRUE;
/* Also try examining DWARF2 debugging information. */
if (_bfd_dwarf2_find_nearest_line (abfd, debug_sections,
section, symbols, offset,
if (_bfd_dwarf2_find_nearest_line (abfd, symbols, NULL, section, offset,
filename_ptr, functionname_ptr,
line_ptr, NULL, 0,
line_ptr, NULL, debug_sections, 0,
&coff_data(abfd)->dwarf2_find_line_info))
return TRUE;
@@ -2250,6 +2352,7 @@ coff_find_nearest_line_with_names (bfd *abfd,
pend = p + cof->raw_syment_count;
while (p < pend)
{
BFD_ASSERT (p->is_sym);
if (p->u.syment.n_sclass == C_FILE)
break;
p += 1 + p->u.syment.n_numaux;
@@ -2273,6 +2376,7 @@ coff_find_nearest_line_with_names (bfd *abfd,
p2 < pend;
p2 += 1 + p2->u.syment.n_numaux)
{
BFD_ASSERT (p2->is_sym);
if (p2->u.syment.n_scnum > 0
&& (section
== coff_section_from_bfd_index (abfd,
@@ -2284,6 +2388,8 @@ coff_find_nearest_line_with_names (bfd *abfd,
break;
}
}
if (p2 >= pend)
break;
file_addr = (bfd_vma) p2->u.syment.n_value;
/* PR 11512: Include the section address of the function name symbol. */
@@ -2348,6 +2454,8 @@ coff_find_nearest_line_with_names (bfd *abfd,
if (coff->native)
{
combined_entry_type *s = coff->native;
BFD_ASSERT (s->is_sym);
s = s + 1 + s->u.syment.n_numaux;
/* In XCOFF a debugging symbol can follow the
@@ -2360,6 +2468,7 @@ coff_find_nearest_line_with_names (bfd *abfd,
{
/* The linenumber is stored in the auxent. */
union internal_auxent *a = &((s + 1)->u.auxent);
line_base = a->x_sym.x_misc.x_lnsz.x_lnno;
*line_ptr = line_base;
}
@@ -2409,37 +2518,21 @@ coff_find_nearest_line_with_names (bfd *abfd,
bfd_boolean
coff_find_nearest_line (bfd *abfd,
asection *section,
asymbol **symbols,
asection *section,
bfd_vma offset,
const char **filename_ptr,
const char **functionname_ptr,
unsigned int *line_ptr)
unsigned int *line_ptr,
unsigned int *discriminator_ptr)
{
return coff_find_nearest_line_with_names (abfd, dwarf_debug_sections,
section, symbols, offset,
if (discriminator_ptr)
*discriminator_ptr = 0;
return coff_find_nearest_line_with_names (abfd, symbols, section, offset,
filename_ptr, functionname_ptr,
line_ptr);
line_ptr, dwarf_debug_sections);
}
bfd_boolean
coff_find_nearest_line_discriminator (bfd *abfd,
asection *section,
asymbol **symbols,
bfd_vma offset,
const char **filename_ptr,
const char **functionname_ptr,
unsigned int *line_ptr,
unsigned int *discriminator)
{
*discriminator = 0;
return coff_find_nearest_line_with_names (abfd, dwarf_debug_sections,
section, symbols, offset,
filename_ptr, functionname_ptr,
line_ptr);
}
bfd_boolean
coff_find_inliner_info (bfd *abfd,
const char **filename_ptr,
@@ -2497,6 +2590,7 @@ bfd_coff_set_symbol_class (bfd * abfd,
if (native == NULL)
return FALSE;
native->is_sym = TRUE;
native->u.syment.n_type = T_NULL;
native->u.syment.n_sclass = symbol_class;
+30 -107
View File
@@ -1,6 +1,5 @@
/* COFF specific linker code.
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
Copyright (C) 1994-2014 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -30,9 +29,11 @@
#include "libcoff.h"
#include "safe-ctype.h"
static bfd_boolean coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info);
static bfd_boolean coff_link_check_archive_element (bfd *abfd, struct bfd_link_info *info, bfd_boolean *pneeded);
static bfd_boolean coff_link_add_symbols (bfd *abfd, struct bfd_link_info *info);
static bfd_boolean coff_link_add_object_symbols (bfd *, struct bfd_link_info *);
static bfd_boolean coff_link_check_archive_element
(bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
bfd_boolean *);
static bfd_boolean coff_link_add_symbols (bfd *, struct bfd_link_info *);
/* Return TRUE if SYM is a weak, external symbol. */
#define IS_WEAK_EXTERNAL(abfd, sym) \
@@ -191,74 +192,6 @@ coff_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
return TRUE;
}
/* Look through the symbols to see if this object file should be
included in the link. */
static bfd_boolean
coff_link_check_ar_symbols (bfd *abfd,
struct bfd_link_info *info,
bfd_boolean *pneeded,
bfd **subsbfd)
{
bfd_size_type symesz;
bfd_byte *esym;
bfd_byte *esym_end;
*pneeded = FALSE;
symesz = bfd_coff_symesz (abfd);
esym = (bfd_byte *) obj_coff_external_syms (abfd);
esym_end = esym + obj_raw_syment_count (abfd) * symesz;
while (esym < esym_end)
{
struct internal_syment sym;
enum coff_symbol_classification classification;
bfd_coff_swap_sym_in (abfd, esym, &sym);
classification = bfd_coff_classify_symbol (abfd, &sym);
if (classification == COFF_SYMBOL_GLOBAL
|| classification == COFF_SYMBOL_COMMON)
{
const char *name;
char buf[SYMNMLEN + 1];
struct bfd_link_hash_entry *h;
/* This symbol is externally visible, and is defined by this
object file. */
name = _bfd_coff_internal_syment_name (abfd, &sym, buf);
if (name == NULL)
return FALSE;
h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
/* Auto import. */
if (!h
&& info->pei386_auto_import
&& CONST_STRNEQ (name, "__imp_"))
h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE);
/* We are only interested in symbols that are currently
undefined. If a symbol is currently known to be common,
COFF linkers do not bring in an object file which defines
it. */
if (h != (struct bfd_link_hash_entry *) NULL
&& h->type == bfd_link_hash_undefined)
{
if (!(*info->callbacks
->add_archive_element) (info, abfd, name, subsbfd))
return FALSE;
*pneeded = TRUE;
return TRUE;
}
}
esym += (sym.n_numaux + 1) * symesz;
}
/* We do not need this object file. */
return TRUE;
}
/* Check a single archive element to see if we need to include it in
the link. *PNEEDED is set according to whether this element is
needed in the link or not. This is called via
@@ -267,41 +200,23 @@ coff_link_check_ar_symbols (bfd *abfd,
static bfd_boolean
coff_link_check_archive_element (bfd *abfd,
struct bfd_link_info *info,
struct bfd_link_hash_entry *h,
const char *name,
bfd_boolean *pneeded)
{
bfd *oldbfd;
bfd_boolean needed;
*pneeded = FALSE;
if (!_bfd_coff_get_external_symbols (abfd))
/* We are only interested in symbols that are currently undefined.
If a symbol is currently known to be common, COFF linkers do not
bring in an object file which defines it. */
if (h->type != bfd_link_hash_undefined)
return TRUE;
if (!(*info->callbacks->add_archive_element) (info, abfd, name, &abfd))
return FALSE;
*pneeded = TRUE;
oldbfd = abfd;
if (!coff_link_check_ar_symbols (abfd, info, pneeded, &abfd))
return FALSE;
needed = *pneeded;
if (needed)
{
/* Potentially, the add_archive_element hook may have set a
substitute BFD for us. */
if (abfd != oldbfd)
{
if (!info->keep_memory
&& !_bfd_coff_free_symbols (oldbfd))
return FALSE;
if (!_bfd_coff_get_external_symbols (abfd))
return FALSE;
}
if (!coff_link_add_symbols (abfd, info))
return FALSE;
}
if (!info->keep_memory || !needed)
{
if (!_bfd_coff_free_symbols (abfd))
return FALSE;
}
return TRUE;
return coff_link_add_object_symbols (abfd, info);
}
/* Add all the symbols from an object file to the hash table. */
@@ -861,7 +776,7 @@ _bfd_coff_final_link (bfd *abfd,
the opportunity to clear the output_has_begun fields of all the
input BFD's. */
max_sym_count = 0;
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
{
size_t sz;
@@ -946,7 +861,7 @@ _bfd_coff_final_link (bfd *abfd,
if (flaginfo.info->strip != strip_all && flaginfo.info->discard != discard_all)
{
/* Add local symbols from foreign inputs. */
for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
{
unsigned int i;
@@ -2088,7 +2003,10 @@ _bfd_coff_link_input_bfd (struct coff_final_link_info *flaginfo, bfd *input_bfd)
if (strings == NULL)
return FALSE;
}
filename = strings + auxp->x_file.x_n.x_offset;
if ((bfd_size_type) auxp->x_file.x_n.x_offset >= obj_coff_strings_len (input_bfd))
filename = _("<corrupt>");
else
filename = strings + auxp->x_file.x_n.x_offset;
indx = _bfd_stringtab_add (flaginfo->strtab, filename,
hash, copy);
if (indx == (bfd_size_type) -1)
@@ -2871,7 +2789,7 @@ _bfd_coff_reloc_link_order (bfd *output_bfd,
size = bfd_get_reloc_size (howto);
buf = (bfd_byte *) bfd_zmalloc (size);
if (buf == NULL)
if (buf == NULL && size != 0)
return FALSE;
rstat = _bfd_relocate_contents (howto, output_bfd,
@@ -3060,6 +2978,11 @@ _bfd_coff_generic_relocate_section (bfd *output_bfd,
else
{
sec = sections[symndx];
/* If the output section has been discarded then ignore this reloc. */
if (sec->output_section->vma == 0)
continue;
val = (sec->output_section->vma
+ sec->output_offset
+ sym->n_value);
+1 -3
View File
@@ -1,7 +1,5 @@
/* Generic COFF swapping routines, for BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000,
2001, 2002, 2004, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
+16 -3
View File
@@ -1,6 +1,5 @@
/* Compressed section support (intended for debug sections).
Copyright 2008, 2010, 2011, 2012
Free Software Foundation, Inc.
Copyright (C) 2008-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -25,6 +24,7 @@
#ifdef HAVE_ZLIB_H
#include <zlib.h>
#endif
#include "safe-ctype.h"
#ifdef HAVE_ZLIB_H
static bfd_boolean
@@ -239,6 +239,8 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
#endif
case COMPRESS_SECTION_DONE:
if (sec->contents == NULL)
return FALSE;
if (p == NULL)
{
p = (bfd_byte *) bfd_malloc (sz);
@@ -246,7 +248,9 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
return FALSE;
*ptr = p;
}
memcpy (p, sec->contents, sz);
/* PR 17512; file: 5bc29788. */
if (p != sec->contents)
memcpy (p, sec->contents, sz);
return TRUE;
default:
@@ -304,6 +308,15 @@ bfd_is_section_compressed (bfd *abfd, sec_ptr sec)
compressed = (bfd_get_section_contents (abfd, sec, compressed_buffer, 0, 12)
&& CONST_STRNEQ ((char*) compressed_buffer, "ZLIB"));
/* Check for the pathalogical case of a debug string section that
contains the string ZLIB.... as the first entry. We assume that
no uncompressed .debug_str section would ever be big enough to
have the first byte of its (big-endian) size be non-zero. */
if (compressed
&& strcmp (sec->name, ".debug_str") == 0
&& ISPRINT (compressed_buffer[4]))
compressed = FALSE;
/* Restore compress_status. */
sec->compress_status = saved;
return compressed;
+608 -584
View File
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -1,4 +1,4 @@
/* config.in. Generated from configure.in by autoheader. */
/* config.in. Generated from configure.ac by autoheader. */
/* Check that config.h is #included before system headers
(this works only for glibc, but that should be enough). */
@@ -64,6 +64,10 @@
*/
#undef HAVE_DECL_STPCPY
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
don't. */
#undef HAVE_DECL_STRNLEN
/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
*/
#undef HAVE_DECL_STRSTR
@@ -255,6 +259,9 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define if <sys/procfs.h> has win32_pstatus_t. */
#undef HAVE_WIN32_PSTATUS_T
+470 -384
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.64 for bfd 2.24.
# Generated by GNU Autoconf 2.64 for bfd 2.25.1.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
PACKAGE_VERSION='2.24'
PACKAGE_STRING='bfd 2.24'
PACKAGE_VERSION='2.25.1'
PACKAGE_STRING='bfd 2.25.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1349,7 +1349,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures bfd 2.24 to adapt to many kinds of systems.
\`configure' configures bfd 2.25.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1420,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bfd 2.24:";;
short | recursive ) echo "Configuration of bfd 2.25.1:";;
esac
cat <<\_ACEOF
@@ -1435,7 +1435,7 @@ Optional Features:
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-plugins Enable support for plugins (defaults no)
--enable-plugins Enable support for plugins
--disable-largefile omit support for large files
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
--enable-targets alternative target configurations
@@ -1541,7 +1541,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
bfd configure 2.24
bfd configure 2.25.1
generated by GNU Autoconf 2.64
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2183,7 +2183,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by bfd $as_me 2.24, which was
It was created by bfd $as_me 2.25.1, which was
generated by GNU Autoconf 2.64. Invocation command line was
$ $0 $@
@@ -3991,7 +3991,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
VERSION='2.24'
VERSION='2.25.1'
cat >>confdefs.h <<_ACEOF
@@ -11776,17 +11776,106 @@ CC="$lt_save_CC"
# even in directories otherwise not depending on the $plugins option.
# Check whether --enable-plugins was given.
if test "${enable_plugins+set}" = set; then :
enableval=$enable_plugins; case "${enableval}" in
yes | "") plugins=yes ;;
no) plugins=no ;;
*) plugins=yes ;;
esac
else
plugins=no
maybe_plugins=no
for ac_header in dlfcn.h
do :
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_DLFCN_H 1
_ACEOF
maybe_plugins=yes
fi
done
for ac_header in windows.h
do :
ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
"
if test "x$ac_cv_header_windows_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_WINDOWS_H 1
_ACEOF
maybe_plugins=yes
fi
done
# Check whether --enable-plugins was given.
if test "${enable_plugins+set}" = set; then :
enableval=$enable_plugins; case "${enableval}" in
no) plugins=no ;;
*) plugins=yes
if test "$maybe_plugins" != "yes" ; then
as_fn_error "Building with plugin support requires a host that supports dlopen." "$LINENO" 5
fi ;;
esac
else
plugins=$maybe_plugins
fi
if test "$plugins" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
if test "${ac_cv_search_dlopen+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dlopen ();
int
main ()
{
return dlopen ();
;
return 0;
}
_ACEOF
for ac_lib in '' dl; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_dlopen=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if test "${ac_cv_search_dlopen+set}" = set; then :
break
fi
done
if test "${ac_cv_search_dlopen+set}" = set; then :
else
ac_cv_search_dlopen=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
$as_echo "$ac_cv_search_dlopen" >&6; }
ac_res=$ac_cv_search_dlopen
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
fi
case "${host}" in
@@ -12012,10 +12101,6 @@ fi
if test "$plugins" = "yes"; then
if test "$enable_dlopen" != "yes" ; then
as_fn_error "
Building BFD with plugin support requires a host that supports -ldl." "$LINENO" 5
fi
enable_targets="$enable_targets plugin"
fi
@@ -12060,7 +12145,7 @@ if test "${enable_secureplt+set}" = set; then :
*) as_fn_error "bad value ${enableval} for secureplt option" "$LINENO" 5 ;;
esac
else
use_secureplt=false
use_secureplt=true
fi
if test $use_secureplt = true; then
@@ -12158,6 +12243,9 @@ fi
# Set the 'development' global.
. $srcdir/../bfd/development.sh
GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -12192,8 +12280,8 @@ case "${host}" in
*) ;;
esac
# Enable -Werror by default when using gcc
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
# Enable -Werror by default when using gcc. Turn it off for releases.
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" -a "$development" = true ; then
ERROR_ON_WARNING=yes
fi
@@ -12900,7 +12988,7 @@ $as_echo "$bfd_cv_build_exeext" >&6; }
fi
for ac_header in alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h
for ac_header in alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h wchar.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -13529,21 +13617,6 @@ fi
fi
for ac_header in windows.h dlfcn.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
eval as_val=\$$as_ac_Header
if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5
$as_echo_n "checking whether string.h and strings.h may both be included... " >&6; }
if test "${gcc_cv_header_string+set}" = set; then :
@@ -13766,6 +13839,17 @@ cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_VSNPRINTF $ac_have_decl
_ACEOF
ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
if test "x$ac_cv_have_decl_strnlen" = x""yes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_STRNLEN $ac_have_decl
_ACEOF
# Link in zlib if we can. This allows us to read compressed debug sections.
# This is used only by compress.c.
@@ -14013,7 +14097,7 @@ if test "${target}" = "${host}"; then
COREFILE=netbsd-core.lo
;;
rs6000-*-lynx*)
COREFILE=lynx-core.lo
COREFILE=lynx-core.lo
;;
rs6000-*-aix[5-9].* | powerpc-*-aix[5-9].*)
COREFILE=rs6000-core.lo
@@ -14070,7 +14154,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
TRAD_HEADER='"hosts/tahoe.h"'
;;
vax-*-netbsd* | vax-*-openbsd*)
COREFILE=netbsd-core.lo
COREFILE=netbsd-core.lo
;;
vax-*-ultrix2*)
COREFILE=trad-core.lo
@@ -15088,6 +15172,11 @@ if test "$enable_shared" = "yes"; then
SHARED_LDFLAGS="-no-undefined"
SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
;;
# Hack to build or1k-src on OSX
or1k*-*-darwin*)
SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
;;
esac
if test -n "$SHARED_LIBADD"; then
@@ -15196,350 +15285,347 @@ do
# This list is alphabetized to make it easy to compare
# with the two vector lists in targets.c. For the same reason,
# use one entry per line, even though this leads to long lines.
a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
aix5coff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
aout0_big_vec) tb="$tb aout0.lo aout32.lo" ;;
aout_arm_big_vec) tb="$tb aout-arm.lo aout32.lo" ;;
aout_arm_little_vec) tb="$tb aout-arm.lo aout32.lo" ;;
apollocoff_vec) tb="$tb coff-apollo.lo" ;;
arm_epoc_pe_big_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_epoc_pe_little_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_epoc_pei_big_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_epoc_pei_little_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pe_big_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pe_little_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pei_big_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pei_little_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
armcoff_big_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
armcoff_little_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
armnetbsd_vec) tb="$tb armnetbsd.lo aout32.lo" ;;
armpe_big_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
armpei_little_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;;
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
bfd_elf32_bfin_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bfd_elf32_bfinfdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
bfd_elf32_bigarm_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_symbian_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_vxworks_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_bigmips_vxworks_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_bigmoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
bfd_elf32_bignios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
bfd_elf32_cr16_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
bfd_elf32_cr16c_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
bfd_elf32_crx_vec) tb="$tb elf32-crx.lo elf32.lo $elf" ;;
bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
bfd_elf32_dlx_big_vec) tb="$tb elf32-dlx.lo elf32.lo $elf" ;;
bfd_elf32_epiphany_vec) tb="$tb elf32-epiphany.lo elf32.lo $elf" ;;
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
bfd_elf32_frv_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
bfd_elf32_frvfdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
bfd_elf32_h8300_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_hppa_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
bfd_elf32_i386_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;;
bfd_elf32_ia64_big_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;;
bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf";;
bfd_elf32_ip2k_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
bfd_elf32_iq2000_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
bfd_elf32_lm32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
bfd_elf32_lm32fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
bfd_elf32_littlearm_symbian_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_vxworks_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_littlemips_vxworks_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_littlemoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
bfd_elf32_littlenios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rlin_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rlelin_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m68hc11_vec) tb="$tb elf32-m68hc11.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
bfd_elf32_m68hc12_vec) tb="$tb elf32-m68hc12.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
bfd_elf32_mcore_big_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
bfd_elf32_mcore_little_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
bfd_elf32_mep_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
bfd_elf32_mep_little_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
bfd_elf32_metag_vec) tb="$tb elf32-metag.lo elf32.lo $elf" ;;
bfd_elf32_microblazeel_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
bfd_elf32_microblaze_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
bfd_elf32_mt_vec) tb="$tb elf32-mt.lo elf32.lo $elf" ;;
bfd_elf32_msp430_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
bfd_elf32_msp430_ti_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
bfd_elf32_nbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_nlittlemips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_ntradbigmips_vec | bfd_elf32_ntradbigmips_freebsd_vec)
tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_ntradlittlemips_vec | bfd_elf32_ntradlittlemips_freebsd_vec)
tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;;
bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_powerpc_freebsd_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_powerpc_vxworks_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_rl78_vec) tb="$tb elf32-rl78.lo $elf" ;;
bfd_elf32_rx_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
bfd_elf32_rx_be_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
bfd_elf32_rx_be_ns_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
bfd_elf32_s390_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;;
bfd_elf32_bigscore_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64;;
bfd_elf32_littlescore_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64;;
aarch64_elf32_be_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf32_le_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
alpha_ecoff_le_vec) tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo"; target_size=64 ;;
alpha_elf64_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
alpha_elf64_fbsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
alpha_nlm32_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;;
alpha_vms_vec) tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;;
alpha_vms_lib_txt_vec) tb="$tb vms-lib.lo vms-misc.lo" ;;
am33_elf32_linux_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
aout0_be_vec) tb="$tb aout0.lo aout32.lo" ;;
aout64_vec) tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
aout_vec) tb="$tb host-aout.lo aout32.lo" ;;
aout_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
arc_elf32_be_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
arc_elf32_le_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
arm_aout_be_vec) tb="$tb aout-arm.lo aout32.lo" ;;
arm_aout_le_vec) tb="$tb aout-arm.lo aout32.lo" ;;
arm_aout_nbsd_vec) tb="$tb armnetbsd.lo aout32.lo" ;;
arm_aout_riscix_vec) tb="$tb aout32.lo riscix.lo" ;;
arm_coff_be_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
arm_coff_le_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_le_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_epoc_be_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_epoc_le_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_wince_be_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_wince_le_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_be_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_le_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_epoc_be_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_epoc_le_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_wince_be_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_wince_le_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
avr_elf32_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
bfin_elf32_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bfin_elf32_fdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bout_be_vec) tb="$tb bout.lo aout32.lo" ;;
bout_le_vec) tb="$tb bout.lo aout32.lo" ;;
cr16_elf32_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
cr16c_elf32_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
cris_aout_vec) tb="$tb aout-cris.lo" ;;
cris_elf32_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
cris_elf32_us_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
crx_elf32_vec) tb="$tb elf32-crx.lo elf32.lo $elf" ;;
d10v_elf32_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
d30v_elf32_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
dlx_elf32_be_vec) tb="$tb elf32-dlx.lo elf32.lo $elf" ;;
elf32_be_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
elf32_le_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
elf64_be_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
elf64_le_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
epiphany_elf32_vec) tb="$tb elf32-epiphany.lo elf32.lo $elf" ;;
fr30_elf32_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
frv_elf32_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
frv_elf32_fdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
h8300_coff_vec) tb="$tb coff-h8300.lo reloc16.lo" ;;
h8300_elf32_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
h8500_coff_vec) tb="$tb coff-h8500.lo reloc16.lo" ;;
hppa_elf32_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
hppa_elf32_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
hppa_elf32_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
hppa_elf64_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
hppa_elf64_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
hppa_som_vec) tb="$tb som.lo" ;;
i370_elf32_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
i386_aout_vec) tb="$tb i386aout.lo aout32.lo" ;;
i386_aout_bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;;
i386_aout_dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;;
i386_aout_fbsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;;
i386_aout_linux_vec) tb="$tb i386linux.lo aout32.lo" ;;
i386_aout_lynx_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
i386_aout_mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;;
i386_aout_nbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;;
i386_aout_os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;;
i386_coff_vec) tb="$tb coff-i386.lo cofflink.lo" ;;
i386_coff_go32_vec) tb="$tb coff-go32.lo cofflink.lo" ;;
i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo cofflink.lo" ;;
i386_coff_lynx_vec) tb="$tb cf-i386lynx.lo cofflink.lo lynx-core.lo" ;;
i386_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_fbsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_mach_o_vec) tb="$tb mach-o-i386.lo" ;;
i386_msdos_vec) tb="$tb i386msdos.lo" ;;
i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
i386_pe_vec) tb="$tb pe-i386.lo peigen.lo cofflink.lo" ;;
i386_pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;;
i860_coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;;
i860_elf32_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
i860_elf32_le_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
i960_elf32_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;;
ia64_elf32_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;;
ia64_elf32_hpux_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;;
ia64_elf64_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
ia64_elf64_le_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
ia64_elf64_hpux_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
ia64_elf64_vms_vec) tb="$tb elf64-ia64-vms.lo elf64-ia64.lo elfxx-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;;
ia64_pei_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
icoff_be_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
icoff_le_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
ieee_vec) tb="$tb ieee.lo" ;;
ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
k1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
k1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
l1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
l1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
lm32_elf32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
lm32_elf32_fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
m32c_elf32_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
m32r_elf32_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m32r_elf32_le_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m32r_elf32_linux_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m32r_elf32_linux_le_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m68hc11_elf32_vec) tb="$tb elf32-m68hc11.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
m68hc12_elf32_vec) tb="$tb elf32-m68hc12.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
m68k_aout_4knbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;;
m68k_aout_hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;;
m68k_aout_hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;;
m68k_aout_linux_vec) tb="$tb m68klinux.lo aout32.lo" ;;
m68k_aout_nbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;;
m68k_aout_newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;;
m68k_coff_vec) tb="$tb coff-m68k.lo cofflink.lo" ;;
m68k_coff_apollo_vec) tb="$tb coff-apollo.lo" ;;
m68k_coff_aux_vec) tb="$tb coff-aux.lo coff-m68k.lo cofflink.lo" ;;
m68k_coff_sysv_vec) tb="$tb coff-svm68k.lo cofflink.lo" ;;
m68k_coff_un_vec) tb="$tb coff-u68k.lo coff-m68k.lo cofflink.lo" ;;
m68k_elf32_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
m68k_versados_vec) tb="$tb versados.lo" ;;
m88k_aout_mach3_vec) tb="$tb m88kmach3.lo aout32.lo" ;;
m88k_aout_obsd_vec) tb="$tb m88kopenbsd.lo aout32.lo" ;;
m88k_coff_bcs_vec) tb="$tb coff-m88k.lo" ;;
m88k_elf32_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
mach_o_be_vec) tb="$tb mach-o.lo" ;;
mach_o_le_vec) tb="$tb mach-o.lo" ;;
mach_o_fat_vec) tb="$tb mach-o.lo" ;;
mcore_elf32_be_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
mcore_elf32_le_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
mcore_pe_be_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pe_le_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_be_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_le_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mep_elf32_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
mep_elf32_le_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
metag_elf32_vec) tb="$tb elf32-metag.lo elf32.lo $elf" ;;
microblaze_elf32_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
microblaze_elf32_le_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
mips_ecoff_be_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
mips_ecoff_le_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
mips_ecoff_bele_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
mips_elf32_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_n_be_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_n_le_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntrad_be_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntrad_le_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntradfbsd_be_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntradfbsd_le_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_trad_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_trad_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_tradfbsd_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_tradfbsd_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_vxworks_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_vxworks_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf64_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_trad_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_trad_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_tradfbsd_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_tradfbsd_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_pe_le_vec) tb="$tb pe-mips.lo peigen.lo cofflink.lo" ;;
mips_pei_le_vec) tb="$tb pei-mips.lo peigen.lo cofflink.lo" ;;
mmix_elf64_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
mmix_mmo_vec) tb="$tb mmo.lo" target_size=64 ;;
mn10200_elf32_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
mn10300_elf32_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
moxie_elf32_be_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
moxie_elf32_le_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
msp430_elf32_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
msp430_elf32_ti_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
mt_elf32_vec) tb="$tb elf32-mt.lo elf32.lo $elf" ;;
nds32_elf32_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
ns32k_aout_pc532nbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
or1k_elf32_vec) tb="$tb elf32-or1k.lo elf32.lo $elf" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
pef_vec) tb="$tb pef.lo" ;;
pef_xlib_vec) tb="$tb pef.lo" ;;
pj_elf32_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
pj_elf32_le_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
plugin_vec) tb="$tb plugin.lo" ;;
powerpc_boot_vec) tb="$tb ppcboot.lo" ;;
powerpc_elf32_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_le_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_fbsd_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_vxworks_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf64_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
powerpc_elf64_le_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
powerpc_elf64_fbsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
powerpc_nlm32_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_pe_le_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_pei_le_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_xcoff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
rl78_elf32_vec) tb="$tb elf32-rl78.lo elf32.lo $elf" ;;
rs6000_xcoff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
rs6000_xcoff64_aix_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
rs6000_xcoff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
rx_elf32_be_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
rx_elf32_be_ns_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
rx_elf32_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
s390_elf32_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;;
s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;;
score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;;
score_elf32_le_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;;
# FIXME: We include cofflink.lo not because it's needed for
# bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec
# sh64_elf32[_le]_vec, but because we include sh_elf32[_le]_vec
# which needs it but does not list it. Should be fixed in right place.
bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64lin_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shbfd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shblin_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shfd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shl_symbian_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shlvxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shvxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_sparc_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_sparc_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_spu_vec) tb="$tb elf32-spu.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_linux_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_linux_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_elf_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_elf_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tilegx_be_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
bfd_elf32_tilegx_le_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
bfd_elf32_tilepro_vec) tb="$tb elf32-tilepro.lo elf32.lo $elf" ;;
bfd_elf32_tradbigmips_vec | bfd_elf32_tradbigmips_freebsd_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_tradlittlemips_vec | bfd_elf32_tradlittlemips_freebsd_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_us_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
bfd_elf32_v850_rh850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
bfd_elf32_vax_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;;
bfd_elf32_xstormy16_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;;
bfd_elf32_xc16x_vec) tb="$tb elf32-xc16x.lo elf32.lo $elf" ;;
bfd_elf32_xgate_vec) tb="$tb elf32-xgate.lo elf32.lo $elf" ;;
bfd_elf32_xtensa_le_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
bfd_elf32_xtensa_be_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
bfd_elf64_alpha_freebsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_bigaarch64_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf32_bigaarch64_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf64_big_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_vms_vec) tb="$tb elf64-ia64-vms.lo elf64-ia64.lo elfxx-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;;
bfd_elf64_littleaarch64_vec)tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf32_littleaarch64_vec)tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf64_little_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_mmix_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_powerpc_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_powerpcle_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_powerpc_freebsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64lin_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64blin_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64lnbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64nbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_sparc_freebsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_sparc_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_tilegx_be_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
bfd_elf64_tilegx_le_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
bfd_elf64_tradbigmips_vec | bfd_elf64_tradbigmips_freebsd_vec)
tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_tradlittlemips_vec | bfd_elf64_tradlittlemips_freebsd_vec)
tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_x86_64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_x86_64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf32_x86_64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf32_x86_64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf64_l1om_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_k1om_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_k1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_mmo_vec) tb="$tb mmo.lo" target_size=64 ;;
bfd_powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
bfd_powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
bfd_powerpcle_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
bfd_powerpcle_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
cris_aout_vec) tb="$tb aout-cris.lo" ;;
demo_64_vec) tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
ecoff_big_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
ecoff_biglittle_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
ecoff_little_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
ecoffalpha_little_vec) tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo"; target_size=64 ;;
go32coff_vec) tb="$tb coff-go32.lo cofflink.lo" ;;
go32stubbedcoff_vec) tb="$tb coff-stgo32.lo cofflink.lo" ;;
h8300coff_vec) tb="$tb coff-h8300.lo reloc16.lo" ;;
h8500coff_vec) tb="$tb coff-h8500.lo reloc16.lo" ;;
host_aout_vec) tb="$tb host-aout.lo aout32.lo" ;;
hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;;
hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;;
i386aout_vec) tb="$tb i386aout.lo aout32.lo" ;;
i386bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;;
i386coff_vec) tb="$tb coff-i386.lo cofflink.lo" ;;
x86_64coff_vec) tb="$tb coff-x86_64.lo cofflink.lo"; target_size=64 ;;
i386dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;;
i386freebsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;;
i386linux_vec) tb="$tb i386linux.lo aout32.lo" ;;
i386lynx_aout_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
i386lynx_coff_vec) tb="$tb cf-i386lynx.lo cofflink.lo lynx-core.lo" ;;
i386mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;;
i386msdos_vec) tb="$tb i386msdos.lo" ;;
i386netbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;;
i386os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;;
i386pe_vec) tb="$tb pe-i386.lo peigen.lo cofflink.lo" ;;
i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;;
x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;;
icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
ieee_vec) tb="$tb ieee.lo" ;;
m68k4knetbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;;
m68kaux_coff_vec) tb="$tb coff-aux.lo coff-m68k.lo cofflink.lo" ;;
m68kcoff_vec) tb="$tb coff-m68k.lo cofflink.lo" ;;
m68kcoffun_vec) tb="$tb coff-u68k.lo coff-m68k.lo cofflink.lo" ;;
m68klinux_vec) tb="$tb m68klinux.lo aout32.lo" ;;
m68knetbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;;
m68ksysvcoff_vec) tb="$tb coff-svm68k.lo cofflink.lo" ;;
m88kbcs_vec) tb="$tb coff-m88k.lo" ;;
m88kmach3_vec) tb="$tb m88kmach3.lo aout32.lo" ;;
m88kopenbsd_vec) tb="$tb m88kopenbsd.lo aout32.lo" ;;
mach_o_be_vec) tb="$tb mach-o.lo" ;;
mach_o_le_vec) tb="$tb mach-o.lo" ;;
mach_o_fat_vec) tb="$tb mach-o.lo" ;;
mach_o_i386_vec) tb="$tb mach-o-i386.lo" ;;
mach_o_x86_64_vec) tb="$tb mach-o-x86-64.lo" ;;
mcore_pe_big_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pe_little_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_big_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_little_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mipslpe_vec) tb="$tb pe-mips.lo peigen.lo cofflink.lo" ;;
mipslpei_vec) tb="$tb pei-mips.lo peigen.lo cofflink.lo" ;;
newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;;
nlm32_alpha_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;;
nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
or32coff_big_vec) tb="$tb coff-or32.lo cofflink.lo" ;;
pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
pef_vec) tb="$tb pef.lo" ;;
pef_xlib_vec) tb="$tb pef.lo" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
plugin_vec) tb="$tb plugin.lo" ;;
pmac_xcoff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
ppcboot_vec) tb="$tb ppcboot.lo" ;;
riscix_vec) tb="$tb aout32.lo riscix.lo" ;;
rs6000coff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
rs6000coff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
shcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlpe_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
shlpei_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
som_vec) tb="$tb som.lo" ;;
sparccoff_vec) tb="$tb coff-sparc.lo" ;;
sparcle_aout_vec) tb="$tb aout-sparcle.lo aout32.lo" ;;
sparclinux_vec) tb="$tb sparclinux.lo aout32.lo" ;;
sparclynx_aout_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;;
sparclynx_coff_vec) tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
sparcnetbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;;
sunos_big_vec) tb="$tb sunos.lo aout32.lo" ;;
sym_vec) tb="$tb xsym.lo" ;;
tic30_aout_vec) tb="$tb aout-tic30.lo" ;;
tic30_coff_vec) tb="$tb coff-tic30.lo" ;;
tic4x_coff0_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff0_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic54x_coff0_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff0_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_vec) tb="$tb coff-tic54x.lo" ;;
tic80coff_vec) tb="$tb coff-tic80.lo cofflink.lo" ;;
vaxnetbsd_vec) tb="$tb vaxnetbsd.lo aout32.lo" ;;
vax1knetbsd_vec) tb="$tb vax1knetbsd.lo aout32.lo" ;;
vaxbsd_vec) tb="$tb vaxbsd.lo aout32.lo" ;;
versados_vec) tb="$tb versados.lo" ;;
vms_alpha_vec) tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;;
vms_lib_txt_vec) tb="$tb vms-lib.lo vms-misc.lo" ;;
w65_vec) tb="$tb coff-w65.lo reloc16.lo" ;;
we32kcoff_vec) tb="$tb coff-we32k.lo" ;;
z80coff_vec) tb="$tb coff-z80.lo reloc16.lo" ;;
z8kcoff_vec) tb="$tb coff-z8k.lo reloc16.lo cofflink.lo" ;;
sh64_elf32_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_linux_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_linux_be_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
sh64_elf32_nbsd_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
sh64_elf64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_linux_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_linux_be_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_nbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_nbsd_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh_coff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_coff_le_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_coff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_coff_small_le_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_elf32_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_fdpic_be_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_fdpic_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_linux_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_linux_be_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_nbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_nbsd_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_symbian_le_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_vxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_vxworks_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_pe_le_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
sh_pei_le_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
sparc_aout_le_vec) tb="$tb aout-sparcle.lo aout32.lo" ;;
sparc_aout_linux_vec) tb="$tb sparclinux.lo aout32.lo" ;;
sparc_aout_lynx_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;;
sparc_aout_nbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;;
sparc_aout_sunos_be_vec) tb="$tb sunos.lo aout32.lo" ;;
sparc_coff_vec) tb="$tb coff-sparc.lo" ;;
sparc_coff_lynx_vec) tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
sparc_elf32_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
sparc_elf32_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
sparc_elf32_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
sparc_elf64_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
sparc_elf64_fbsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
sparc_elf64_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
sparc_nlm32_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
spu_elf32_vec) tb="$tb elf32-spu.lo elf32.lo $elf" ;;
sym_vec) tb="$tb xsym.lo" ;;
tic30_aout_vec) tb="$tb aout-tic30.lo" ;;
tic30_coff_vec) tb="$tb coff-tic30.lo" ;;
tic4x_coff0_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff0_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic54x_coff0_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff0_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic6x_elf32_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_c6000_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_c6000_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_linux_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_linux_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic80_coff_vec) tb="$tb coff-tic80.lo cofflink.lo" ;;
tilegx_elf32_be_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
tilegx_elf32_le_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
tilegx_elf64_be_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
tilegx_elf64_le_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
tilepro_elf32_vec) tb="$tb elf32-tilepro.lo elf32.lo $elf" ;;
v800_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
v850_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
vax_aout_1knbsd_vec) tb="$tb vax1knetbsd.lo aout32.lo" ;;
vax_aout_bsd_vec) tb="$tb vaxbsd.lo aout32.lo" ;;
vax_aout_nbsd_vec) tb="$tb vaxnetbsd.lo aout32.lo" ;;
vax_elf32_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;;
w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo" ;;
we32k_coff_vec) tb="$tb coff-we32k.lo" ;;
x86_64_coff_vec) tb="$tb coff-x86_64.lo cofflink.lo"; target_size=64 ;;
x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
x86_64_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_mach_o_vec) tb="$tb mach-o-x86-64.lo" ;;
x86_64_pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
x86_64_pe_be_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
x86_64_pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
xc16x_elf32_vec) tb="$tb elf32-xc16x.lo elf32.lo $elf" ;;
xgate_elf32_vec) tb="$tb elf32-xgate.lo elf32.lo $elf" ;;
xstormy16_elf32_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;;
xtensa_elf32_be_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
xtensa_elf32_le_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
z80_coff_vec) tb="$tb coff-z80.lo reloc16.lo" ;;
z8k_coff_vec) tb="$tb coff-z8k.lo reloc16.lo cofflink.lo" ;;
# These appear out of order in targets.c
srec_vec) tb="$tb srec.lo" ;;
symbolsrec_vec) tb="$tb srec.lo" ;;
tekhex_vec) tb="$tb tekhex.lo" ;;
cisco_core_big_vec) tb="$tb cisco-core.lo" ;;
cisco_core_little_vec) tb="$tb cisco-core.lo" ;;
srec_vec) tb="$tb srec.lo" ;;
symbolsrec_vec) tb="$tb srec.lo" ;;
tekhex_vec) tb="$tb tekhex.lo" ;;
core_cisco_be_vec) tb="$tb cisco-core.lo" ;;
core_cisco_le_vec) tb="$tb cisco-core.lo" ;;
"") ;;
"") ;;
*) as_fn_error "*** unknown target vector $vec" "$LINENO" 5 ;;
esac
@@ -16481,7 +16567,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by bfd $as_me 2.24, which was
This file was extended by bfd $as_me 2.25.1, which was
generated by GNU Autoconf 2.64. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16545,7 +16631,7 @@ Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
bfd config.status 2.24
bfd config.status 2.25.1
configured by $0, generated by GNU Autoconf 2.64,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
dnl
dnl Copyright 2012-2013 Free Software Foundation
dnl Copyright (C) 2012-2014 Free Software Foundation, Inc.
dnl
dnl This file is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@ -18,7 +18,8 @@ dnl <http://www.gnu.org/licenses/>.
dnl
AC_PREREQ(2.59)
AC_INIT([bfd], [2.24])
m4_include([version.m4])
AC_INIT([bfd], BFD_VERSION)
AC_CONFIG_SRCDIR([libbfd.c])
AC_CANONICAL_TARGET
@@ -47,10 +48,6 @@ ACX_LARGEFILE
AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes")
if test "$plugins" = "yes"; then
if test "$enable_dlopen" != "yes" ; then
AC_MSG_ERROR([
Building BFD with plugin support requires a host that supports -ldl.])
fi
enable_targets="$enable_targets plugin"
fi
@@ -85,7 +82,7 @@ AC_ARG_ENABLE(secureplt,
yes) use_secureplt=true ;;
no) use_secureplt=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for secureplt option) ;;
esac],[use_secureplt=false])dnl
esac],[use_secureplt=true])dnl
if test $use_secureplt = true; then
AC_DEFINE(USE_SECUREPLT, 1,
[Define if we should default to creating read-only plt entries])
@@ -210,14 +207,12 @@ AC_SUBST(BFD_HOSTPTR_T)
BFD_CC_FOR_BUILD
AC_CHECK_HEADERS(alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h)
AC_CHECK_HEADERS(alloca.h stddef.h string.h strings.h stdlib.h time.h unistd.h wchar.h)
AC_CHECK_HEADERS(fcntl.h sys/file.h sys/time.h sys/stat.h sys/resource.h)
GCC_HEADER_STDINT(bfd_stdint.h)
AC_HEADER_TIME
AC_HEADER_DIRENT
AC_CHECK_HEADERS(windows.h dlfcn.h)
ACX_HEADER_STRING
AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno)
AC_CHECK_FUNCS(strtoull getrlimit)
@@ -239,6 +234,7 @@ AC_CHECK_DECLS(stpcpy)
AC_CHECK_DECLS(strstr)
AC_CHECK_DECLS(snprintf)
AC_CHECK_DECLS(vsnprintf)
AC_CHECK_DECLS(strnlen)
# Link in zlib if we can. This allows us to read compressed debug sections.
# This is used only by compress.c.
@@ -427,7 +423,7 @@ changequote([,])dnl
COREFILE=netbsd-core.lo
;;
rs6000-*-lynx*)
COREFILE=lynx-core.lo
COREFILE=lynx-core.lo
;;
changequote(,)dnl
rs6000-*-aix[5-9].* | powerpc-*-aix[5-9].*)
@@ -468,7 +464,7 @@ changequote([,])dnl
TRAD_HEADER='"hosts/tahoe.h"'
;;
vax-*-netbsd* | vax-*-openbsd*)
COREFILE=netbsd-core.lo
COREFILE=netbsd-core.lo
;;
vax-*-ultrix2*)
COREFILE=trad-core.lo
@@ -577,6 +573,11 @@ changequote([,])dnl
SHARED_LDFLAGS="-no-undefined"
SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
;;
# Hack to build or1k-src on OSX
or1k*-*-darwin*)
SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
;;
esac
if test -n "$SHARED_LIBADD"; then
@@ -685,350 +686,347 @@ do
# This list is alphabetized to make it easy to compare
# with the two vector lists in targets.c. For the same reason,
# use one entry per line, even though this leads to long lines.
a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
aix5coff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
aout0_big_vec) tb="$tb aout0.lo aout32.lo" ;;
aout_arm_big_vec) tb="$tb aout-arm.lo aout32.lo" ;;
aout_arm_little_vec) tb="$tb aout-arm.lo aout32.lo" ;;
apollocoff_vec) tb="$tb coff-apollo.lo" ;;
arm_epoc_pe_big_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_epoc_pe_little_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_epoc_pei_big_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_epoc_pei_little_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pe_big_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pe_little_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pei_big_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
arm_wince_pei_little_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
armcoff_big_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
armcoff_little_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
armnetbsd_vec) tb="$tb armnetbsd.lo aout32.lo" ;;
armpe_big_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpe_little_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
armpei_big_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
armpei_little_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
b_out_vec_big_host) tb="$tb bout.lo aout32.lo" ;;
b_out_vec_little_host) tb="$tb bout.lo aout32.lo" ;;
bfd_pei_ia64_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
bfd_elf32_am33lin_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
bfd_elf32_avr_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
bfd_elf32_bfin_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bfd_elf32_bfinfdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
bfd_elf32_bigarm_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_symbian_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_vxworks_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_bigmips_vxworks_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_bigmoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
bfd_elf32_bignios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
bfd_elf32_cr16_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
bfd_elf32_cr16c_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
bfd_elf32_crx_vec) tb="$tb elf32-crx.lo elf32.lo $elf" ;;
bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
bfd_elf32_dlx_big_vec) tb="$tb elf32-dlx.lo elf32.lo $elf" ;;
bfd_elf32_epiphany_vec) tb="$tb elf32-epiphany.lo elf32.lo $elf" ;;
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
bfd_elf32_frv_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
bfd_elf32_frvfdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
bfd_elf32_h8300_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_hppa_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
bfd_elf32_i386_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;;
bfd_elf32_ia64_big_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;;
bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf";;
bfd_elf32_ip2k_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
bfd_elf32_iq2000_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
bfd_elf32_lm32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
bfd_elf32_lm32fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
bfd_elf32_littlearm_symbian_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_vxworks_vec)
tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_littlemips_vxworks_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_littlemoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
bfd_elf32_littlenios2_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rlin_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rlelin_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m68hc11_vec) tb="$tb elf32-m68hc11.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
bfd_elf32_m68hc12_vec) tb="$tb elf32-m68hc12.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
bfd_elf32_mcore_big_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
bfd_elf32_mcore_little_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
bfd_elf32_mep_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
bfd_elf32_mep_little_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
bfd_elf32_metag_vec) tb="$tb elf32-metag.lo elf32.lo $elf" ;;
bfd_elf32_microblazeel_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
bfd_elf32_microblaze_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
bfd_elf32_mt_vec) tb="$tb elf32-mt.lo elf32.lo $elf" ;;
bfd_elf32_msp430_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
bfd_elf32_msp430_ti_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
bfd_elf32_nbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_nlittlemips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_ntradbigmips_vec | bfd_elf32_ntradbigmips_freebsd_vec)
tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_ntradlittlemips_vec | bfd_elf32_ntradlittlemips_freebsd_vec)
tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;;
bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_powerpc_freebsd_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_powerpc_vxworks_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_rl78_vec) tb="$tb elf32-rl78.lo $elf" ;;
bfd_elf32_rx_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
bfd_elf32_rx_be_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
bfd_elf32_rx_be_ns_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
bfd_elf32_s390_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;;
bfd_elf32_bigscore_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64;;
bfd_elf32_littlescore_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64;;
aarch64_elf32_be_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf32_le_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
alpha_ecoff_le_vec) tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo"; target_size=64 ;;
alpha_elf64_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
alpha_elf64_fbsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
alpha_nlm32_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;;
alpha_vms_vec) tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;;
alpha_vms_lib_txt_vec) tb="$tb vms-lib.lo vms-misc.lo" ;;
am33_elf32_linux_vec) tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
aout0_be_vec) tb="$tb aout0.lo aout32.lo" ;;
aout64_vec) tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
aout_vec) tb="$tb host-aout.lo aout32.lo" ;;
aout_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
arc_elf32_be_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
arc_elf32_le_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
arm_aout_be_vec) tb="$tb aout-arm.lo aout32.lo" ;;
arm_aout_le_vec) tb="$tb aout-arm.lo aout32.lo" ;;
arm_aout_nbsd_vec) tb="$tb armnetbsd.lo aout32.lo" ;;
arm_aout_riscix_vec) tb="$tb aout32.lo riscix.lo" ;;
arm_coff_be_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
arm_coff_le_vec) tb="$tb coff-arm.lo cofflink.lo " ;;
arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_le_vec) tb="$tb pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_epoc_be_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_epoc_le_vec) tb="$tb epoc-pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_wince_be_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pe_wince_le_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_be_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_le_vec) tb="$tb pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_epoc_be_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_epoc_le_vec) tb="$tb epoc-pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_wince_be_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
arm_pei_wince_le_vec) tb="$tb pei-arm-wince.lo pei-arm.lo peigen.lo cofflink.lo " ;;
avr_elf32_vec) tb="$tb elf32-avr.lo elf32.lo $elf" ;;
bfin_elf32_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bfin_elf32_fdpic_vec) tb="$tb elf32-bfin.lo elf32.lo $elf" ;;
bout_be_vec) tb="$tb bout.lo aout32.lo" ;;
bout_le_vec) tb="$tb bout.lo aout32.lo" ;;
cr16_elf32_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
cr16c_elf32_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
cris_aout_vec) tb="$tb aout-cris.lo" ;;
cris_elf32_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
cris_elf32_us_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
crx_elf32_vec) tb="$tb elf32-crx.lo elf32.lo $elf" ;;
d10v_elf32_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
d30v_elf32_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
dlx_elf32_be_vec) tb="$tb elf32-dlx.lo elf32.lo $elf" ;;
elf32_be_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
elf32_le_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
elf64_be_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
elf64_le_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
epiphany_elf32_vec) tb="$tb elf32-epiphany.lo elf32.lo $elf" ;;
fr30_elf32_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
frv_elf32_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
frv_elf32_fdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
h8300_coff_vec) tb="$tb coff-h8300.lo reloc16.lo" ;;
h8300_elf32_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
h8500_coff_vec) tb="$tb coff-h8500.lo reloc16.lo" ;;
hppa_elf32_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
hppa_elf32_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
hppa_elf32_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
hppa_elf64_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
hppa_elf64_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
hppa_som_vec) tb="$tb som.lo" ;;
i370_elf32_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
i386_aout_vec) tb="$tb i386aout.lo aout32.lo" ;;
i386_aout_bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;;
i386_aout_dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;;
i386_aout_fbsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;;
i386_aout_linux_vec) tb="$tb i386linux.lo aout32.lo" ;;
i386_aout_lynx_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
i386_aout_mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;;
i386_aout_nbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;;
i386_aout_os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;;
i386_coff_vec) tb="$tb coff-i386.lo cofflink.lo" ;;
i386_coff_go32_vec) tb="$tb coff-go32.lo cofflink.lo" ;;
i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo cofflink.lo" ;;
i386_coff_lynx_vec) tb="$tb cf-i386lynx.lo cofflink.lo lynx-core.lo" ;;
i386_elf32_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_fbsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_nacl_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_sol2_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_elf32_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
i386_mach_o_vec) tb="$tb mach-o-i386.lo" ;;
i386_msdos_vec) tb="$tb i386msdos.lo" ;;
i386_nlm32_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
i386_pe_vec) tb="$tb pe-i386.lo peigen.lo cofflink.lo" ;;
i386_pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;;
i860_coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;;
i860_elf32_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
i860_elf32_le_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
i960_elf32_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;;
ia64_elf32_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;;
ia64_elf32_hpux_be_vec) tb="$tb elf32-ia64.lo elfxx-ia64.lo elf32.lo $elf" ;;
ia64_elf64_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
ia64_elf64_le_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
ia64_elf64_hpux_be_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
ia64_elf64_vms_vec) tb="$tb elf64-ia64-vms.lo elf64-ia64.lo elfxx-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;;
ia64_pei_vec) tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
icoff_be_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
icoff_le_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
ieee_vec) tb="$tb ieee.lo" ;;
ip2k_elf32_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
iq2000_elf32_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
k1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
k1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
l1om_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
l1om_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
lm32_elf32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
lm32_elf32_fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
m32c_elf32_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
m32r_elf32_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m32r_elf32_le_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m32r_elf32_linux_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m32r_elf32_linux_le_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
m68hc11_elf32_vec) tb="$tb elf32-m68hc11.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
m68hc12_elf32_vec) tb="$tb elf32-m68hc12.lo elf32-m68hc1x.lo elf32.lo $elf" ;;
m68k_aout_4knbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;;
m68k_aout_hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;;
m68k_aout_hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;;
m68k_aout_linux_vec) tb="$tb m68klinux.lo aout32.lo" ;;
m68k_aout_nbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;;
m68k_aout_newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;;
m68k_coff_vec) tb="$tb coff-m68k.lo cofflink.lo" ;;
m68k_coff_apollo_vec) tb="$tb coff-apollo.lo" ;;
m68k_coff_aux_vec) tb="$tb coff-aux.lo coff-m68k.lo cofflink.lo" ;;
m68k_coff_sysv_vec) tb="$tb coff-svm68k.lo cofflink.lo" ;;
m68k_coff_un_vec) tb="$tb coff-u68k.lo coff-m68k.lo cofflink.lo" ;;
m68k_elf32_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
m68k_versados_vec) tb="$tb versados.lo" ;;
m88k_aout_mach3_vec) tb="$tb m88kmach3.lo aout32.lo" ;;
m88k_aout_obsd_vec) tb="$tb m88kopenbsd.lo aout32.lo" ;;
m88k_coff_bcs_vec) tb="$tb coff-m88k.lo" ;;
m88k_elf32_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
mach_o_be_vec) tb="$tb mach-o.lo" ;;
mach_o_le_vec) tb="$tb mach-o.lo" ;;
mach_o_fat_vec) tb="$tb mach-o.lo" ;;
mcore_elf32_be_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
mcore_elf32_le_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
mcore_pe_be_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pe_le_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_be_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_le_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mep_elf32_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
mep_elf32_le_vec) tb="$tb elf32-mep.lo elf32.lo $elf" ;;
metag_elf32_vec) tb="$tb elf32-metag.lo elf32.lo $elf" ;;
microblaze_elf32_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
microblaze_elf32_le_vec) tb="$tb elf32-microblaze.lo elf32.lo $elf" ;;
mips_ecoff_be_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
mips_ecoff_le_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
mips_ecoff_bele_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
mips_elf32_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_n_be_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_n_le_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntrad_be_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntrad_le_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntradfbsd_be_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_ntradfbsd_le_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf32_trad_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_trad_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_tradfbsd_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_tradfbsd_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_vxworks_be_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf32_vxworks_le_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
mips_elf64_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_trad_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_trad_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_tradfbsd_be_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_elf64_tradfbsd_le_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
mips_pe_le_vec) tb="$tb pe-mips.lo peigen.lo cofflink.lo" ;;
mips_pei_le_vec) tb="$tb pei-mips.lo peigen.lo cofflink.lo" ;;
mmix_elf64_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
mmix_mmo_vec) tb="$tb mmo.lo" target_size=64 ;;
mn10200_elf32_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
mn10300_elf32_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
moxie_elf32_be_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
moxie_elf32_le_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
msp430_elf32_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
msp430_elf32_ti_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;;
mt_elf32_vec) tb="$tb elf32-mt.lo elf32.lo $elf" ;;
nds32_elf32_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_be_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nds32_elf32_linux_le_vec) tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
nios2_elf32_be_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
nios2_elf32_le_vec) tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
ns32k_aout_pc532mach_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
ns32k_aout_pc532nbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
or1k_elf32_vec) tb="$tb elf32-or1k.lo elf32.lo $elf" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
pef_vec) tb="$tb pef.lo" ;;
pef_xlib_vec) tb="$tb pef.lo" ;;
pj_elf32_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
pj_elf32_le_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
plugin_vec) tb="$tb plugin.lo" ;;
powerpc_boot_vec) tb="$tb ppcboot.lo" ;;
powerpc_elf32_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_le_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_fbsd_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_vxworks_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf64_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
powerpc_elf64_le_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
powerpc_elf64_fbsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
powerpc_nlm32_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_pe_le_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_pei_le_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
powerpc_xcoff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
rl78_elf32_vec) tb="$tb elf32-rl78.lo elf32.lo $elf" ;;
rs6000_xcoff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
rs6000_xcoff64_aix_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
rs6000_xcoff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
rx_elf32_be_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
rx_elf32_be_ns_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
rx_elf32_le_vec) tb="$tb elf32-rx.lo elf32.lo $elf" ;;
s390_elf32_vec) tb="$tb elf32-s390.lo elf32.lo $elf" ;;
s390_elf64_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;;
score_elf32_be_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;;
score_elf32_le_vec) tb="$tb elf32-score.lo elf32-score7.lo elf32.lo $elf"; want64=true; target_size=64 ;;
# FIXME: We include cofflink.lo not because it's needed for
# bfd_elf32_sh64[l]_vec, but because we include bfd_elf32_sh[l]_vec
# sh64_elf32[_le]_vec, but because we include sh_elf32[_le]_vec
# which needs it but does not list it. Should be fixed in right place.
bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64lin_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shbfd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shblin_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shfd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shl_symbian_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shlvxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
bfd_elf32_shvxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_sparc_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_sparc_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
bfd_elf32_spu_vec) tb="$tb elf32-spu.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_linux_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_linux_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_elf_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tic6x_elf_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
bfd_elf32_tilegx_be_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
bfd_elf32_tilegx_le_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
bfd_elf32_tilepro_vec) tb="$tb elf32-tilepro.lo elf32.lo $elf" ;;
bfd_elf32_tradbigmips_vec | bfd_elf32_tradbigmips_freebsd_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_tradlittlemips_vec | bfd_elf32_tradlittlemips_freebsd_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_us_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
bfd_elf32_v850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
bfd_elf32_v850_rh850_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
bfd_elf32_vax_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;;
bfd_elf32_xstormy16_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;;
bfd_elf32_xc16x_vec) tb="$tb elf32-xc16x.lo elf32.lo $elf" ;;
bfd_elf32_xgate_vec) tb="$tb elf32-xgate.lo elf32.lo $elf" ;;
bfd_elf32_xtensa_le_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
bfd_elf32_xtensa_be_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
bfd_elf64_alpha_freebsd_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_alpha_vec) tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_bigaarch64_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf32_bigaarch64_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf64_big_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_hppa_linux_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_hppa_vec) tb="$tb elf64-hppa.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_big_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_hpux_big_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_little_vec) tb="$tb elf64-ia64.lo elfxx-ia64.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_ia64_vms_vec) tb="$tb elf64-ia64-vms.lo elf64-ia64.lo elfxx-ia64.lo elf64.lo vms-lib.lo vms-misc.lo $elf"; target_size=64 ;;
bfd_elf64_littleaarch64_vec)tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf32_littleaarch64_vec)tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf64_little_generic_vec) tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_mmix_vec) tb="$tb elf64-mmix.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_powerpc_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_powerpcle_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_powerpc_freebsd_vec) tb="$tb elf64-ppc.lo elf64-gen.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64lin_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64blin_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64lnbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sh64nbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_sparc_freebsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_sparc_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_tilegx_be_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
bfd_elf64_tilegx_le_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
bfd_elf64_tradbigmips_vec | bfd_elf64_tradbigmips_freebsd_vec)
tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_tradlittlemips_vec | bfd_elf64_tradlittlemips_freebsd_vec)
tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_x86_64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_x86_64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf32_x86_64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf32_x86_64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
bfd_elf64_l1om_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_k1om_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_elf64_k1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
bfd_mmo_vec) tb="$tb mmo.lo" target_size=64 ;;
bfd_powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
bfd_powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
bfd_powerpcle_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
bfd_powerpcle_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
cris_aout_vec) tb="$tb aout-cris.lo" ;;
demo_64_vec) tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
ecoff_big_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
ecoff_biglittle_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
ecoff_little_vec) tb="$tb coff-mips.lo ecoff.lo ecofflink.lo" ;;
ecoffalpha_little_vec) tb="$tb coff-alpha.lo ecoff.lo ecofflink.lo"; target_size=64 ;;
go32coff_vec) tb="$tb coff-go32.lo cofflink.lo" ;;
go32stubbedcoff_vec) tb="$tb coff-stgo32.lo cofflink.lo" ;;
h8300coff_vec) tb="$tb coff-h8300.lo reloc16.lo" ;;
h8500coff_vec) tb="$tb coff-h8500.lo reloc16.lo" ;;
host_aout_vec) tb="$tb host-aout.lo aout32.lo" ;;
hp300bsd_vec) tb="$tb hp300bsd.lo aout32.lo" ;;
hp300hpux_vec) tb="$tb hp300hpux.lo aout32.lo" ;;
i386aout_vec) tb="$tb i386aout.lo aout32.lo" ;;
i386bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;;
i386coff_vec) tb="$tb coff-i386.lo cofflink.lo" ;;
x86_64coff_vec) tb="$tb coff-x86_64.lo cofflink.lo"; target_size=64 ;;
i386dynix_vec) tb="$tb i386dynix.lo aout32.lo" ;;
i386freebsd_vec) tb="$tb i386freebsd.lo aout32.lo" ;;
i386linux_vec) tb="$tb i386linux.lo aout32.lo" ;;
i386lynx_aout_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
i386lynx_coff_vec) tb="$tb cf-i386lynx.lo cofflink.lo lynx-core.lo" ;;
i386mach3_vec) tb="$tb i386mach3.lo aout32.lo" ;;
i386msdos_vec) tb="$tb i386msdos.lo" ;;
i386netbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;;
i386os9k_vec) tb="$tb i386os9k.lo aout32.lo" ;;
i386pe_vec) tb="$tb pe-i386.lo peigen.lo cofflink.lo" ;;
i386pei_vec) tb="$tb pei-i386.lo peigen.lo cofflink.lo" ;;
x86_64pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
x86_64pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
i860coff_vec) tb="$tb coff-i860.lo cofflink.lo" ;;
icoff_big_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
icoff_little_vec) tb="$tb coff-i960.lo cofflink.lo" ;;
ieee_vec) tb="$tb ieee.lo" ;;
m68k4knetbsd_vec) tb="$tb m68k4knetbsd.lo aout32.lo" ;;
m68kaux_coff_vec) tb="$tb coff-aux.lo coff-m68k.lo cofflink.lo" ;;
m68kcoff_vec) tb="$tb coff-m68k.lo cofflink.lo" ;;
m68kcoffun_vec) tb="$tb coff-u68k.lo coff-m68k.lo cofflink.lo" ;;
m68klinux_vec) tb="$tb m68klinux.lo aout32.lo" ;;
m68knetbsd_vec) tb="$tb m68knetbsd.lo aout32.lo" ;;
m68ksysvcoff_vec) tb="$tb coff-svm68k.lo cofflink.lo" ;;
m88kbcs_vec) tb="$tb coff-m88k.lo" ;;
m88kmach3_vec) tb="$tb m88kmach3.lo aout32.lo" ;;
m88kopenbsd_vec) tb="$tb m88kopenbsd.lo aout32.lo" ;;
mach_o_be_vec) tb="$tb mach-o.lo" ;;
mach_o_le_vec) tb="$tb mach-o.lo" ;;
mach_o_fat_vec) tb="$tb mach-o.lo" ;;
mach_o_i386_vec) tb="$tb mach-o-i386.lo" ;;
mach_o_x86_64_vec) tb="$tb mach-o-x86-64.lo" ;;
mcore_pe_big_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pe_little_vec) tb="$tb pe-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_big_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mcore_pei_little_vec) tb="$tb pei-mcore.lo peigen.lo cofflink.lo" ;;
mipslpe_vec) tb="$tb pe-mips.lo peigen.lo cofflink.lo" ;;
mipslpei_vec) tb="$tb pei-mips.lo peigen.lo cofflink.lo" ;;
newsos3_vec) tb="$tb newsos3.lo aout32.lo" ;;
nlm32_alpha_vec) tb="$tb nlm32-alpha.lo nlm32.lo nlm.lo"; target_size=64 ;;
nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
or32coff_big_vec) tb="$tb coff-or32.lo cofflink.lo" ;;
pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
pef_vec) tb="$tb pef.lo" ;;
pef_xlib_vec) tb="$tb pef.lo" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;
plugin_vec) tb="$tb plugin.lo" ;;
pmac_xcoff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
ppcboot_vec) tb="$tb ppcboot.lo" ;;
riscix_vec) tb="$tb aout32.lo riscix.lo" ;;
rs6000coff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
rs6000coff_vec) tb="$tb coff-rs6000.lo xcofflink.lo" ;;
shcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlpe_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
shlpei_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
som_vec) tb="$tb som.lo" ;;
sparccoff_vec) tb="$tb coff-sparc.lo" ;;
sparcle_aout_vec) tb="$tb aout-sparcle.lo aout32.lo" ;;
sparclinux_vec) tb="$tb sparclinux.lo aout32.lo" ;;
sparclynx_aout_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;;
sparclynx_coff_vec) tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
sparcnetbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;;
sunos_big_vec) tb="$tb sunos.lo aout32.lo" ;;
sym_vec) tb="$tb xsym.lo" ;;
tic30_aout_vec) tb="$tb aout-tic30.lo" ;;
tic30_coff_vec) tb="$tb coff-tic30.lo" ;;
tic4x_coff0_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff0_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic54x_coff0_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff0_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_vec) tb="$tb coff-tic54x.lo" ;;
tic80coff_vec) tb="$tb coff-tic80.lo cofflink.lo" ;;
vaxnetbsd_vec) tb="$tb vaxnetbsd.lo aout32.lo" ;;
vax1knetbsd_vec) tb="$tb vax1knetbsd.lo aout32.lo" ;;
vaxbsd_vec) tb="$tb vaxbsd.lo aout32.lo" ;;
versados_vec) tb="$tb versados.lo" ;;
vms_alpha_vec) tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;;
vms_lib_txt_vec) tb="$tb vms-lib.lo vms-misc.lo" ;;
w65_vec) tb="$tb coff-w65.lo reloc16.lo" ;;
we32kcoff_vec) tb="$tb coff-we32k.lo" ;;
z80coff_vec) tb="$tb coff-z80.lo reloc16.lo" ;;
z8kcoff_vec) tb="$tb coff-z8k.lo reloc16.lo cofflink.lo" ;;
sh64_elf32_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_linux_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_linux_be_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" target_size=64 ;;
sh64_elf32_nbsd_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
sh64_elf32_nbsd_le_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf cofflink.lo" ;;
sh64_elf64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_linux_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_linux_be_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_nbsd_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh64_elf64_nbsd_le_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;;
sh_coff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_coff_le_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_coff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_coff_small_le_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
sh_elf32_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_fdpic_be_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_fdpic_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_linux_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_linux_be_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_nbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_nbsd_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;;
sh_elf32_symbian_le_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_vxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_elf32_vxworks_le_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;;
sh_pe_le_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
sh_pei_le_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
sparc_aout_le_vec) tb="$tb aout-sparcle.lo aout32.lo" ;;
sparc_aout_linux_vec) tb="$tb sparclinux.lo aout32.lo" ;;
sparc_aout_lynx_vec) tb="$tb sparclynx.lo lynx-core.lo aout32.lo" ;;
sparc_aout_nbsd_vec) tb="$tb sparcnetbsd.lo aout32.lo" ;;
sparc_aout_sunos_be_vec) tb="$tb sunos.lo aout32.lo" ;;
sparc_coff_vec) tb="$tb coff-sparc.lo" ;;
sparc_coff_lynx_vec) tb="$tb cf-sparclynx.lo lynx-core.lo" ;;
sparc_elf32_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
sparc_elf32_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
sparc_elf32_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;;
sparc_elf64_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
sparc_elf64_fbsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
sparc_elf64_sol2_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;;
sparc_nlm32_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
spu_elf32_vec) tb="$tb elf32-spu.lo elf32.lo $elf" ;;
sym_vec) tb="$tb xsym.lo" ;;
tic30_aout_vec) tb="$tb aout-tic30.lo" ;;
tic30_coff_vec) tb="$tb coff-tic30.lo" ;;
tic4x_coff0_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff0_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff1_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_vec) tb="$tb coff-tic4x.lo" ;;
tic4x_coff2_beh_vec) tb="$tb coff-tic4x.lo" ;;
tic54x_coff0_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff0_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff1_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_vec) tb="$tb coff-tic54x.lo" ;;
tic54x_coff2_beh_vec) tb="$tb coff-tic54x.lo" ;;
tic6x_elf32_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_c6000_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_c6000_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_linux_be_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic6x_elf32_linux_le_vec) tb="$tb elf32-tic6x.lo elf32.lo $elf" ;;
tic80_coff_vec) tb="$tb coff-tic80.lo cofflink.lo" ;;
tilegx_elf32_be_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
tilegx_elf32_le_vec) tb="$tb elf32-tilegx.lo elfxx-tilegx.lo elf32.lo $elf" ; target_size=32 ;;
tilegx_elf64_be_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
tilegx_elf64_le_vec) tb="$tb elf64-tilegx.lo elfxx-tilegx.lo elf64.lo $elf" ; target_size=64 ;;
tilepro_elf32_vec) tb="$tb elf32-tilepro.lo elf32.lo $elf" ;;
v800_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
v850_elf32_vec) tb="$tb elf32-v850.lo elf32.lo $elf" ;;
vax_aout_1knbsd_vec) tb="$tb vax1knetbsd.lo aout32.lo" ;;
vax_aout_bsd_vec) tb="$tb vaxbsd.lo aout32.lo" ;;
vax_aout_nbsd_vec) tb="$tb vaxnetbsd.lo aout32.lo" ;;
vax_elf32_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;;
w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo" ;;
we32k_coff_vec) tb="$tb coff-we32k.lo" ;;
x86_64_coff_vec) tb="$tb coff-x86_64.lo cofflink.lo"; target_size=64 ;;
x86_64_elf32_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
x86_64_elf32_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
x86_64_elf64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_nacl_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
x86_64_mach_o_vec) tb="$tb mach-o-x86-64.lo" ;;
x86_64_pe_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
x86_64_pe_be_vec) tb="$tb pe-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
x86_64_pei_vec) tb="$tb pei-x86_64.lo pex64igen.lo cofflink.lo"; target_size=64 ;;
xc16x_elf32_vec) tb="$tb elf32-xc16x.lo elf32.lo $elf" ;;
xgate_elf32_vec) tb="$tb elf32-xgate.lo elf32.lo $elf" ;;
xstormy16_elf32_vec) tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;;
xtensa_elf32_be_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
xtensa_elf32_le_vec) tb="$tb xtensa-isa.lo xtensa-modules.lo elf32-xtensa.lo elf32.lo $elf" ;;
z80_coff_vec) tb="$tb coff-z80.lo reloc16.lo" ;;
z8k_coff_vec) tb="$tb coff-z8k.lo reloc16.lo cofflink.lo" ;;
# These appear out of order in targets.c
srec_vec) tb="$tb srec.lo" ;;
symbolsrec_vec) tb="$tb srec.lo" ;;
tekhex_vec) tb="$tb tekhex.lo" ;;
cisco_core_big_vec) tb="$tb cisco-core.lo" ;;
cisco_core_little_vec) tb="$tb cisco-core.lo" ;;
srec_vec) tb="$tb srec.lo" ;;
symbolsrec_vec) tb="$tb srec.lo" ;;
tekhex_vec) tb="$tb tekhex.lo" ;;
core_cisco_be_vec) tb="$tb cisco-core.lo" ;;
core_cisco_le_vec) tb="$tb cisco-core.lo" ;;
"") ;;
"") ;;
*) AC_MSG_ERROR(*** unknown target vector $vec) ;;
esac
+3 -3
View File
@@ -7,7 +7,7 @@ $!
$! Written by Klaus K"ampf (kkaempf@rmi.de)
$! Rewritten by Tristan Gingold (gingold@adacore.com)
$!
$! Copyright 2012 Free Software Foundation
$! Copyright (C) 2012-2014 Free Software Foundation, Inc.
$!
$! This file is free software; you can redistribute it and/or modify
$! it under the terms of the GNU General Public License as published by
@@ -330,7 +330,7 @@ $ if ARCH.eqs."alpha"
$ then
$ create build.com
$DECK
$ DEFS="""SELECT_VECS=&vms_alpha_vec"","+-
$ DEFS="""SELECT_VECS=&alpha_vms_vec"","+-
"""SELECT_ARCHITECTURES=&bfd_alpha_arch"""
$ FILES="cpu-alpha,vms,vms-hdr,vms-gsd,vms-tir,vms-misc,"
$EOD
@@ -339,7 +339,7 @@ $ if ARCH.eqs."ia64"
$ then
$ create build.com
$DECK
$ DEFS="""SELECT_VECS=&bfd_elf64_ia64_vms_vec"","+-
$ DEFS="""SELECT_VECS=&ia64_elf64_vms_vec"","+-
"""SELECT_ARCHITECTURES=&bfd_ia64_arch"""
$ FILES="cpu-ia64,elf64-ia64,elf-strtab,corefile,stabs,merge,elf-eh-frame,"+-
"elflink,elf-attrs,dwarf1,elf64,"
+2 -2
View File
@@ -1,5 +1,5 @@
#
# Copyright 2012 Free Software Foundation
# Copyright (C) 2012-2014 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
# Since the "bfd/hosts" directory is shared by the bfd, opcodes, and
# binutils directories (at least), the index to it is also shared.
# This is that index. Each configure.in file should source this file
# This is that index. Each configure.ac file should source this file
# in its per-host part.
# This sets the following shell variables:
+1 -2
View File
@@ -1,6 +1,5 @@
/* Core file generic interface routines for BFD.
Copyright 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2002, 2003, 2005,
2007 Free Software Foundation, Inc.
Copyright (C) 1990-2014 Free Software Foundation, Inc.
Written by Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
+1 -1
View File
@@ -1,5 +1,5 @@
/* BFD support for AArch64.
Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright (C) 2009-2014 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of BFD, the Binary File Descriptor library.
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD support for the Alpha architecture.
Copyright 1992, 1993, 1998, 2000, 2002, 2003, 2005, 2007
Free Software Foundation, Inc.
Copyright (C) 1992-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD support for the ARC processor
Copyright 1994, 1995, 1997, 2001, 2002, 2005, 2007, 2012
Free Software Foundation, Inc.
Copyright (C) 1994-2014 Free Software Foundation, Inc.
Contributed by Doug Evans (dje@cygnus.com).
This file is part of BFD, the Binary File Descriptor library.
+1 -2
View File
@@ -1,6 +1,5 @@
/* BFD support for the ARM processor
Copyright 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007,
2009, 2010 Free Software Foundation, Inc.
Copyright (C) 1994-2014 Free Software Foundation, Inc.
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
This file is part of BFD, the Binary File Descriptor library.
+21 -21
View File
@@ -1,6 +1,5 @@
/* BFD library support routines for the AVR architecture.
Copyright 1999, 2000, 2002, 2005, 2006, 2007, 2008
Free Software Foundation, Inc.
Copyright (C) 1999-2014 Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
This file is part of BFD, the Binary File Descriptor library.
@@ -68,7 +67,6 @@ compatible (const bfd_arch_info_type * a,
return a;
if (a->mach == bfd_mach_avr31 && b->mach == bfd_mach_avr3)
return b;
if (a->mach == bfd_mach_avr3 && b->mach == bfd_mach_avr35)
return a;
if (a->mach == bfd_mach_avr35 && b->mach == bfd_mach_avr3)
@@ -79,7 +77,6 @@ compatible (const bfd_arch_info_type * a,
if (a->mach == bfd_mach_avr51 && b->mach == bfd_mach_avr5)
return b;
return NULL;
}
@@ -136,25 +133,28 @@ static const bfd_arch_info_type arch_info_struct[] =
/* 3-Byte PC. */
N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
/* Xmega 1 */
N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
/* Tiny core (AVR Tiny). */
N (16, bfd_mach_avrtiny, "avr:100", FALSE, & arch_info_struct[11]),
/* Xmega 2 */
N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
/* Xmega 1. */
N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[12]),
/* Xmega 3 */
N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
/* Xmega 4 */
N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
/* Xmega 5 */
N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
/* Xmega 6 */
N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
/* Xmega 7 */
/* Xmega 2. */
N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[13]),
/* Xmega 3. */
N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[14]),
/* Xmega 4. */
N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[15]),
/* Xmega 5. */
N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[16]),
/* Xmega 6. */
N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[17]),
/* Xmega 7. */
N (24, bfd_mach_avrxmega7, "avr:107", FALSE, NULL)
};
+1 -1
View File
@@ -1,6 +1,6 @@
/* BFD Support for the ADI Blackfin processor.
Copyright 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 2005-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
+1 -1
View File
@@ -1,5 +1,5 @@
/* BFD support for the CR16 processor.
Copyright 2007 Free Software Foundation, Inc.
Copyright (C) 2007-2014 Free Software Foundation, Inc.
Written by M R Swami Reddy
This file is part of BFD, the Binary File Descriptor library.
+1 -1
View File
@@ -1,5 +1,5 @@
/* BFD support for the CR16C processor.
Copyright 2004, 2005, 2007 Free Software Foundation, Inc.
Copyright (C) 2004-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.

Some files were not shown because too many files have changed in this diff Show More