mirror of
https://github.com/autc04/Retro68.git
synced 2026-04-25 20:18:50 +00:00
Update binutils to 2.25.1
This commit is contained in:
+193
-1
@@ -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.
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
+7
-12
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
@@ -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
@@ -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}" ;\
|
||||
|
||||
@@ -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
@@ -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
@@ -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,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
|
||||
|
||||
@@ -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,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.
|
||||
|
||||
|
||||
@@ -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
@@ -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,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.
|
||||
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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,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,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
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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,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,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.
|
||||
|
||||
@@ -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
@@ -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
|
||||
};
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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,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
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
|
||||
Vendored
+470
-384
@@ -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
|
||||
|
||||
@@ -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,"
|
||||
|
||||
@@ -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,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,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,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,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,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
@@ -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,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,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,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
Reference in New Issue
Block a user