X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Felfxx-target.h;h=4c6b1f203407ed33483b111dd399a454b406e792;hb=415c8100a28d56628c01730ef279c61f99578518;hp=af6d7b8a022a8ef292c9363a2e63ad0062aec144;hpb=68d206766637a041bbbeb89c8a1bfdd76317e192;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index af6d7b8a02..4c6b1f2034 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -1,5 +1,5 @@ /* Target definitions for NN-bit ELF - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2021 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -130,13 +130,13 @@ #define elf_backend_extern_protected_data 0 #endif #ifndef elf_backend_always_renumber_dynsyms -#define elf_backend_always_renumber_dynsyms FALSE +#define elf_backend_always_renumber_dynsyms false #endif #ifndef elf_backend_linux_prpsinfo32_ugid16 -#define elf_backend_linux_prpsinfo32_ugid16 FALSE +#define elf_backend_linux_prpsinfo32_ugid16 false #endif #ifndef elf_backend_linux_prpsinfo64_ugid16 -#define elf_backend_linux_prpsinfo64_ugid16 FALSE +#define elf_backend_linux_prpsinfo64_ugid16 false #endif #ifndef elf_backend_stack_align #define elf_backend_stack_align 16 @@ -145,10 +145,9 @@ #define elf_backend_strtab_flags 0 #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 \ - ((void (*) (bfd*, struct bfd_section *)) bfd_void_any) +#define bfd_elfNN_bfd_debug_info_start _bfd_void_bfd +#define bfd_elfNN_bfd_debug_info_end _bfd_void_bfd +#define bfd_elfNN_bfd_debug_info_accumulate _bfd_void_bfd_asection #ifndef bfd_elfNN_bfd_get_relocated_section_contents #define bfd_elfNN_bfd_get_relocated_section_contents \ @@ -193,6 +192,10 @@ #define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section #endif +#ifndef bfd_elfNN_bfd_group_name +#define bfd_elfNN_bfd_group_name bfd_elf_group_name +#endif + #ifndef bfd_elfNN_bfd_discard_group #define bfd_elfNN_bfd_discard_group bfd_generic_discard_group #endif @@ -206,13 +209,16 @@ #define bfd_elfNN_bfd_define_common_symbol bfd_generic_define_common_symbol #endif +#ifndef bfd_elfNN_bfd_link_hide_symbol +#define bfd_elfNN_bfd_link_hide_symbol _bfd_elf_link_hide_symbol +#endif + #ifndef bfd_elfNN_bfd_lookup_section_flags #define bfd_elfNN_bfd_lookup_section_flags bfd_elf_lookup_section_flags #endif #ifndef bfd_elfNN_bfd_make_debug_symbol -#define bfd_elfNN_bfd_make_debug_symbol \ - ((asymbol * (*) (bfd *, void *, unsigned long)) bfd_nullvoidptr_any) +#define bfd_elfNN_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #endif #ifndef bfd_elfNN_bfd_copy_private_symbol_data @@ -237,19 +243,16 @@ _bfd_elf_print_private_bfd_data #endif #ifndef bfd_elfNN_bfd_merge_private_bfd_data -#define bfd_elfNN_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_true_any) +#define bfd_elfNN_bfd_merge_private_bfd_data _bfd_bool_bfd_link_true #endif #ifndef bfd_elfNN_bfd_set_private_flags -#define bfd_elfNN_bfd_set_private_flags \ - ((bfd_boolean (*) (bfd *, flagword)) bfd_true_any) +#define bfd_elfNN_bfd_set_private_flags _bfd_bool_bfd_uint_true #endif #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_bfd_is_target_special_symbol -#define bfd_elfNN_bfd_is_target_special_symbol \ - ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false_any) +#define bfd_elfNN_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #endif #ifndef bfd_elfNN_get_dynamic_reloc_upper_bound @@ -344,11 +347,11 @@ #endif #ifndef elf_info_to_howto -#define elf_info_to_howto 0 +#define elf_info_to_howto NULL #endif #ifndef elf_info_to_howto_rel -#define elf_info_to_howto_rel 0 +#define elf_info_to_howto_rel NULL #endif #ifndef elf_backend_arch_data @@ -359,6 +362,10 @@ #define ELF_TARGET_ID GENERIC_ELF_DATA #endif +#ifndef ELF_TARGET_OS +#define ELF_TARGET_OS is_normal +#endif + #ifndef ELF_OSABI #define ELF_OSABI ELFOSABI_NONE #endif @@ -372,6 +379,10 @@ #define ELF_COMMONPAGESIZE ELF_MAXPAGESIZE #endif +#ifndef ELF_RELROPAGESIZE +#define ELF_RELROPAGESIZE ELF_COMMONPAGESIZE +#endif + #ifndef ELF_MINPAGESIZE #define ELF_MINPAGESIZE ELF_COMMONPAGESIZE #endif @@ -379,9 +390,15 @@ #if ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE # error ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE #endif +#if ELF_RELROPAGESIZE > ELF_MAXPAGESIZE +# error ELF_RELROPAGESIZE > ELF_MAXPAGESIZE +#endif #if ELF_MINPAGESIZE > ELF_COMMONPAGESIZE # error ELF_MINPAGESIZE > ELF_COMMONPAGESIZE #endif +#if ELF_MINPAGESIZE > ELF_RELROPAGESIZE +# error ELF_MINPAGESIZE > ELF_RELROPAGESIZE +#endif #ifndef ELF_DYNAMIC_SEC_FLAGS /* Note that we set the SEC_IN_MEMORY flag for these sections. */ @@ -391,10 +408,10 @@ #endif #ifndef elf_backend_collect -#define elf_backend_collect FALSE +#define elf_backend_collect false #endif #ifndef elf_backend_type_change_ok -#define elf_backend_type_change_ok FALSE +#define elf_backend_type_change_ok false #endif #ifndef elf_backend_sym_is_global @@ -449,7 +466,7 @@ #define elf_backend_create_dynamic_sections 0 #endif #ifndef elf_backend_omit_section_dynsym -#define elf_backend_omit_section_dynsym _bfd_elf_link_omit_section_dynsym +#define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_default #endif #ifndef elf_backend_relocs_compatible #define elf_backend_relocs_compatible _bfd_elf_default_relocs_compatible @@ -472,9 +489,11 @@ #ifndef elf_backend_size_dynamic_sections #define elf_backend_size_dynamic_sections 0 #endif +#ifndef elf_backend_strip_zero_sized_dynamic_sections +#define elf_backend_strip_zero_sized_dynamic_sections 0 +#endif #ifndef elf_backend_init_index_section -#define elf_backend_init_index_section \ - ((void (*) (bfd *, struct bfd_link_info *)) bfd_void_any) +#define elf_backend_init_index_section _bfd_void_bfd_link #endif #ifndef elf_backend_relocate_section #define elf_backend_relocate_section 0 @@ -489,7 +508,7 @@ #define elf_backend_begin_write_processing 0 #endif #ifndef elf_backend_final_write_processing -#define elf_backend_final_write_processing 0 +#define elf_backend_final_write_processing _bfd_elf_final_write_processing #endif #ifndef elf_backend_additional_program_headers #define elf_backend_additional_program_headers 0 @@ -497,12 +516,11 @@ #ifndef elf_backend_modify_segment_map #define elf_backend_modify_segment_map 0 #endif -#ifndef elf_backend_modify_program_headers -#define elf_backend_modify_program_headers 0 +#ifndef elf_backend_modify_headers +#define elf_backend_modify_headers _bfd_elf_modify_headers #endif #ifndef elf_backend_allow_non_load_phdr -#define elf_backend_allow_non_load_phdr \ - ((bfd_boolean (*) (bfd *, const Elf_Internal_Phdr *, unsigned)) bfd_false_any) +#define elf_backend_allow_non_load_phdr 0 #endif #ifndef elf_backend_ecoff_debug_swap #define elf_backend_ecoff_debug_swap 0 @@ -510,6 +528,9 @@ #ifndef elf_backend_bfd_from_remote_memory #define elf_backend_bfd_from_remote_memory _bfd_elfNN_bfd_from_remote_memory #endif +#ifndef elf_backend_core_find_build_id +#define elf_backend_core_find_build_id _bfd_elfNN_core_find_build_id +#endif #ifndef elf_backend_got_header_size #define elf_backend_got_header_size 0 #endif @@ -543,11 +564,14 @@ #ifndef elf_backend_setup_gnu_properties #define elf_backend_setup_gnu_properties _bfd_elf_link_setup_gnu_properties #endif +#ifndef elf_backend_fixup_gnu_properties +#define elf_backend_fixup_gnu_properties NULL +#endif #ifndef elf_backend_static_tls_alignment #define elf_backend_static_tls_alignment 1 #endif -#ifndef elf_backend_post_process_headers -#define elf_backend_post_process_headers _bfd_elf_post_process_headers +#ifndef elf_backend_init_file_header +#define elf_backend_init_file_header _bfd_elf_init_file_header #endif #ifndef elf_backend_print_symbol_all #define elf_backend_print_symbol_all NULL @@ -636,6 +660,9 @@ #ifndef elf_backend_write_section #define elf_backend_write_section NULL #endif +#ifndef elf_backend_elfsym_local_is_section +#define elf_backend_elfsym_local_is_section NULL +#endif #ifndef elf_backend_mips_irix_compat #define elf_backend_mips_irix_compat NULL #endif @@ -724,6 +751,10 @@ #define elf_backend_hash_symbol _bfd_elf_hash_symbol #endif +#ifndef elf_backend_record_xhash_symbol +#define elf_backend_record_xhash_symbol NULL +#endif + #ifndef elf_backend_is_function_type #define elf_backend_is_function_type _bfd_elf_is_function_type #endif @@ -737,7 +768,7 @@ #endif #ifndef elf_backend_copy_special_section_fields -#define elf_backend_copy_special_section_fields NULL +#define elf_backend_copy_special_section_fields _bfd_elf_copy_special_section_fields #endif #ifndef elf_backend_compact_eh_encoding @@ -745,9 +776,25 @@ #endif #ifndef elf_backend_cant_unwind_opcode -#define elf_backend_cant_unwind_opcode 0 +#define elf_backend_cant_unwind_opcode NULL +#endif + +#ifndef elf_backend_init_secondary_reloc_section +#define elf_backend_init_secondary_reloc_section _bfd_elf_init_secondary_reloc_section +#endif + +#ifndef elf_backend_slurp_secondary_reloc_section +#define elf_backend_slurp_secondary_reloc_section _bfd_elf_slurp_secondary_reloc_section +#endif + +#ifndef elf_backend_write_secondary_reloc_section +#define elf_backend_write_secondary_reloc_section _bfd_elf_write_secondary_reloc_section #endif +#ifndef elf_backend_symbol_section_index +#define elf_backend_symbol_section_index NULL +#endif + #ifndef elf_match_priority #define elf_match_priority \ (ELF_ARCH == bfd_arch_unknown ? 2 : ELF_OSABI == ELFOSABI_NONE ? 1 : 0) @@ -755,15 +802,17 @@ extern const struct elf_size_info _bfd_elfNN_size_info; -static struct elf_backend_data elfNN_bed = +static const struct elf_backend_data elfNN_bed = { ELF_ARCH, /* arch */ ELF_TARGET_ID, /* target_id */ + ELF_TARGET_OS, /* target_os */ ELF_MACHINE_CODE, /* elf_machine_code */ ELF_OSABI, /* elf_osabi */ ELF_MAXPAGESIZE, /* maxpagesize */ ELF_MINPAGESIZE, /* minpagesize */ ELF_COMMONPAGESIZE, /* commonpagesize */ + ELF_RELROPAGESIZE, /* commonpagesize to use with -z relro */ ELF_DYNAMIC_SEC_FLAGS, /* dynamic_sec_flags */ elf_backend_arch_data, elf_info_to_howto, @@ -793,6 +842,7 @@ static struct elf_backend_data elfNN_bed = elf_backend_adjust_dynamic_symbol, elf_backend_always_size_sections, elf_backend_size_dynamic_sections, + elf_backend_strip_zero_sized_dynamic_sections, elf_backend_init_index_section, elf_backend_relocate_section, elf_backend_finish_dynamic_symbol, @@ -801,13 +851,13 @@ static struct elf_backend_data elfNN_bed = elf_backend_final_write_processing, elf_backend_additional_program_headers, elf_backend_modify_segment_map, - elf_backend_modify_program_headers, + elf_backend_modify_headers, elf_backend_allow_non_load_phdr, elf_backend_gc_keep, elf_backend_gc_mark_dynamic_ref, elf_backend_gc_mark_hook, elf_backend_gc_mark_extra_sections, - elf_backend_post_process_headers, + elf_backend_init_file_header, elf_backend_print_symbol_all, elf_backend_output_arch_local_syms, elf_backend_output_arch_syms, @@ -837,16 +887,19 @@ static struct elf_backend_data elfNN_bed = elf_backend_can_make_lsda_relative_eh_frame, elf_backend_encode_eh_address, elf_backend_write_section, + elf_backend_elfsym_local_is_section, elf_backend_mips_irix_compat, elf_backend_mips_rtype_to_howto, elf_backend_ecoff_debug_swap, elf_backend_bfd_from_remote_memory, + elf_backend_core_find_build_id, elf_backend_plt_sym_val, elf_backend_common_definition, elf_backend_common_section_index, elf_backend_common_section, elf_backend_merge_symbol, elf_backend_hash_symbol, + elf_backend_record_xhash_symbol, elf_backend_is_function_type, elf_backend_maybe_function_sym, elf_backend_get_reloc_section, @@ -868,8 +921,13 @@ static struct elf_backend_data elfNN_bed = elf_backend_parse_gnu_properties, elf_backend_merge_gnu_properties, elf_backend_setup_gnu_properties, + elf_backend_fixup_gnu_properties, elf_backend_compact_eh_encoding, elf_backend_cant_unwind_opcode, + elf_backend_symbol_section_index, + elf_backend_init_secondary_reloc_section, + elf_backend_slurp_secondary_reloc_section, + elf_backend_write_secondary_reloc_section, elf_backend_static_tls_alignment, elf_backend_stack_align, elf_backend_strtab_flags, @@ -949,6 +1007,9 @@ const bfd_target TARGET_BIG_SYM = elf_match_priority, + /* TRUE if unused section symbols should be kept. */ + TARGET_KEEP_UNUSED_SECTION_SYMBOLS, + /* Routines to byte-swap various sized integers from the data sections */ bfd_getb64, bfd_getb_signed_64, bfd_putb64, bfd_getb32, bfd_getb_signed_32, bfd_putb32, @@ -967,14 +1028,14 @@ const bfd_target TARGET_BIG_SYM = }, /* bfd_set_format: set the format of a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_mkobject, bfd_elfNN_mkarchive, bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_write_object_contents, bfd_elfNN_write_archive_contents, bfd_elfNN_write_corefile_contents, @@ -1050,6 +1111,9 @@ const bfd_target TARGET_LITTLE_SYM = elf_match_priority, + /* TRUE if unused section symbols should be kept. */ + TARGET_KEEP_UNUSED_SECTION_SYMBOLS, + /* Routines to byte-swap various sized integers from the data sections */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, bfd_getl32, bfd_getl_signed_32, bfd_putl32, @@ -1068,14 +1132,14 @@ const bfd_target TARGET_LITTLE_SYM = }, /* bfd_set_format: set the format of a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_mkobject, bfd_elfNN_mkarchive, bfd_elfNN_mkcorefile }, /* bfd_write_contents: write cached information into a file being written */ - { bfd_false, + { _bfd_bool_bfd_false_error, bfd_elfNN_write_object_contents, bfd_elfNN_write_archive_contents, bfd_elfNN_write_corefile_contents,