X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felfxx-target.h;h=072efaa93d7bf5735889657abe7c800ad5bac61f;hb=5524b5250e319f41933605420e9526fb74cfb9ae;hp=0085d6ccc278a1430242412fb20ec4399a04ade6;hpb=cd6faa73f8e3b888ee8b73a733382a5587aca202;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index 0085d6ccc2..072efaa93d 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -1,5 +1,5 @@ /* Target definitions for NN-bit ELF - Copyright (C) 1993-2015 Free Software Foundation, Inc. + Copyright (C) 1993-2017 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -46,6 +46,9 @@ #ifndef bfd_elfNN_canonicalize_reloc #define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc #endif +#ifndef bfd_elfNN_set_reloc +#define bfd_elfNN_set_reloc _bfd_generic_set_reloc +#endif #ifndef bfd_elfNN_find_nearest_line #define bfd_elfNN_find_nearest_line _bfd_elf_find_nearest_line #endif @@ -108,9 +111,15 @@ #ifndef elf_backend_want_dynbss #define elf_backend_want_dynbss 1 #endif +#ifndef elf_backend_want_dynrelro +#define elf_backend_want_dynrelro 0 +#endif #ifndef elf_backend_want_p_paddr_set_to_zero #define elf_backend_want_p_paddr_set_to_zero 0 #endif +#ifndef elf_backend_no_page_alias +#define elf_backend_no_page_alias 0 +#endif #ifndef elf_backend_default_execstack #define elf_backend_default_execstack 1 #endif @@ -120,9 +129,15 @@ #ifndef elf_backend_extern_protected_data #define elf_backend_extern_protected_data 0 #endif +#ifndef elf_backend_always_renumber_dynsyms +#define elf_backend_always_renumber_dynsyms FALSE +#endif #ifndef elf_backend_stack_align #define elf_backend_stack_align 16 #endif +#ifndef elf_backend_strtab_flags +#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 @@ -220,7 +235,7 @@ #endif #ifndef bfd_elfNN_bfd_merge_private_bfd_data #define bfd_elfNN_bfd_merge_private_bfd_data \ - ((bfd_boolean (*) (bfd *, bfd *)) bfd_true) + ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_true) #endif #ifndef bfd_elfNN_bfd_set_private_flags #define bfd_elfNN_bfd_set_private_flags \ @@ -247,6 +262,10 @@ #ifndef bfd_elfNN_bfd_link_hash_table_create #define bfd_elfNN_bfd_link_hash_table_create _bfd_elf_link_hash_table_create #endif +#ifndef bfd_elfNN_bfd_copy_link_hash_symbol_type +#define bfd_elfNN_bfd_copy_link_hash_symbol_type \ + _bfd_elf_copy_link_hash_symbol_type +#endif #ifndef bfd_elfNN_bfd_link_add_symbols #define bfd_elfNN_bfd_link_add_symbols bfd_elf_link_add_symbols #endif @@ -263,6 +282,10 @@ #define bfd_elfNN_bfd_link_hash_table_create \ _bfd_generic_link_hash_table_create #endif +#ifndef bfd_elfNN_bfd_copy_link_hash_symbol_type +#define bfd_elfNN_bfd_copy_link_hash_symbol_type \ + _bfd_generic_copy_link_hash_symbol_type +#endif #ifndef bfd_elfNN_bfd_link_add_symbols #define bfd_elfNN_bfd_link_add_symbols _bfd_generic_link_add_symbols #endif @@ -275,15 +298,14 @@ #define bfd_elfNN_bfd_link_just_syms _bfd_elf_link_just_syms #endif -#ifndef bfd_elfNN_bfd_copy_link_hash_symbol_type -#define bfd_elfNN_bfd_copy_link_hash_symbol_type \ - _bfd_elf_copy_link_hash_symbol_type -#endif - #ifndef bfd_elfNN_bfd_link_split_section #define bfd_elfNN_bfd_link_split_section _bfd_generic_link_split_section #endif +#ifndef bfd_elfNN_bfd_link_check_relocs +#define bfd_elfNN_bfd_link_check_relocs _bfd_elf_link_check_relocs +#endif + #ifndef bfd_elfNN_archive_p #define bfd_elfNN_archive_p bfd_generic_archive_p #endif @@ -469,6 +491,10 @@ #ifndef elf_backend_modify_program_headers #define elf_backend_modify_program_headers 0 #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) +#endif #ifndef elf_backend_ecoff_debug_swap #define elf_backend_ecoff_debug_swap 0 #endif @@ -499,6 +525,15 @@ #ifndef elf_backend_obj_attrs_handle_unknown #define elf_backend_obj_attrs_handle_unknown NULL #endif +#ifndef elf_backend_parse_gnu_properties +#define elf_backend_parse_gnu_properties NULL +#endif +#ifndef elf_backend_merge_gnu_properties +#define elf_backend_merge_gnu_properties NULL +#endif +#ifndef elf_backend_setup_gnu_properties +#define elf_backend_setup_gnu_properties _bfd_elf_link_setup_gnu_properties +#endif #ifndef elf_backend_static_tls_alignment #define elf_backend_static_tls_alignment 1 #endif @@ -514,11 +549,14 @@ #ifndef elf_backend_output_arch_syms #define elf_backend_output_arch_syms NULL #endif +#ifndef elf_backend_filter_implib_symbols +#define elf_backend_filter_implib_symbols NULL +#endif #ifndef elf_backend_copy_indirect_symbol -#define elf_backend_copy_indirect_symbol _bfd_elf_link_hash_copy_indirect +#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 +#define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol #endif #ifndef elf_backend_fixup_symbol #define elf_backend_fixup_symbol NULL @@ -535,9 +573,15 @@ #ifndef elf_backend_emit_relocs #define elf_backend_emit_relocs _bfd_elf_link_output_relocs #endif +#ifndef elf_backend_update_relocs +#define elf_backend_update_relocs NULL +#endif #ifndef elf_backend_count_relocs #define elf_backend_count_relocs NULL #endif +#ifndef elf_backend_count_additional_relocs +#define elf_backend_count_additional_relocs NULL +#endif #ifndef elf_backend_sort_relocs_p #define elf_backend_sort_relocs_p NULL #endif @@ -613,6 +657,10 @@ #define elf_backend_rela_normal 0 #endif +#ifndef elf_backend_dtrel_excludes_plt +#define elf_backend_dtrel_excludes_plt 0 +#endif + #ifndef elf_backend_plt_sym_val #define elf_backend_plt_sym_val NULL #endif @@ -641,7 +689,7 @@ #endif #ifndef elf_backend_link_order_error_handler -#define elf_backend_link_order_error_handler _bfd_default_error_handler +#define elf_backend_link_order_error_handler _bfd_error_handler #endif #ifndef elf_backend_common_definition @@ -673,7 +721,19 @@ #endif #ifndef elf_backend_get_reloc_section -#define elf_backend_get_reloc_section _bfd_elf_get_reloc_section +#define elf_backend_get_reloc_section _bfd_elf_plt_get_reloc_section +#endif + +#ifndef elf_backend_copy_special_section_fields +#define elf_backend_copy_special_section_fields NULL +#endif + +#ifndef elf_backend_compact_eh_encoding +#define elf_backend_compact_eh_encoding NULL +#endif + +#ifndef elf_backend_cant_unwind_opcode +#define elf_backend_cant_unwind_opcode 0 #endif #ifndef elf_match_priority @@ -730,6 +790,7 @@ static struct elf_backend_data elfNN_bed = elf_backend_additional_program_headers, elf_backend_modify_segment_map, elf_backend_modify_program_headers, + elf_backend_allow_non_load_phdr, elf_backend_gc_keep, elf_backend_gc_mark_dynamic_ref, elf_backend_gc_mark_hook, @@ -739,6 +800,7 @@ static struct elf_backend_data elfNN_bed = elf_backend_print_symbol_all, elf_backend_output_arch_local_syms, elf_backend_output_arch_syms, + elf_backend_filter_implib_symbols, elf_backend_copy_indirect_symbol, elf_backend_hide_symbol, elf_backend_fixup_symbol, @@ -746,7 +808,9 @@ static struct elf_backend_data elfNN_bed = elf_backend_get_target_dtag, elf_backend_ignore_undef_symbol, elf_backend_emit_relocs, + elf_backend_update_relocs, elf_backend_count_relocs, + elf_backend_count_additional_relocs, elf_backend_sort_relocs_p, elf_backend_grok_prstatus, elf_backend_grok_psinfo, @@ -774,6 +838,7 @@ static struct elf_backend_data elfNN_bed = elf_backend_is_function_type, elf_backend_maybe_function_sym, elf_backend_get_reloc_section, + elf_backend_copy_special_section_fields, elf_backend_link_order_error_handler, elf_backend_relplt_name, ELF_MACHINE_ALT1, @@ -788,8 +853,14 @@ static struct elf_backend_data elfNN_bed = elf_backend_obj_attrs_section_type, elf_backend_obj_attrs_order, elf_backend_obj_attrs_handle_unknown, + elf_backend_parse_gnu_properties, + elf_backend_merge_gnu_properties, + elf_backend_setup_gnu_properties, + elf_backend_compact_eh_encoding, + elf_backend_cant_unwind_opcode, elf_backend_static_tls_alignment, elf_backend_stack_align, + elf_backend_strtab_flags, elf_backend_collect, elf_backend_type_change_ok, elf_backend_may_use_rel_p, @@ -797,6 +868,7 @@ static struct elf_backend_data elfNN_bed = elf_backend_default_use_rela_p, elf_backend_rela_plts_and_copies_p, elf_backend_rela_normal, + elf_backend_dtrel_excludes_plt, elf_backend_sign_extend_vma, elf_backend_want_got_plt, elf_backend_plt_readonly, @@ -807,10 +879,13 @@ static struct elf_backend_data elfNN_bed = elf_backend_can_refcount, elf_backend_want_got_sym, elf_backend_want_dynbss, + elf_backend_want_dynrelro, elf_backend_want_p_paddr_set_to_zero, + elf_backend_no_page_alias, elf_backend_default_execstack, elf_backend_caches_rawsize, - elf_backend_extern_protected_data + elf_backend_extern_protected_data, + elf_backend_always_renumber_dynsyms }; /* Forward declaration for use when initialising alternative_target field. */ @@ -836,7 +911,7 @@ const bfd_target TARGET_BIG_SYM = /* object_flags: mask of all file flags */ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS - | BFD_COMPRESS_GABI), + | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON), /* section_flags: mask of all section flags */ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY @@ -896,6 +971,8 @@ const bfd_target TARGET_BIG_SYM = BFD_JUMP_TABLE_CORE (bfd_elfNN), #ifdef bfd_elfNN_archive_functions BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), +#elif defined USE_64_BIT_ARCHIVE + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_64_bit), #else BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), #endif @@ -935,7 +1012,7 @@ const bfd_target TARGET_LITTLE_SYM = /* object_flags: mask of all file flags */ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS - | BFD_COMPRESS_GABI), + | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON), /* section_flags: mask of all section flags */ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY @@ -995,6 +1072,8 @@ const bfd_target TARGET_LITTLE_SYM = BFD_JUMP_TABLE_CORE (bfd_elfNN), #ifdef bfd_elfNN_archive_functions BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), +#elif defined USE_64_BIT_ARCHIVE + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_64_bit), #else BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), #endif