X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felfxx-target.h;h=fda0f0d4b0ba57519f1b05b4e855fdeacb799b16;hb=2c73f9d86113b392342ec5a8cff8a42be78bd429;hp=5ef3ed0d393fce85d20fcd901b777655fec113a1;hpb=631b10f44e08b1b4daefc4d1ecd0ce9eca0c9a30;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index 5ef3ed0d39..fda0f0d4b0 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -1,5 +1,6 @@ /* Target definitions for NN-bit ELF - Copyright 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -25,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ There are two such structures here: one for big-endian machines and one for little-endian machines. */ -#define bfd_elfNN_close_and_cleanup _bfd_generic_close_and_cleanup +#define bfd_elfNN_close_and_cleanup _bfd_elf_close_and_cleanup #define bfd_elfNN_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #ifndef bfd_elfNN_get_section_contents #define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents @@ -40,7 +41,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol #define bfd_elfNN_get_dynamic_symtab_upper_bound _bfd_elf_get_dynamic_symtab_upper_bound #define bfd_elfNN_get_lineno _bfd_elf_get_lineno +#ifndef bfd_elfNN_get_reloc_upper_bound #define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound +#endif #define bfd_elfNN_get_symbol_info _bfd_elf_get_symbol_info #define bfd_elfNN_get_symtab _bfd_elf_get_symtab #define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound @@ -55,10 +58,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #endif #define bfd_elfNN_sizeof_headers _bfd_elf_sizeof_headers #define bfd_elfNN_write_object_contents _bfd_elf_write_object_contents +#define bfd_elfNN_write_corefile_contents _bfd_elf_write_corefile_contents #define bfd_elfNN_get_section_contents_in_window \ _bfd_generic_get_section_contents_in_window +#ifndef elf_backend_got_symbol_offset +#define elf_backend_got_symbol_offset (bfd_vma) 0 +#endif +#ifndef elf_backend_can_refcount +#define elf_backend_can_refcount 0 +#endif #ifndef elf_backend_want_got_plt #define elf_backend_want_got_plt 0 #endif @@ -68,23 +78,58 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef elf_backend_want_plt_sym #define elf_backend_want_plt_sym 0 #endif - -#ifndef elf_backend_want_hdr_in_seg -#define elf_backend_want_hdr_in_seg 0 +#ifndef elf_backend_plt_not_loaded +#define elf_backend_plt_not_loaded 0 +#endif +#ifndef elf_backend_plt_alignment +#define elf_backend_plt_alignment 2 +#endif +#ifndef elf_backend_want_dynbss +#define elf_backend_want_dynbss 1 #endif #define bfd_elfNN_bfd_debug_info_start bfd_void #define bfd_elfNN_bfd_debug_info_end bfd_void -#define bfd_elfNN_bfd_debug_info_accumulate (PROTO(void,(*),(bfd*, struct sec *))) bfd_void +#define bfd_elfNN_bfd_debug_info_accumulate \ + (void (*) PARAMS ((bfd*, struct sec *))) bfd_void #ifndef bfd_elfNN_bfd_get_relocated_section_contents #define bfd_elfNN_bfd_get_relocated_section_contents \ bfd_generic_get_relocated_section_contents #endif +#ifndef bfd_elfNN_bfd_relax_section #define bfd_elfNN_bfd_relax_section bfd_generic_relax_section +#endif + +#ifndef elf_backend_can_gc_sections +#define elf_backend_can_gc_sections 0 +#endif +#ifndef elf_backend_can_refcount +#define elf_backend_can_refcount 0 +#endif +#ifndef elf_backend_want_got_sym +#define elf_backend_want_got_sym 1 +#endif +#ifndef elf_backend_gc_mark_hook +#define elf_backend_gc_mark_hook NULL +#endif +#ifndef elf_backend_gc_sweep_hook +#define elf_backend_gc_sweep_hook NULL +#endif +#ifndef bfd_elfNN_bfd_gc_sections +#define bfd_elfNN_bfd_gc_sections _bfd_elfNN_gc_sections +#endif + +#ifndef bfd_elfNN_bfd_merge_sections +#define bfd_elfNN_bfd_merge_sections \ + _bfd_elf_merge_sections +#endif + +#ifndef bfd_elfNN_bfd_make_debug_symbol #define bfd_elfNN_bfd_make_debug_symbol \ ((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr) +#endif #ifndef bfd_elfNN_bfd_copy_private_symbol_data #define bfd_elfNN_bfd_copy_private_symbol_data \ @@ -97,11 +142,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #endif #ifndef bfd_elfNN_bfd_copy_private_bfd_data #define bfd_elfNN_bfd_copy_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + _bfd_elf_copy_private_bfd_data #endif #ifndef bfd_elfNN_bfd_print_private_bfd_data #define bfd_elfNN_bfd_print_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, void *))) bfd_true) + _bfd_elf_print_private_bfd_data #endif #ifndef bfd_elfNN_bfd_merge_private_bfd_data #define bfd_elfNN_bfd_merge_private_bfd_data \ @@ -111,17 +156,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define bfd_elfNN_bfd_set_private_flags \ ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true) #endif -#ifndef bfd_elfNN_bfd_is_local_label -#define bfd_elfNN_bfd_is_local_label bfd_generic_is_local_label +#ifndef bfd_elfNN_bfd_is_local_label_name +#define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name #endif #ifndef bfd_elfNN_get_dynamic_reloc_upper_bound #define bfd_elfNN_get_dynamic_reloc_upper_bound \ - _bfd_nodynamic_get_dynamic_reloc_upper_bound + _bfd_elf_get_dynamic_reloc_upper_bound #endif #ifndef bfd_elfNN_canonicalize_dynamic_reloc #define bfd_elfNN_canonicalize_dynamic_reloc \ - _bfd_nodynamic_canonicalize_dynamic_reloc + _bfd_elf_canonicalize_dynamic_reloc #endif #ifdef elf_backend_relocate_section @@ -129,7 +174,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define bfd_elfNN_bfd_link_hash_table_create _bfd_elf_link_hash_table_create #endif #else /* ! defined (elf_backend_relocate_section) */ -/* If no backend relocate_section routine, use the generic linker. */ +/* If no backend relocate_section routine, use the generic linker. + Note - this will prevent the port from being able to use some of + the other features of the ELF linker, because the generic hash structure + does not have the fields needed by the ELF linker. In particular it + means that linking directly to S-records will not work. */ #ifndef bfd_elfNN_bfd_link_hash_table_create #define bfd_elfNN_bfd_link_hash_table_create \ _bfd_generic_link_hash_table_create @@ -145,17 +194,49 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define bfd_elfNN_bfd_link_split_section _bfd_generic_link_split_section #endif +#ifndef bfd_elfNN_archive_p +#define bfd_elfNN_archive_p bfd_generic_archive_p +#endif + +#ifndef bfd_elfNN_write_archive_contents +#define bfd_elfNN_write_archive_contents _bfd_write_archive_contents +#endif + +#ifndef bfd_elfNN_mkobject +#define bfd_elfNN_mkobject bfd_elf_mkobject +#endif + +#ifndef bfd_elfNN_mkcorefile +#define bfd_elfNN_mkcorefile bfd_elf_mkcorefile +#endif + +#ifndef bfd_elfNN_mkarchive +#define bfd_elfNN_mkarchive _bfd_generic_mkarchive +#endif + +#ifndef elf_symbol_leading_char +#define elf_symbol_leading_char 0 +#endif + +#ifndef elf_info_to_howto +#define elf_info_to_howto 0 +#endif + #ifndef elf_info_to_howto_rel #define elf_info_to_howto_rel 0 #endif #ifndef ELF_MAXPAGESIZE + #error ELF_MAXPAGESIZE is not defined #define ELF_MAXPAGESIZE 1 #endif #ifndef elf_backend_collect #define elf_backend_collect false #endif +#ifndef elf_backend_type_change_ok +#define elf_backend_type_change_ok false +#endif #ifndef elf_backend_sym_is_global #define elf_backend_sym_is_global 0 @@ -169,12 +250,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef elf_backend_symbol_table_processing #define elf_backend_symbol_table_processing 0 #endif +#ifndef elf_backend_get_symbol_type +#define elf_backend_get_symbol_type 0 +#endif #ifndef elf_backend_section_processing #define elf_backend_section_processing 0 #endif #ifndef elf_backend_section_from_shdr #define elf_backend_section_from_shdr 0 #endif +#ifndef elf_backend_section_flags +#define elf_backend_section_flags 0 +#endif +#ifndef elf_backend_section_from_phdr +#define elf_backend_section_from_phdr 0 +#endif #ifndef elf_backend_fake_sections #define elf_backend_fake_sections 0 #endif @@ -196,6 +286,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef elf_backend_adjust_dynamic_symbol #define elf_backend_adjust_dynamic_symbol 0 #endif +#ifndef elf_backend_always_size_sections +#define elf_backend_always_size_sections 0 +#endif #ifndef elf_backend_size_dynamic_sections #define elf_backend_size_dynamic_sections 0 #endif @@ -214,12 +307,88 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef elf_backend_final_write_processing #define elf_backend_final_write_processing 0 #endif -#ifndef elf_backend_create_program_headers -#define elf_backend_create_program_headers 0 +#ifndef elf_backend_additional_program_headers +#define elf_backend_additional_program_headers 0 +#endif +#ifndef elf_backend_modify_segment_map +#define elf_backend_modify_segment_map 0 #endif #ifndef elf_backend_ecoff_debug_swap #define elf_backend_ecoff_debug_swap 0 #endif +#ifndef elf_backend_got_header_size +#define elf_backend_got_header_size 0 +#endif +#ifndef elf_backend_plt_header_size +#define elf_backend_plt_header_size 0 +#endif +#ifndef elf_backend_post_process_headers +#define elf_backend_post_process_headers NULL +#endif +#ifndef elf_backend_print_symbol_all +#define elf_backend_print_symbol_all NULL +#endif +#ifndef elf_backend_output_arch_syms +#define elf_backend_output_arch_syms NULL +#endif +#ifndef elf_backend_copy_indirect_symbol +#define elf_backend_copy_indirect_symbol _bfd_elf_link_hash_copy_indirect +#endif +#ifndef elf_backend_hide_symbol +#define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol +#endif +#ifndef elf_backend_emit_relocs +#define elf_backend_emit_relocs NULL +#endif +#ifndef elf_backend_count_relocs +#define elf_backend_count_relocs NULL +#endif +#ifndef elf_backend_grok_prstatus +#define elf_backend_grok_prstatus NULL +#endif +#ifndef elf_backend_grok_psinfo +#define elf_backend_grok_psinfo NULL +#endif +#ifndef elf_backend_sprintf_vma +#define elf_backend_sprintf_vma _bfd_elf_sprintf_vma +#endif +#ifndef elf_backend_fprintf_vma +#define elf_backend_fprintf_vma _bfd_elf_fprintf_vma +#endif +#ifndef elf_backend_reloc_type_class +#define elf_backend_reloc_type_class _bfd_elf_reloc_type_class +#endif +#ifndef elf_backend_discard_info +#define elf_backend_discard_info NULL +#endif +#ifndef elf_backend_ignore_discarded_relocs +#define elf_backend_ignore_discarded_relocs NULL +#endif +#ifndef elf_backend_write_section +#define elf_backend_write_section NULL +#endif + +/* Previously, backends could only use SHT_REL or SHT_RELA relocation + sections, but not both. They defined USE_REL to indicate SHT_REL + sections, and left it undefined to indicated SHT_RELA sections. + For backwards compatibility, we still support this usage. */ +#ifndef USE_REL +#define USE_REL 0 +#else +#undef USE_REL +#define USE_REL 1 +#endif + +/* Use these in new code. */ +#ifndef elf_backend_may_use_rel_p +#define elf_backend_may_use_rel_p USE_REL +#endif +#ifndef elf_backend_may_use_rela_p +#define elf_backend_may_use_rela_p !USE_REL +#endif +#ifndef elf_backend_default_use_rela_p +#define elf_backend_default_use_rela_p !USE_REL +#endif #ifndef ELF_MACHINE_ALT1 #define ELF_MACHINE_ALT1 0 @@ -229,27 +398,33 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define ELF_MACHINE_ALT2 0 #endif +#ifndef elf_backend_size_info +#define elf_backend_size_info _bfd_elfNN_size_info +#endif + +#ifndef elf_backend_sign_extend_vma +#define elf_backend_sign_extend_vma 0 +#endif + extern const struct elf_size_info _bfd_elfNN_size_info; -static CONST struct elf_backend_data elfNN_bed = +#ifndef INCLUDED_TARGET_FILE +static const struct elf_backend_data elfNN_bed = { -#ifdef USE_REL - 0, /* use_rela_p */ -#else - 1, /* use_rela_p */ -#endif ELF_ARCH, /* arch */ ELF_MACHINE_CODE, /* elf_machine_code */ ELF_MAXPAGESIZE, /* maxpagesize */ - elf_backend_collect, elf_info_to_howto, elf_info_to_howto_rel, elf_backend_sym_is_global, elf_backend_object_p, elf_backend_symbol_processing, elf_backend_symbol_table_processing, + elf_backend_get_symbol_type, elf_backend_section_processing, elf_backend_section_from_shdr, + elf_backend_section_flags, + elf_backend_section_from_phdr, elf_backend_fake_sections, elf_backend_section_from_bfd_section, elf_backend_add_symbol_hook, @@ -257,22 +432,61 @@ static CONST struct elf_backend_data elfNN_bed = elf_backend_create_dynamic_sections, elf_backend_check_relocs, elf_backend_adjust_dynamic_symbol, + elf_backend_always_size_sections, elf_backend_size_dynamic_sections, elf_backend_relocate_section, elf_backend_finish_dynamic_symbol, elf_backend_finish_dynamic_sections, elf_backend_begin_write_processing, elf_backend_final_write_processing, - elf_backend_create_program_headers, + elf_backend_additional_program_headers, + elf_backend_modify_segment_map, + elf_backend_gc_mark_hook, + elf_backend_gc_sweep_hook, + elf_backend_post_process_headers, + elf_backend_print_symbol_all, + elf_backend_output_arch_syms, + elf_backend_copy_indirect_symbol, + elf_backend_hide_symbol, + elf_backend_emit_relocs, + elf_backend_count_relocs, + elf_backend_grok_prstatus, + elf_backend_grok_psinfo, + elf_backend_sprintf_vma, + elf_backend_fprintf_vma, + elf_backend_reloc_type_class, + elf_backend_discard_info, + elf_backend_ignore_discarded_relocs, + elf_backend_write_section, elf_backend_ecoff_debug_swap, ELF_MACHINE_ALT1, ELF_MACHINE_ALT2, - &_bfd_elfNN_size_info, + &elf_backend_size_info, + elf_backend_got_symbol_offset, + elf_backend_got_header_size, + elf_backend_plt_header_size, + elf_backend_collect, + elf_backend_type_change_ok, + elf_backend_may_use_rel_p, + elf_backend_may_use_rela_p, + elf_backend_default_use_rela_p, + elf_backend_sign_extend_vma, elf_backend_want_got_plt, elf_backend_plt_readonly, elf_backend_want_plt_sym, - elf_backend_want_hdr_in_seg, + elf_backend_plt_not_loaded, + elf_backend_plt_alignment, + elf_backend_can_gc_sections, + elf_backend_can_refcount, + elf_backend_want_got_sym, + elf_backend_want_dynbss }; +#endif + +/* Forward declaration for use when initialising alternative_target field. */ +#ifdef TARGET_LITTLE_SYM +extern const bfd_target TARGET_LITTLE_SYM; +#endif #ifdef TARGET_BIG_SYM const bfd_target TARGET_BIG_SYM = @@ -283,23 +497,24 @@ const bfd_target TARGET_BIG_SYM = /* flavour: general indication about file */ bfd_target_elf_flavour, - /* byteorder_big_p: data is big endian */ - true, + /* byteorder: data is big endian */ + BFD_ENDIAN_BIG, - /* header_byteorder_big_p: header is also big endian */ - true, + /* header_byteorder: header is also big endian */ + BFD_ENDIAN_BIG, /* object_flags: mask of all file flags */ - (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS | - DYNAMIC | WP_TEXT | D_PAGED), - + (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS + | DYNAMIC | WP_TEXT | D_PAGED), + /* section_flags: mask of all section flags */ - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY | - SEC_CODE | SEC_DATA | SEC_DEBUGGING), + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY + | SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES + | SEC_ARCH_BIT_0 | SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), /* leading_symbol_char: is the first char of a user symbol predictable, and if so what is it */ - 0, + elf_symbol_leading_char, /* ar_pad_char: pad character for filenames within an archive header FIXME: this really has nothing to do with ELF, this is a characteristic @@ -325,36 +540,47 @@ const bfd_target TARGET_BIG_SYM = /* bfd_check_format: check the format of a file being read */ { _bfd_dummy_target, /* unknown format */ bfd_elfNN_object_p, /* assembler/linker output (object file) */ - bfd_generic_archive_p, /* an archive */ + bfd_elfNN_archive_p, /* an archive */ bfd_elfNN_core_file_p /* a core file */ }, /* bfd_set_format: set the format of a file being written */ { bfd_false, - bfd_elf_mkobject, - _bfd_generic_mkarchive, - bfd_false + bfd_elfNN_mkobject, + bfd_elfNN_mkarchive, + bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ { bfd_false, bfd_elfNN_write_object_contents, - _bfd_write_archive_contents, - bfd_false + bfd_elfNN_write_archive_contents, + bfd_elfNN_write_corefile_contents, }, BFD_JUMP_TABLE_GENERIC (bfd_elfNN), BFD_JUMP_TABLE_COPY (bfd_elfNN), BFD_JUMP_TABLE_CORE (bfd_elfNN), +#ifdef bfd_elfNN_archive_functions + BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), +#else BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), +#endif BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), BFD_JUMP_TABLE_RELOCS (bfd_elfNN), BFD_JUMP_TABLE_WRITE (bfd_elfNN), BFD_JUMP_TABLE_LINK (bfd_elfNN), BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), + /* Alternative endian target. */ +#ifdef TARGET_LITTLE_SYM + & TARGET_LITTLE_SYM, +#else + NULL, +#endif + /* backend_data: */ - (PTR) &elfNN_bed, + (PTR) &elfNN_bed }; #endif @@ -367,23 +593,24 @@ const bfd_target TARGET_LITTLE_SYM = /* flavour: general indication about file */ bfd_target_elf_flavour, - /* byteorder_big_p: data is big endian */ - false, /* Nope -- this one's little endian */ + /* byteorder: data is little endian */ + BFD_ENDIAN_LITTLE, - /* header_byteorder_big_p: header is also big endian */ - false, /* Nope -- this one's little endian */ + /* header_byteorder: header is also little endian */ + BFD_ENDIAN_LITTLE, /* object_flags: mask of all file flags */ - (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS | - DYNAMIC | WP_TEXT | D_PAGED), - + (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS + | DYNAMIC | WP_TEXT | D_PAGED), + /* section_flags: mask of all section flags */ - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY | - SEC_CODE | SEC_DATA | SEC_DEBUGGING), + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY + | SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES + | SEC_ARCH_BIT_0 | SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), /* leading_symbol_char: is the first char of a user symbol predictable, and if so what is it */ - 0, + elf_symbol_leading_char, /* ar_pad_char: pad character for filenames within an archive header FIXME: this really has nothing to do with ELF, this is a characteristic @@ -409,35 +636,46 @@ const bfd_target TARGET_LITTLE_SYM = /* bfd_check_format: check the format of a file being read */ { _bfd_dummy_target, /* unknown format */ bfd_elfNN_object_p, /* assembler/linker output (object file) */ - bfd_generic_archive_p, /* an archive */ + bfd_elfNN_archive_p, /* an archive */ bfd_elfNN_core_file_p /* a core file */ }, /* bfd_set_format: set the format of a file being written */ { bfd_false, - bfd_elf_mkobject, - _bfd_generic_mkarchive, - bfd_false + bfd_elfNN_mkobject, + bfd_elfNN_mkarchive, + bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ { bfd_false, bfd_elfNN_write_object_contents, - _bfd_write_archive_contents, - bfd_false + bfd_elfNN_write_archive_contents, + bfd_elfNN_write_corefile_contents, }, BFD_JUMP_TABLE_GENERIC (bfd_elfNN), BFD_JUMP_TABLE_COPY (bfd_elfNN), BFD_JUMP_TABLE_CORE (bfd_elfNN), +#ifdef bfd_elfNN_archive_functions + BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), +#else BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), +#endif BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), BFD_JUMP_TABLE_RELOCS (bfd_elfNN), BFD_JUMP_TABLE_WRITE (bfd_elfNN), BFD_JUMP_TABLE_LINK (bfd_elfNN), BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), + /* Alternative endian target. */ +#ifdef TARGET_BIG_SYM + & TARGET_BIG_SYM, +#else + NULL, +#endif + /* backend_data: */ - (PTR) &elfNN_bed, + (PTR) &elfNN_bed }; #endif