summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/bfd/targets.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/binutils/bfd/targets.c')
-rw-r--r--contrib/binutils/bfd/targets.c56
1 files changed, 51 insertions, 5 deletions
diff --git a/contrib/binutils/bfd/targets.c b/contrib/binutils/bfd/targets.c
index 78b4bbb..d41edf6 100644
--- a/contrib/binutils/bfd/targets.c
+++ b/contrib/binutils/bfd/targets.c
@@ -394,11 +394,14 @@ the tokens.
.CONCAT2 (NAME,_bfd_get_relocated_section_contents), \
.CONCAT2 (NAME,_bfd_relax_section), \
.CONCAT2 (NAME,_bfd_link_hash_table_create), \
+.CONCAT2 (NAME,_bfd_link_hash_table_free), \
.CONCAT2 (NAME,_bfd_link_add_symbols), \
+.CONCAT2 (NAME,_bfd_link_just_syms), \
.CONCAT2 (NAME,_bfd_final_link), \
.CONCAT2 (NAME,_bfd_link_split_section), \
.CONCAT2 (NAME,_bfd_gc_sections), \
-.CONCAT2 (NAME,_bfd_merge_sections)
+.CONCAT2 (NAME,_bfd_merge_sections), \
+.CONCAT2 (NAME,_bfd_discard_group)
. int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean));
. bfd_byte *(*_bfd_get_relocated_section_contents)
. PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
@@ -411,9 +414,15 @@ the tokens.
. different information in this table. *}
. struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *));
.
+. {* Release the memory associated with the linker hash table. *}
+. void (*_bfd_link_hash_table_free) PARAMS ((struct bfd_link_hash_table *));
+.
. {* Add symbols from this object file into the hash table. *}
. boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *));
.
+. {* Indicate that we are only retrieving symbol values from this section. *}
+. void (*_bfd_link_just_syms) PARAMS ((asection *, struct bfd_link_info *));
+.
. {* Do a link based on the link_order structures attached to each
. section of the BFD. *}
. boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
@@ -427,6 +436,9 @@ the tokens.
. {* Attempt to merge SEC_MERGE sections. *}
. boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
.
+. {* Discard members of a group. *}
+. boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *));
+.
. {* Routines to handle dynamic symbols and relocs. *}
.#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
.CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \
@@ -469,6 +481,7 @@ to find an alternative output format that is suitable.
we can't intermix extern's and initializers. */
extern const bfd_target a29kcoff_big_vec;
extern const bfd_target a_out_adobe_vec;
+extern const bfd_target aix5coff64_vec;
extern const bfd_target aout0_big_vec;
extern const bfd_target aout_arm_big_vec;
extern const bfd_target aout_arm_little_vec;
@@ -499,12 +512,16 @@ extern const bfd_target bfd_elf32_bigmips_vec;
extern const bfd_target bfd_elf32_cris_vec;
extern const bfd_target bfd_elf32_d10v_vec;
extern const bfd_target bfd_elf32_d30v_vec;
+extern const bfd_target bfd_elf32_dlx_big_vec;
extern const bfd_target bfd_elf32_fr30_vec;
+extern const bfd_target bfd_elf32_frv_vec;
extern const bfd_target bfd_elf32_h8300_vec;
extern const bfd_target bfd_elf32_hppa_linux_vec;
extern const bfd_target bfd_elf32_hppa_vec;
extern const bfd_target bfd_elf32_i370_vec;
+extern const bfd_target bfd_elf32_i386_freebsd_vec;
extern const bfd_target bfd_elf32_i386_vec;
+extern const bfd_target bfd_elf32_i386qnx_vec;
extern const bfd_target bfd_elf32_i860_little_vec;
extern const bfd_target bfd_elf32_i860_vec;
extern const bfd_target bfd_elf32_i960_vec;
@@ -531,6 +548,10 @@ extern const bfd_target bfd_elf32_pjl_vec;
extern const bfd_target bfd_elf32_powerpc_vec;
extern const bfd_target bfd_elf32_powerpcle_vec;
extern const bfd_target bfd_elf32_s390_vec;
+extern const bfd_target bfd_elf32_sh64_vec;
+extern const bfd_target bfd_elf32_sh64l_vec;
+extern const bfd_target bfd_elf32_sh64lnbsd_vec;
+extern const bfd_target bfd_elf32_sh64nbsd_vec;
extern const bfd_target bfd_elf32_sh_vec;
extern const bfd_target bfd_elf32_shblin_vec;
extern const bfd_target bfd_elf32_shl_vec;
@@ -542,7 +563,9 @@ extern const bfd_target bfd_elf32_tradbigmips_vec;
extern const bfd_target bfd_elf32_tradlittlemips_vec;
extern const bfd_target bfd_elf32_us_cris_vec;
extern const bfd_target bfd_elf32_v850_vec;
+extern const bfd_target bfd_elf32_vax_vec;
extern const bfd_target bfd_elf32_xstormy16_vec;
+extern const bfd_target bfd_elf64_alpha_freebsd_vec;
extern const bfd_target bfd_elf64_alpha_vec;
extern const bfd_target bfd_elf64_big_generic_vec;
extern const bfd_target bfd_elf64_bigmips_vec;
@@ -559,6 +582,10 @@ extern const bfd_target bfd_elf64_mmix_vec;
extern const bfd_target bfd_elf64_powerpc_vec;
extern const bfd_target bfd_elf64_powerpcle_vec;
extern const bfd_target bfd_elf64_s390_vec;
+extern const bfd_target bfd_elf64_sh64_vec;
+extern const bfd_target bfd_elf64_sh64l_vec;
+extern const bfd_target bfd_elf64_sh64lnbsd_vec;
+extern const bfd_target bfd_elf64_sh64nbsd_vec;
extern const bfd_target bfd_elf64_sparc_vec;
extern const bfd_target bfd_elf64_tradbigmips_vec;
extern const bfd_target bfd_elf64_tradlittlemips_vec;
@@ -654,7 +681,9 @@ extern const bfd_target tic54x_coff1_vec;
extern const bfd_target tic54x_coff2_beh_vec;
extern const bfd_target tic54x_coff2_vec;
extern const bfd_target tic80coff_vec;
+extern const bfd_target vaxbsd_vec;
extern const bfd_target vaxnetbsd_vec;
+extern const bfd_target vax1knetbsd_vec;
extern const bfd_target versados_vec;
extern const bfd_target vms_alpha_vec;
extern const bfd_target vms_vax_vec;
@@ -682,10 +711,6 @@ extern const bfd_target ptrace_core_vec;
extern const bfd_target sco5_core_vec;
extern const bfd_target trad_core_vec;
-extern const bfd_target bfd_elf32_sh64_vec;
-extern const bfd_target bfd_elf32_sh64l_vec;
-extern const bfd_target bfd_elf64_sh64_vec;
-extern const bfd_target bfd_elf64_sh64l_vec;
static const bfd_target * const _bfd_target_vector[] = {
#ifdef SELECT_VECS
@@ -705,6 +730,9 @@ static const bfd_target * const _bfd_target_vector[] = {
it wasn't omitted by mistake. */
&a29kcoff_big_vec,
&a_out_adobe_vec,
+#ifdef BFD64
+ &aix5coff64_vec,
+#endif
&aout0_big_vec,
#if 0
/* We have no way of distinguishing these from other a.out variants */
@@ -748,12 +776,16 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf32_cris_vec,
&bfd_elf32_d10v_vec,
&bfd_elf32_d30v_vec,
+ &bfd_elf32_dlx_big_vec,
&bfd_elf32_fr30_vec,
+ &bfd_elf32_frv_vec,
&bfd_elf32_h8300_vec,
&bfd_elf32_hppa_linux_vec,
&bfd_elf32_hppa_vec,
&bfd_elf32_i370_vec,
+ &bfd_elf32_i386_freebsd_vec,
&bfd_elf32_i386_vec,
+ &bfd_elf32_i386qnx_vec,
&bfd_elf32_i860_little_vec,
&bfd_elf32_i860_vec,
&bfd_elf32_i960_vec,
@@ -788,13 +820,21 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf32_shlin_vec,
&bfd_elf32_shlnbsd_vec,
&bfd_elf32_shnbsd_vec,
+#ifdef BFD64
+ &bfd_elf32_sh64_vec,
+ &bfd_elf32_sh64l_vec,
+ &bfd_elf32_sh64lnbsd_vec,
+ &bfd_elf32_sh64nbsd_vec,
+#endif
&bfd_elf32_sparc_vec,
&bfd_elf32_tradbigmips_vec,
&bfd_elf32_tradlittlemips_vec,
&bfd_elf32_us_cris_vec,
&bfd_elf32_v850_vec,
+ &bfd_elf32_vax_vec,
&bfd_elf32_xstormy16_vec,
#ifdef BFD64
+ &bfd_elf64_alpha_freebsd_vec,
&bfd_elf64_alpha_vec,
&bfd_elf64_big_generic_vec,
&bfd_elf64_bigmips_vec,
@@ -811,6 +851,10 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf64_powerpc_vec,
&bfd_elf64_powerpcle_vec,
&bfd_elf64_s390_vec,
+ &bfd_elf64_sh64_vec,
+ &bfd_elf64_sh64l_vec,
+ &bfd_elf64_sh64lnbsd_vec,
+ &bfd_elf64_sh64nbsd_vec,
#if 0
&bfd_elf64_sparc_vec,
#endif
@@ -954,7 +998,9 @@ static const bfd_target * const _bfd_target_vector[] = {
&tic54x_coff2_beh_vec,
&tic54x_coff2_vec,
&tic80coff_vec,
+ &vaxbsd_vec,
&vaxnetbsd_vec,
+ &vax1knetbsd_vec,
&versados_vec,
#ifdef BFD64
&vms_alpha_vec,
OpenPOWER on IntegriCloud