diff options
author | obrien <obrien@FreeBSD.org> | 2000-05-12 23:15:20 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2000-05-12 23:15:20 +0000 |
commit | 2a9ea95d682586d2b0c31da28d82a73d786c7c0a (patch) | |
tree | 9d4ce42d357c391a11d77254b770908c02ecf672 /contrib/binutils/bfd/elfxx-target.h | |
parent | bffe850874e72664f78cf171ab1c4339b9b63cab (diff) | |
download | FreeBSD-src-2a9ea95d682586d2b0c31da28d82a73d786c7c0a.zip FreeBSD-src-2a9ea95d682586d2b0c31da28d82a73d786c7c0a.tar.gz |
Import of Binutils 2.10 snapshot.
Diffstat (limited to 'contrib/binutils/bfd/elfxx-target.h')
-rw-r--r-- | contrib/binutils/bfd/elfxx-target.h | 135 |
1 files changed, 121 insertions, 14 deletions
diff --git a/contrib/binutils/bfd/elfxx-target.h b/contrib/binutils/bfd/elfxx-target.h index e4d2b3d..b1f4867 100644 --- a/contrib/binutils/bfd/elfxx-target.h +++ b/contrib/binutils/bfd/elfxx-target.h @@ -57,6 +57,7 @@ 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 @@ -79,6 +80,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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 @@ -93,6 +97,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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_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 + #define bfd_elfNN_bfd_make_debug_symbol \ ((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr) @@ -167,6 +184,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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 @@ -184,6 +205,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #endif #ifndef ELF_MAXPAGESIZE + #error ELF_MAXPAGESIZE is not defined #define ELF_MAXPAGESIZE 1 #endif @@ -206,12 +228,18 @@ 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_from_phdr +#define elf_backend_section_from_phdr 0 +#endif #ifndef elf_backend_fake_sections #define elf_backend_fake_sections 0 #endif @@ -263,6 +291,50 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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 + + +/* 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 @@ -276,28 +348,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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 = { -#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_backend_type_change_ok, 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_from_phdr, elf_backend_fake_sections, elf_backend_section_from_bfd_section, elf_backend_add_symbol_hook, @@ -314,18 +385,40 @@ static CONST struct elf_backend_data elfNN_bed = elf_backend_final_write_processing, 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_ecoff_debug_swap, ELF_MACHINE_ALT1, ELF_MACHINE_ALT2, &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_plt_not_loaded, - elf_backend_plt_alignment + elf_backend_plt_alignment, + elf_backend_can_gc_sections, + elf_backend_want_dynbss }; +/* 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 = { @@ -385,14 +478,14 @@ const bfd_target TARGET_BIG_SYM = { bfd_false, bfd_elfNN_mkobject, bfd_elfNN_mkarchive, - bfd_false + bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ { bfd_false, bfd_elfNN_write_object_contents, bfd_elfNN_write_archive_contents, - bfd_false + bfd_elfNN_write_corefile_contents, }, BFD_JUMP_TABLE_GENERIC (bfd_elfNN), @@ -409,8 +502,15 @@ const bfd_target TARGET_BIG_SYM = 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 @@ -473,14 +573,14 @@ const bfd_target TARGET_LITTLE_SYM = { bfd_false, bfd_elfNN_mkobject, bfd_elfNN_mkarchive, - bfd_false + bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ { bfd_false, bfd_elfNN_write_object_contents, bfd_elfNN_write_archive_contents, - bfd_false + bfd_elfNN_write_corefile_contents, }, BFD_JUMP_TABLE_GENERIC (bfd_elfNN), @@ -497,7 +597,14 @@ const bfd_target TARGET_LITTLE_SYM = 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 |