1*fae548d3Szrj /* Target definitions for NN-bit ELF 2*fae548d3Szrj Copyright (C) 1993-2020 Free Software Foundation, Inc. 3*fae548d3Szrj 4*fae548d3Szrj This file is part of BFD, the Binary File Descriptor library. 5*fae548d3Szrj 6*fae548d3Szrj This program is free software; you can redistribute it and/or modify 7*fae548d3Szrj it under the terms of the GNU General Public License as published by 8*fae548d3Szrj the Free Software Foundation; either version 3 of the License, or 9*fae548d3Szrj (at your option) any later version. 10*fae548d3Szrj 11*fae548d3Szrj This program is distributed in the hope that it will be useful, 12*fae548d3Szrj but WITHOUT ANY WARRANTY; without even the implied warranty of 13*fae548d3Szrj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*fae548d3Szrj GNU General Public License for more details. 15*fae548d3Szrj 16*fae548d3Szrj You should have received a copy of the GNU General Public License 17*fae548d3Szrj along with this program; if not, write to the Free Software 18*fae548d3Szrj Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 19*fae548d3Szrj MA 02110-1301, USA. */ 20*fae548d3Szrj 21*fae548d3Szrj 22*fae548d3Szrj /* This structure contains everything that BFD knows about a target. 23*fae548d3Szrj It includes things like its byte order, name, what routines to call 24*fae548d3Szrj to do various operations, etc. Every BFD points to a target structure 25*fae548d3Szrj with its "xvec" member. 26*fae548d3Szrj 27*fae548d3Szrj There are two such structures here: one for big-endian machines and 28*fae548d3Szrj one for little-endian machines. */ 29*fae548d3Szrj 30*fae548d3Szrj #ifndef bfd_elfNN_close_and_cleanup 31*fae548d3Szrj #define bfd_elfNN_close_and_cleanup _bfd_elf_close_and_cleanup 32*fae548d3Szrj #endif 33*fae548d3Szrj #ifndef bfd_elfNN_bfd_free_cached_info 34*fae548d3Szrj #define bfd_elfNN_bfd_free_cached_info _bfd_free_cached_info 35*fae548d3Szrj #endif 36*fae548d3Szrj #ifndef bfd_elfNN_get_section_contents 37*fae548d3Szrj #define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents 38*fae548d3Szrj #endif 39*fae548d3Szrj 40*fae548d3Szrj #define bfd_elfNN_canonicalize_dynamic_symtab \ 41*fae548d3Szrj _bfd_elf_canonicalize_dynamic_symtab 42*fae548d3Szrj #ifndef bfd_elfNN_get_synthetic_symtab 43*fae548d3Szrj #define bfd_elfNN_get_synthetic_symtab \ 44*fae548d3Szrj _bfd_elf_get_synthetic_symtab 45*fae548d3Szrj #endif 46*fae548d3Szrj #ifndef bfd_elfNN_canonicalize_reloc 47*fae548d3Szrj #define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc 48*fae548d3Szrj #endif 49*fae548d3Szrj #ifndef bfd_elfNN_set_reloc 50*fae548d3Szrj #define bfd_elfNN_set_reloc _bfd_generic_set_reloc 51*fae548d3Szrj #endif 52*fae548d3Szrj #ifndef bfd_elfNN_find_nearest_line 53*fae548d3Szrj #define bfd_elfNN_find_nearest_line _bfd_elf_find_nearest_line 54*fae548d3Szrj #endif 55*fae548d3Szrj #ifndef bfd_elfNN_find_line 56*fae548d3Szrj #define bfd_elfNN_find_line _bfd_elf_find_line 57*fae548d3Szrj #endif 58*fae548d3Szrj #ifndef bfd_elfNN_find_inliner_info 59*fae548d3Szrj #define bfd_elfNN_find_inliner_info _bfd_elf_find_inliner_info 60*fae548d3Szrj #endif 61*fae548d3Szrj #define bfd_elfNN_read_minisymbols _bfd_elf_read_minisymbols 62*fae548d3Szrj #define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol 63*fae548d3Szrj #define bfd_elfNN_get_dynamic_symtab_upper_bound \ 64*fae548d3Szrj _bfd_elf_get_dynamic_symtab_upper_bound 65*fae548d3Szrj #define bfd_elfNN_get_lineno _bfd_elf_get_lineno 66*fae548d3Szrj #ifndef bfd_elfNN_get_reloc_upper_bound 67*fae548d3Szrj #define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound 68*fae548d3Szrj #endif 69*fae548d3Szrj #ifndef bfd_elfNN_get_symbol_info 70*fae548d3Szrj #define bfd_elfNN_get_symbol_info _bfd_elf_get_symbol_info 71*fae548d3Szrj #endif 72*fae548d3Szrj #ifndef bfd_elfNN_get_symbol_version_string 73*fae548d3Szrj #define bfd_elfNN_get_symbol_version_string \ 74*fae548d3Szrj _bfd_elf_get_symbol_version_string 75*fae548d3Szrj #endif 76*fae548d3Szrj #define bfd_elfNN_canonicalize_symtab _bfd_elf_canonicalize_symtab 77*fae548d3Szrj #define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound 78*fae548d3Szrj #define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol 79*fae548d3Szrj #ifndef bfd_elfNN_new_section_hook 80*fae548d3Szrj #define bfd_elfNN_new_section_hook _bfd_elf_new_section_hook 81*fae548d3Szrj #endif 82*fae548d3Szrj #define bfd_elfNN_set_arch_mach _bfd_elf_set_arch_mach 83*fae548d3Szrj #ifndef bfd_elfNN_set_section_contents 84*fae548d3Szrj #define bfd_elfNN_set_section_contents _bfd_elf_set_section_contents 85*fae548d3Szrj #endif 86*fae548d3Szrj #define bfd_elfNN_sizeof_headers _bfd_elf_sizeof_headers 87*fae548d3Szrj #define bfd_elfNN_write_object_contents _bfd_elf_write_object_contents 88*fae548d3Szrj #define bfd_elfNN_write_corefile_contents _bfd_elf_write_corefile_contents 89*fae548d3Szrj 90*fae548d3Szrj #define bfd_elfNN_get_section_contents_in_window \ 91*fae548d3Szrj _bfd_generic_get_section_contents_in_window 92*fae548d3Szrj 93*fae548d3Szrj #ifndef elf_backend_can_refcount 94*fae548d3Szrj #define elf_backend_can_refcount 0 95*fae548d3Szrj #endif 96*fae548d3Szrj #ifndef elf_backend_want_got_plt 97*fae548d3Szrj #define elf_backend_want_got_plt 0 98*fae548d3Szrj #endif 99*fae548d3Szrj #ifndef elf_backend_plt_readonly 100*fae548d3Szrj #define elf_backend_plt_readonly 0 101*fae548d3Szrj #endif 102*fae548d3Szrj #ifndef elf_backend_want_plt_sym 103*fae548d3Szrj #define elf_backend_want_plt_sym 0 104*fae548d3Szrj #endif 105*fae548d3Szrj #ifndef elf_backend_plt_not_loaded 106*fae548d3Szrj #define elf_backend_plt_not_loaded 0 107*fae548d3Szrj #endif 108*fae548d3Szrj #ifndef elf_backend_plt_alignment 109*fae548d3Szrj #define elf_backend_plt_alignment 2 110*fae548d3Szrj #endif 111*fae548d3Szrj #ifndef elf_backend_want_dynbss 112*fae548d3Szrj #define elf_backend_want_dynbss 1 113*fae548d3Szrj #endif 114*fae548d3Szrj #ifndef elf_backend_want_dynrelro 115*fae548d3Szrj #define elf_backend_want_dynrelro 0 116*fae548d3Szrj #endif 117*fae548d3Szrj #ifndef elf_backend_want_p_paddr_set_to_zero 118*fae548d3Szrj #define elf_backend_want_p_paddr_set_to_zero 0 119*fae548d3Szrj #endif 120*fae548d3Szrj #ifndef elf_backend_no_page_alias 121*fae548d3Szrj #define elf_backend_no_page_alias 0 122*fae548d3Szrj #endif 123*fae548d3Szrj #ifndef elf_backend_default_execstack 124*fae548d3Szrj #define elf_backend_default_execstack 1 125*fae548d3Szrj #endif 126*fae548d3Szrj #ifndef elf_backend_caches_rawsize 127*fae548d3Szrj #define elf_backend_caches_rawsize 0 128*fae548d3Szrj #endif 129*fae548d3Szrj #ifndef elf_backend_extern_protected_data 130*fae548d3Szrj #define elf_backend_extern_protected_data 0 131*fae548d3Szrj #endif 132*fae548d3Szrj #ifndef elf_backend_always_renumber_dynsyms 133*fae548d3Szrj #define elf_backend_always_renumber_dynsyms FALSE 134*fae548d3Szrj #endif 135*fae548d3Szrj #ifndef elf_backend_linux_prpsinfo32_ugid16 136*fae548d3Szrj #define elf_backend_linux_prpsinfo32_ugid16 FALSE 137*fae548d3Szrj #endif 138*fae548d3Szrj #ifndef elf_backend_linux_prpsinfo64_ugid16 139*fae548d3Szrj #define elf_backend_linux_prpsinfo64_ugid16 FALSE 140*fae548d3Szrj #endif 141*fae548d3Szrj #ifndef elf_backend_stack_align 142*fae548d3Szrj #define elf_backend_stack_align 16 143*fae548d3Szrj #endif 144*fae548d3Szrj #ifndef elf_backend_strtab_flags 145*fae548d3Szrj #define elf_backend_strtab_flags 0 146*fae548d3Szrj #endif 147*fae548d3Szrj 148*fae548d3Szrj #define bfd_elfNN_bfd_debug_info_start _bfd_void_bfd 149*fae548d3Szrj #define bfd_elfNN_bfd_debug_info_end _bfd_void_bfd 150*fae548d3Szrj #define bfd_elfNN_bfd_debug_info_accumulate _bfd_void_bfd_asection 151*fae548d3Szrj 152*fae548d3Szrj #ifndef bfd_elfNN_bfd_get_relocated_section_contents 153*fae548d3Szrj #define bfd_elfNN_bfd_get_relocated_section_contents \ 154*fae548d3Szrj bfd_generic_get_relocated_section_contents 155*fae548d3Szrj #endif 156*fae548d3Szrj 157*fae548d3Szrj #ifndef bfd_elfNN_bfd_relax_section 158*fae548d3Szrj #define bfd_elfNN_bfd_relax_section bfd_generic_relax_section 159*fae548d3Szrj #endif 160*fae548d3Szrj 161*fae548d3Szrj #ifndef elf_backend_can_gc_sections 162*fae548d3Szrj #define elf_backend_can_gc_sections 0 163*fae548d3Szrj #endif 164*fae548d3Szrj #ifndef elf_backend_can_refcount 165*fae548d3Szrj #define elf_backend_can_refcount 0 166*fae548d3Szrj #endif 167*fae548d3Szrj #ifndef elf_backend_want_got_sym 168*fae548d3Szrj #define elf_backend_want_got_sym 1 169*fae548d3Szrj #endif 170*fae548d3Szrj #ifndef elf_backend_gc_keep 171*fae548d3Szrj #define elf_backend_gc_keep _bfd_elf_gc_keep 172*fae548d3Szrj #endif 173*fae548d3Szrj #ifndef elf_backend_gc_mark_dynamic_ref 174*fae548d3Szrj #define elf_backend_gc_mark_dynamic_ref bfd_elf_gc_mark_dynamic_ref_symbol 175*fae548d3Szrj #endif 176*fae548d3Szrj #ifndef elf_backend_gc_mark_hook 177*fae548d3Szrj #define elf_backend_gc_mark_hook _bfd_elf_gc_mark_hook 178*fae548d3Szrj #endif 179*fae548d3Szrj #ifndef elf_backend_gc_mark_extra_sections 180*fae548d3Szrj #define elf_backend_gc_mark_extra_sections _bfd_elf_gc_mark_extra_sections 181*fae548d3Szrj #endif 182*fae548d3Szrj #ifndef bfd_elfNN_bfd_gc_sections 183*fae548d3Szrj #define bfd_elfNN_bfd_gc_sections bfd_elf_gc_sections 184*fae548d3Szrj #endif 185*fae548d3Szrj 186*fae548d3Szrj #ifndef bfd_elfNN_bfd_merge_sections 187*fae548d3Szrj #define bfd_elfNN_bfd_merge_sections \ 188*fae548d3Szrj _bfd_elf_merge_sections 189*fae548d3Szrj #endif 190*fae548d3Szrj 191*fae548d3Szrj #ifndef bfd_elfNN_bfd_is_group_section 192*fae548d3Szrj #define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section 193*fae548d3Szrj #endif 194*fae548d3Szrj 195*fae548d3Szrj #ifndef bfd_elfNN_bfd_group_name 196*fae548d3Szrj #define bfd_elfNN_bfd_group_name bfd_elf_group_name 197*fae548d3Szrj #endif 198*fae548d3Szrj 199*fae548d3Szrj #ifndef bfd_elfNN_bfd_discard_group 200*fae548d3Szrj #define bfd_elfNN_bfd_discard_group bfd_generic_discard_group 201*fae548d3Szrj #endif 202*fae548d3Szrj 203*fae548d3Szrj #ifndef bfd_elfNN_section_already_linked 204*fae548d3Szrj #define bfd_elfNN_section_already_linked \ 205*fae548d3Szrj _bfd_elf_section_already_linked 206*fae548d3Szrj #endif 207*fae548d3Szrj 208*fae548d3Szrj #ifndef bfd_elfNN_bfd_define_common_symbol 209*fae548d3Szrj #define bfd_elfNN_bfd_define_common_symbol bfd_generic_define_common_symbol 210*fae548d3Szrj #endif 211*fae548d3Szrj 212*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_hide_symbol 213*fae548d3Szrj #define bfd_elfNN_bfd_link_hide_symbol _bfd_elf_link_hide_symbol 214*fae548d3Szrj #endif 215*fae548d3Szrj 216*fae548d3Szrj #ifndef bfd_elfNN_bfd_lookup_section_flags 217*fae548d3Szrj #define bfd_elfNN_bfd_lookup_section_flags bfd_elf_lookup_section_flags 218*fae548d3Szrj #endif 219*fae548d3Szrj 220*fae548d3Szrj #ifndef bfd_elfNN_bfd_make_debug_symbol 221*fae548d3Szrj #define bfd_elfNN_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol 222*fae548d3Szrj #endif 223*fae548d3Szrj 224*fae548d3Szrj #ifndef bfd_elfNN_bfd_copy_private_symbol_data 225*fae548d3Szrj #define bfd_elfNN_bfd_copy_private_symbol_data \ 226*fae548d3Szrj _bfd_elf_copy_private_symbol_data 227*fae548d3Szrj #endif 228*fae548d3Szrj 229*fae548d3Szrj #ifndef bfd_elfNN_bfd_copy_private_section_data 230*fae548d3Szrj #define bfd_elfNN_bfd_copy_private_section_data \ 231*fae548d3Szrj _bfd_elf_copy_private_section_data 232*fae548d3Szrj #endif 233*fae548d3Szrj #ifndef bfd_elfNN_bfd_copy_private_header_data 234*fae548d3Szrj #define bfd_elfNN_bfd_copy_private_header_data \ 235*fae548d3Szrj _bfd_elf_copy_private_header_data 236*fae548d3Szrj #endif 237*fae548d3Szrj #ifndef bfd_elfNN_bfd_copy_private_bfd_data 238*fae548d3Szrj #define bfd_elfNN_bfd_copy_private_bfd_data \ 239*fae548d3Szrj _bfd_elf_copy_private_bfd_data 240*fae548d3Szrj #endif 241*fae548d3Szrj #ifndef bfd_elfNN_bfd_print_private_bfd_data 242*fae548d3Szrj #define bfd_elfNN_bfd_print_private_bfd_data \ 243*fae548d3Szrj _bfd_elf_print_private_bfd_data 244*fae548d3Szrj #endif 245*fae548d3Szrj #ifndef bfd_elfNN_bfd_merge_private_bfd_data 246*fae548d3Szrj #define bfd_elfNN_bfd_merge_private_bfd_data _bfd_bool_bfd_link_true 247*fae548d3Szrj #endif 248*fae548d3Szrj #ifndef bfd_elfNN_bfd_set_private_flags 249*fae548d3Szrj #define bfd_elfNN_bfd_set_private_flags _bfd_bool_bfd_uint_true 250*fae548d3Szrj #endif 251*fae548d3Szrj #ifndef bfd_elfNN_bfd_is_local_label_name 252*fae548d3Szrj #define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name 253*fae548d3Szrj #endif 254*fae548d3Szrj #ifndef bfd_elfNN_bfd_is_target_special_symbol 255*fae548d3Szrj #define bfd_elfNN_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false 256*fae548d3Szrj #endif 257*fae548d3Szrj 258*fae548d3Szrj #ifndef bfd_elfNN_get_dynamic_reloc_upper_bound 259*fae548d3Szrj #define bfd_elfNN_get_dynamic_reloc_upper_bound \ 260*fae548d3Szrj _bfd_elf_get_dynamic_reloc_upper_bound 261*fae548d3Szrj #endif 262*fae548d3Szrj #ifndef bfd_elfNN_canonicalize_dynamic_reloc 263*fae548d3Szrj #define bfd_elfNN_canonicalize_dynamic_reloc \ 264*fae548d3Szrj _bfd_elf_canonicalize_dynamic_reloc 265*fae548d3Szrj #endif 266*fae548d3Szrj 267*fae548d3Szrj #ifdef elf_backend_relocate_section 268*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_hash_table_create 269*fae548d3Szrj #define bfd_elfNN_bfd_link_hash_table_create _bfd_elf_link_hash_table_create 270*fae548d3Szrj #endif 271*fae548d3Szrj #ifndef bfd_elfNN_bfd_copy_link_hash_symbol_type 272*fae548d3Szrj #define bfd_elfNN_bfd_copy_link_hash_symbol_type \ 273*fae548d3Szrj _bfd_elf_copy_link_hash_symbol_type 274*fae548d3Szrj #endif 275*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_add_symbols 276*fae548d3Szrj #define bfd_elfNN_bfd_link_add_symbols bfd_elf_link_add_symbols 277*fae548d3Szrj #endif 278*fae548d3Szrj #ifndef bfd_elfNN_bfd_define_start_stop 279*fae548d3Szrj #define bfd_elfNN_bfd_define_start_stop bfd_elf_define_start_stop 280*fae548d3Szrj #endif 281*fae548d3Szrj #ifndef bfd_elfNN_bfd_final_link 282*fae548d3Szrj #define bfd_elfNN_bfd_final_link bfd_elf_final_link 283*fae548d3Szrj #endif 284*fae548d3Szrj #else /* ! defined (elf_backend_relocate_section) */ 285*fae548d3Szrj /* If no backend relocate_section routine, use the generic linker. 286*fae548d3Szrj Note - this will prevent the port from being able to use some of 287*fae548d3Szrj the other features of the ELF linker, because the generic hash structure 288*fae548d3Szrj does not have the fields needed by the ELF linker. In particular it 289*fae548d3Szrj means that linking directly to S-records will not work. */ 290*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_hash_table_create 291*fae548d3Szrj #define bfd_elfNN_bfd_link_hash_table_create \ 292*fae548d3Szrj _bfd_generic_link_hash_table_create 293*fae548d3Szrj #endif 294*fae548d3Szrj #ifndef bfd_elfNN_bfd_copy_link_hash_symbol_type 295*fae548d3Szrj #define bfd_elfNN_bfd_copy_link_hash_symbol_type \ 296*fae548d3Szrj _bfd_generic_copy_link_hash_symbol_type 297*fae548d3Szrj #endif 298*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_add_symbols 299*fae548d3Szrj #define bfd_elfNN_bfd_link_add_symbols _bfd_generic_link_add_symbols 300*fae548d3Szrj #endif 301*fae548d3Szrj #ifndef bfd_elfNN_bfd_define_start_stop 302*fae548d3Szrj #define bfd_elfNN_bfd_define_start_stop bfd_generic_define_start_stop 303*fae548d3Szrj #endif 304*fae548d3Szrj #ifndef bfd_elfNN_bfd_final_link 305*fae548d3Szrj #define bfd_elfNN_bfd_final_link _bfd_generic_final_link 306*fae548d3Szrj #endif 307*fae548d3Szrj #endif /* ! defined (elf_backend_relocate_section) */ 308*fae548d3Szrj 309*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_just_syms 310*fae548d3Szrj #define bfd_elfNN_bfd_link_just_syms _bfd_elf_link_just_syms 311*fae548d3Szrj #endif 312*fae548d3Szrj 313*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_split_section 314*fae548d3Szrj #define bfd_elfNN_bfd_link_split_section _bfd_generic_link_split_section 315*fae548d3Szrj #endif 316*fae548d3Szrj 317*fae548d3Szrj #ifndef bfd_elfNN_bfd_link_check_relocs 318*fae548d3Szrj #define bfd_elfNN_bfd_link_check_relocs _bfd_elf_link_check_relocs 319*fae548d3Szrj #endif 320*fae548d3Szrj 321*fae548d3Szrj #ifndef bfd_elfNN_archive_p 322*fae548d3Szrj #define bfd_elfNN_archive_p bfd_generic_archive_p 323*fae548d3Szrj #endif 324*fae548d3Szrj 325*fae548d3Szrj #ifndef bfd_elfNN_write_archive_contents 326*fae548d3Szrj #define bfd_elfNN_write_archive_contents _bfd_write_archive_contents 327*fae548d3Szrj #endif 328*fae548d3Szrj 329*fae548d3Szrj #ifndef bfd_elfNN_mkobject 330*fae548d3Szrj #define bfd_elfNN_mkobject bfd_elf_make_object 331*fae548d3Szrj #endif 332*fae548d3Szrj 333*fae548d3Szrj #ifndef bfd_elfNN_mkcorefile 334*fae548d3Szrj #define bfd_elfNN_mkcorefile bfd_elf_mkcorefile 335*fae548d3Szrj #endif 336*fae548d3Szrj 337*fae548d3Szrj #ifndef bfd_elfNN_mkarchive 338*fae548d3Szrj #define bfd_elfNN_mkarchive _bfd_generic_mkarchive 339*fae548d3Szrj #endif 340*fae548d3Szrj 341*fae548d3Szrj #ifndef bfd_elfNN_print_symbol 342*fae548d3Szrj #define bfd_elfNN_print_symbol bfd_elf_print_symbol 343*fae548d3Szrj #endif 344*fae548d3Szrj 345*fae548d3Szrj #ifndef elf_symbol_leading_char 346*fae548d3Szrj #define elf_symbol_leading_char 0 347*fae548d3Szrj #endif 348*fae548d3Szrj 349*fae548d3Szrj #ifndef elf_info_to_howto 350*fae548d3Szrj #define elf_info_to_howto NULL 351*fae548d3Szrj #endif 352*fae548d3Szrj 353*fae548d3Szrj #ifndef elf_info_to_howto_rel 354*fae548d3Szrj #define elf_info_to_howto_rel NULL 355*fae548d3Szrj #endif 356*fae548d3Szrj 357*fae548d3Szrj #ifndef elf_backend_arch_data 358*fae548d3Szrj #define elf_backend_arch_data NULL 359*fae548d3Szrj #endif 360*fae548d3Szrj 361*fae548d3Szrj #ifndef ELF_TARGET_ID 362*fae548d3Szrj #define ELF_TARGET_ID GENERIC_ELF_DATA 363*fae548d3Szrj #endif 364*fae548d3Szrj 365*fae548d3Szrj #ifndef ELF_OSABI 366*fae548d3Szrj #define ELF_OSABI ELFOSABI_NONE 367*fae548d3Szrj #endif 368*fae548d3Szrj 369*fae548d3Szrj #ifndef ELF_MAXPAGESIZE 370*fae548d3Szrj # error ELF_MAXPAGESIZE is not defined 371*fae548d3Szrj #define ELF_MAXPAGESIZE 1 372*fae548d3Szrj #endif 373*fae548d3Szrj 374*fae548d3Szrj #ifndef ELF_COMMONPAGESIZE 375*fae548d3Szrj #define ELF_COMMONPAGESIZE ELF_MAXPAGESIZE 376*fae548d3Szrj #endif 377*fae548d3Szrj 378*fae548d3Szrj #ifndef ELF_RELROPAGESIZE 379*fae548d3Szrj #define ELF_RELROPAGESIZE ELF_COMMONPAGESIZE 380*fae548d3Szrj #endif 381*fae548d3Szrj 382*fae548d3Szrj #ifndef ELF_MINPAGESIZE 383*fae548d3Szrj #define ELF_MINPAGESIZE ELF_COMMONPAGESIZE 384*fae548d3Szrj #endif 385*fae548d3Szrj 386*fae548d3Szrj #if ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE 387*fae548d3Szrj # error ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE 388*fae548d3Szrj #endif 389*fae548d3Szrj #if ELF_RELROPAGESIZE > ELF_MAXPAGESIZE 390*fae548d3Szrj # error ELF_RELROPAGESIZE > ELF_MAXPAGESIZE 391*fae548d3Szrj #endif 392*fae548d3Szrj #if ELF_MINPAGESIZE > ELF_COMMONPAGESIZE 393*fae548d3Szrj # error ELF_MINPAGESIZE > ELF_COMMONPAGESIZE 394*fae548d3Szrj #endif 395*fae548d3Szrj #if ELF_MINPAGESIZE > ELF_RELROPAGESIZE 396*fae548d3Szrj # error ELF_MINPAGESIZE > ELF_RELROPAGESIZE 397*fae548d3Szrj #endif 398*fae548d3Szrj 399*fae548d3Szrj #ifndef ELF_DYNAMIC_SEC_FLAGS 400*fae548d3Szrj /* Note that we set the SEC_IN_MEMORY flag for these sections. */ 401*fae548d3Szrj #define ELF_DYNAMIC_SEC_FLAGS \ 402*fae548d3Szrj (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS \ 403*fae548d3Szrj | SEC_IN_MEMORY | SEC_LINKER_CREATED) 404*fae548d3Szrj #endif 405*fae548d3Szrj 406*fae548d3Szrj #ifndef elf_backend_collect 407*fae548d3Szrj #define elf_backend_collect FALSE 408*fae548d3Szrj #endif 409*fae548d3Szrj #ifndef elf_backend_type_change_ok 410*fae548d3Szrj #define elf_backend_type_change_ok FALSE 411*fae548d3Szrj #endif 412*fae548d3Szrj 413*fae548d3Szrj #ifndef elf_backend_sym_is_global 414*fae548d3Szrj #define elf_backend_sym_is_global 0 415*fae548d3Szrj #endif 416*fae548d3Szrj #ifndef elf_backend_object_p 417*fae548d3Szrj #define elf_backend_object_p 0 418*fae548d3Szrj #endif 419*fae548d3Szrj #ifndef elf_backend_symbol_processing 420*fae548d3Szrj #define elf_backend_symbol_processing 0 421*fae548d3Szrj #endif 422*fae548d3Szrj #ifndef elf_backend_symbol_table_processing 423*fae548d3Szrj #define elf_backend_symbol_table_processing 0 424*fae548d3Szrj #endif 425*fae548d3Szrj #ifndef elf_backend_get_symbol_type 426*fae548d3Szrj #define elf_backend_get_symbol_type 0 427*fae548d3Szrj #endif 428*fae548d3Szrj #ifndef elf_backend_archive_symbol_lookup 429*fae548d3Szrj #define elf_backend_archive_symbol_lookup _bfd_elf_archive_symbol_lookup 430*fae548d3Szrj #endif 431*fae548d3Szrj #ifndef elf_backend_name_local_section_symbols 432*fae548d3Szrj #define elf_backend_name_local_section_symbols 0 433*fae548d3Szrj #endif 434*fae548d3Szrj #ifndef elf_backend_section_processing 435*fae548d3Szrj #define elf_backend_section_processing 0 436*fae548d3Szrj #endif 437*fae548d3Szrj #ifndef elf_backend_section_from_shdr 438*fae548d3Szrj #define elf_backend_section_from_shdr _bfd_elf_make_section_from_shdr 439*fae548d3Szrj #endif 440*fae548d3Szrj #ifndef elf_backend_section_flags 441*fae548d3Szrj #define elf_backend_section_flags 0 442*fae548d3Szrj #endif 443*fae548d3Szrj #ifndef elf_backend_get_sec_type_attr 444*fae548d3Szrj #define elf_backend_get_sec_type_attr _bfd_elf_get_sec_type_attr 445*fae548d3Szrj #endif 446*fae548d3Szrj #ifndef elf_backend_section_from_phdr 447*fae548d3Szrj #define elf_backend_section_from_phdr _bfd_elf_make_section_from_phdr 448*fae548d3Szrj #endif 449*fae548d3Szrj #ifndef elf_backend_fake_sections 450*fae548d3Szrj #define elf_backend_fake_sections 0 451*fae548d3Szrj #endif 452*fae548d3Szrj #ifndef elf_backend_section_from_bfd_section 453*fae548d3Szrj #define elf_backend_section_from_bfd_section 0 454*fae548d3Szrj #endif 455*fae548d3Szrj #ifndef elf_backend_add_symbol_hook 456*fae548d3Szrj #define elf_backend_add_symbol_hook 0 457*fae548d3Szrj #endif 458*fae548d3Szrj #ifndef elf_backend_link_output_symbol_hook 459*fae548d3Szrj #define elf_backend_link_output_symbol_hook 0 460*fae548d3Szrj #endif 461*fae548d3Szrj #ifndef elf_backend_create_dynamic_sections 462*fae548d3Szrj #define elf_backend_create_dynamic_sections 0 463*fae548d3Szrj #endif 464*fae548d3Szrj #ifndef elf_backend_omit_section_dynsym 465*fae548d3Szrj #define elf_backend_omit_section_dynsym _bfd_elf_omit_section_dynsym_default 466*fae548d3Szrj #endif 467*fae548d3Szrj #ifndef elf_backend_relocs_compatible 468*fae548d3Szrj #define elf_backend_relocs_compatible _bfd_elf_default_relocs_compatible 469*fae548d3Szrj #endif 470*fae548d3Szrj #ifndef elf_backend_check_relocs 471*fae548d3Szrj #define elf_backend_check_relocs 0 472*fae548d3Szrj #endif 473*fae548d3Szrj #ifndef elf_backend_check_directives 474*fae548d3Szrj #define elf_backend_check_directives 0 475*fae548d3Szrj #endif 476*fae548d3Szrj #ifndef elf_backend_notice_as_needed 477*fae548d3Szrj #define elf_backend_notice_as_needed _bfd_elf_notice_as_needed 478*fae548d3Szrj #endif 479*fae548d3Szrj #ifndef elf_backend_adjust_dynamic_symbol 480*fae548d3Szrj #define elf_backend_adjust_dynamic_symbol 0 481*fae548d3Szrj #endif 482*fae548d3Szrj #ifndef elf_backend_always_size_sections 483*fae548d3Szrj #define elf_backend_always_size_sections 0 484*fae548d3Szrj #endif 485*fae548d3Szrj #ifndef elf_backend_size_dynamic_sections 486*fae548d3Szrj #define elf_backend_size_dynamic_sections 0 487*fae548d3Szrj #endif 488*fae548d3Szrj #ifndef elf_backend_init_index_section 489*fae548d3Szrj #define elf_backend_init_index_section _bfd_void_bfd_link 490*fae548d3Szrj #endif 491*fae548d3Szrj #ifndef elf_backend_relocate_section 492*fae548d3Szrj #define elf_backend_relocate_section 0 493*fae548d3Szrj #endif 494*fae548d3Szrj #ifndef elf_backend_finish_dynamic_symbol 495*fae548d3Szrj #define elf_backend_finish_dynamic_symbol 0 496*fae548d3Szrj #endif 497*fae548d3Szrj #ifndef elf_backend_finish_dynamic_sections 498*fae548d3Szrj #define elf_backend_finish_dynamic_sections 0 499*fae548d3Szrj #endif 500*fae548d3Szrj #ifndef elf_backend_begin_write_processing 501*fae548d3Szrj #define elf_backend_begin_write_processing 0 502*fae548d3Szrj #endif 503*fae548d3Szrj #ifndef elf_backend_final_write_processing 504*fae548d3Szrj #define elf_backend_final_write_processing _bfd_elf_final_write_processing 505*fae548d3Szrj #endif 506*fae548d3Szrj #ifndef elf_backend_additional_program_headers 507*fae548d3Szrj #define elf_backend_additional_program_headers 0 508*fae548d3Szrj #endif 509*fae548d3Szrj #ifndef elf_backend_modify_segment_map 510*fae548d3Szrj #define elf_backend_modify_segment_map 0 511*fae548d3Szrj #endif 512*fae548d3Szrj #ifndef elf_backend_modify_headers 513*fae548d3Szrj #define elf_backend_modify_headers _bfd_elf_modify_headers 514*fae548d3Szrj #endif 515*fae548d3Szrj #ifndef elf_backend_allow_non_load_phdr 516*fae548d3Szrj #define elf_backend_allow_non_load_phdr 0 517*fae548d3Szrj #endif 518*fae548d3Szrj #ifndef elf_backend_ecoff_debug_swap 519*fae548d3Szrj #define elf_backend_ecoff_debug_swap 0 520*fae548d3Szrj #endif 521*fae548d3Szrj #ifndef elf_backend_bfd_from_remote_memory 522*fae548d3Szrj #define elf_backend_bfd_from_remote_memory _bfd_elfNN_bfd_from_remote_memory 523*fae548d3Szrj #endif 524*fae548d3Szrj #ifndef elf_backend_core_find_build_id 525*fae548d3Szrj #define elf_backend_core_find_build_id _bfd_elfNN_core_find_build_id 526*fae548d3Szrj #endif 527*fae548d3Szrj #ifndef elf_backend_got_header_size 528*fae548d3Szrj #define elf_backend_got_header_size 0 529*fae548d3Szrj #endif 530*fae548d3Szrj #ifndef elf_backend_got_elt_size 531*fae548d3Szrj #define elf_backend_got_elt_size _bfd_elf_default_got_elt_size 532*fae548d3Szrj #endif 533*fae548d3Szrj #ifndef elf_backend_obj_attrs_vendor 534*fae548d3Szrj #define elf_backend_obj_attrs_vendor NULL 535*fae548d3Szrj #endif 536*fae548d3Szrj #ifndef elf_backend_obj_attrs_section 537*fae548d3Szrj #define elf_backend_obj_attrs_section NULL 538*fae548d3Szrj #endif 539*fae548d3Szrj #ifndef elf_backend_obj_attrs_arg_type 540*fae548d3Szrj #define elf_backend_obj_attrs_arg_type NULL 541*fae548d3Szrj #endif 542*fae548d3Szrj #ifndef elf_backend_obj_attrs_section_type 543*fae548d3Szrj #define elf_backend_obj_attrs_section_type SHT_GNU_ATTRIBUTES 544*fae548d3Szrj #endif 545*fae548d3Szrj #ifndef elf_backend_obj_attrs_order 546*fae548d3Szrj #define elf_backend_obj_attrs_order NULL 547*fae548d3Szrj #endif 548*fae548d3Szrj #ifndef elf_backend_obj_attrs_handle_unknown 549*fae548d3Szrj #define elf_backend_obj_attrs_handle_unknown NULL 550*fae548d3Szrj #endif 551*fae548d3Szrj #ifndef elf_backend_parse_gnu_properties 552*fae548d3Szrj #define elf_backend_parse_gnu_properties NULL 553*fae548d3Szrj #endif 554*fae548d3Szrj #ifndef elf_backend_merge_gnu_properties 555*fae548d3Szrj #define elf_backend_merge_gnu_properties NULL 556*fae548d3Szrj #endif 557*fae548d3Szrj #ifndef elf_backend_setup_gnu_properties 558*fae548d3Szrj #define elf_backend_setup_gnu_properties _bfd_elf_link_setup_gnu_properties 559*fae548d3Szrj #endif 560*fae548d3Szrj #ifndef elf_backend_fixup_gnu_properties 561*fae548d3Szrj #define elf_backend_fixup_gnu_properties NULL 562*fae548d3Szrj #endif 563*fae548d3Szrj #ifndef elf_backend_static_tls_alignment 564*fae548d3Szrj #define elf_backend_static_tls_alignment 1 565*fae548d3Szrj #endif 566*fae548d3Szrj #ifndef elf_backend_init_file_header 567*fae548d3Szrj #define elf_backend_init_file_header _bfd_elf_init_file_header 568*fae548d3Szrj #endif 569*fae548d3Szrj #ifndef elf_backend_print_symbol_all 570*fae548d3Szrj #define elf_backend_print_symbol_all NULL 571*fae548d3Szrj #endif 572*fae548d3Szrj #ifndef elf_backend_output_arch_local_syms 573*fae548d3Szrj #define elf_backend_output_arch_local_syms NULL 574*fae548d3Szrj #endif 575*fae548d3Szrj #ifndef elf_backend_output_arch_syms 576*fae548d3Szrj #define elf_backend_output_arch_syms NULL 577*fae548d3Szrj #endif 578*fae548d3Szrj #ifndef elf_backend_filter_implib_symbols 579*fae548d3Szrj #define elf_backend_filter_implib_symbols NULL 580*fae548d3Szrj #endif 581*fae548d3Szrj #ifndef elf_backend_copy_indirect_symbol 582*fae548d3Szrj #define elf_backend_copy_indirect_symbol _bfd_elf_link_hash_copy_indirect 583*fae548d3Szrj #endif 584*fae548d3Szrj #ifndef elf_backend_hide_symbol 585*fae548d3Szrj #define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol 586*fae548d3Szrj #endif 587*fae548d3Szrj #ifndef elf_backend_fixup_symbol 588*fae548d3Szrj #define elf_backend_fixup_symbol NULL 589*fae548d3Szrj #endif 590*fae548d3Szrj #ifndef elf_backend_merge_symbol_attribute 591*fae548d3Szrj #define elf_backend_merge_symbol_attribute NULL 592*fae548d3Szrj #endif 593*fae548d3Szrj #ifndef elf_backend_get_target_dtag 594*fae548d3Szrj #define elf_backend_get_target_dtag NULL 595*fae548d3Szrj #endif 596*fae548d3Szrj #ifndef elf_backend_ignore_undef_symbol 597*fae548d3Szrj #define elf_backend_ignore_undef_symbol NULL 598*fae548d3Szrj #endif 599*fae548d3Szrj #ifndef elf_backend_emit_relocs 600*fae548d3Szrj #define elf_backend_emit_relocs _bfd_elf_link_output_relocs 601*fae548d3Szrj #endif 602*fae548d3Szrj #ifndef elf_backend_update_relocs 603*fae548d3Szrj #define elf_backend_update_relocs NULL 604*fae548d3Szrj #endif 605*fae548d3Szrj #ifndef elf_backend_count_relocs 606*fae548d3Szrj #define elf_backend_count_relocs NULL 607*fae548d3Szrj #endif 608*fae548d3Szrj #ifndef elf_backend_count_additional_relocs 609*fae548d3Szrj #define elf_backend_count_additional_relocs NULL 610*fae548d3Szrj #endif 611*fae548d3Szrj #ifndef elf_backend_sort_relocs_p 612*fae548d3Szrj #define elf_backend_sort_relocs_p NULL 613*fae548d3Szrj #endif 614*fae548d3Szrj #ifndef elf_backend_grok_prstatus 615*fae548d3Szrj #define elf_backend_grok_prstatus NULL 616*fae548d3Szrj #endif 617*fae548d3Szrj #ifndef elf_backend_grok_psinfo 618*fae548d3Szrj #define elf_backend_grok_psinfo NULL 619*fae548d3Szrj #endif 620*fae548d3Szrj #ifndef elf_backend_grok_freebsd_prstatus 621*fae548d3Szrj #define elf_backend_grok_freebsd_prstatus NULL 622*fae548d3Szrj #endif 623*fae548d3Szrj #ifndef elf_backend_write_core_note 624*fae548d3Szrj #define elf_backend_write_core_note NULL 625*fae548d3Szrj #endif 626*fae548d3Szrj #ifndef elf_backend_lookup_section_flags_hook 627*fae548d3Szrj #define elf_backend_lookup_section_flags_hook NULL 628*fae548d3Szrj #endif 629*fae548d3Szrj #ifndef elf_backend_reloc_type_class 630*fae548d3Szrj #define elf_backend_reloc_type_class _bfd_elf_reloc_type_class 631*fae548d3Szrj #endif 632*fae548d3Szrj #ifndef elf_backend_discard_info 633*fae548d3Szrj #define elf_backend_discard_info NULL 634*fae548d3Szrj #endif 635*fae548d3Szrj #ifndef elf_backend_ignore_discarded_relocs 636*fae548d3Szrj #define elf_backend_ignore_discarded_relocs NULL 637*fae548d3Szrj #endif 638*fae548d3Szrj #ifndef elf_backend_action_discarded 639*fae548d3Szrj #define elf_backend_action_discarded _bfd_elf_default_action_discarded 640*fae548d3Szrj #endif 641*fae548d3Szrj #ifndef elf_backend_eh_frame_address_size 642*fae548d3Szrj #define elf_backend_eh_frame_address_size _bfd_elf_eh_frame_address_size 643*fae548d3Szrj #endif 644*fae548d3Szrj #ifndef elf_backend_can_make_relative_eh_frame 645*fae548d3Szrj #define elf_backend_can_make_relative_eh_frame _bfd_elf_can_make_relative 646*fae548d3Szrj #endif 647*fae548d3Szrj #ifndef elf_backend_can_make_lsda_relative_eh_frame 648*fae548d3Szrj #define elf_backend_can_make_lsda_relative_eh_frame _bfd_elf_can_make_relative 649*fae548d3Szrj #endif 650*fae548d3Szrj #ifndef elf_backend_encode_eh_address 651*fae548d3Szrj #define elf_backend_encode_eh_address _bfd_elf_encode_eh_address 652*fae548d3Szrj #endif 653*fae548d3Szrj #ifndef elf_backend_write_section 654*fae548d3Szrj #define elf_backend_write_section NULL 655*fae548d3Szrj #endif 656*fae548d3Szrj #ifndef elf_backend_mips_irix_compat 657*fae548d3Szrj #define elf_backend_mips_irix_compat NULL 658*fae548d3Szrj #endif 659*fae548d3Szrj #ifndef elf_backend_mips_rtype_to_howto 660*fae548d3Szrj #define elf_backend_mips_rtype_to_howto NULL 661*fae548d3Szrj #endif 662*fae548d3Szrj 663*fae548d3Szrj /* Previously, backends could only use SHT_REL or SHT_RELA relocation 664*fae548d3Szrj sections, but not both. They defined USE_REL to indicate SHT_REL 665*fae548d3Szrj sections, and left it undefined to indicated SHT_RELA sections. 666*fae548d3Szrj For backwards compatibility, we still support this usage. */ 667*fae548d3Szrj #ifndef USE_REL 668*fae548d3Szrj #define USE_REL 0 669*fae548d3Szrj #endif 670*fae548d3Szrj 671*fae548d3Szrj /* Use these in new code. */ 672*fae548d3Szrj #ifndef elf_backend_may_use_rel_p 673*fae548d3Szrj #define elf_backend_may_use_rel_p USE_REL 674*fae548d3Szrj #endif 675*fae548d3Szrj #ifndef elf_backend_may_use_rela_p 676*fae548d3Szrj #define elf_backend_may_use_rela_p !USE_REL 677*fae548d3Szrj #endif 678*fae548d3Szrj #ifndef elf_backend_default_use_rela_p 679*fae548d3Szrj #define elf_backend_default_use_rela_p !USE_REL 680*fae548d3Szrj #endif 681*fae548d3Szrj #ifndef elf_backend_rela_plts_and_copies_p 682*fae548d3Szrj #define elf_backend_rela_plts_and_copies_p elf_backend_default_use_rela_p 683*fae548d3Szrj #endif 684*fae548d3Szrj 685*fae548d3Szrj #ifndef elf_backend_rela_normal 686*fae548d3Szrj #define elf_backend_rela_normal 0 687*fae548d3Szrj #endif 688*fae548d3Szrj 689*fae548d3Szrj #ifndef elf_backend_dtrel_excludes_plt 690*fae548d3Szrj #define elf_backend_dtrel_excludes_plt 0 691*fae548d3Szrj #endif 692*fae548d3Szrj 693*fae548d3Szrj #ifndef elf_backend_plt_sym_val 694*fae548d3Szrj #define elf_backend_plt_sym_val NULL 695*fae548d3Szrj #endif 696*fae548d3Szrj #ifndef elf_backend_relplt_name 697*fae548d3Szrj #define elf_backend_relplt_name NULL 698*fae548d3Szrj #endif 699*fae548d3Szrj 700*fae548d3Szrj #ifndef ELF_MACHINE_ALT1 701*fae548d3Szrj #define ELF_MACHINE_ALT1 0 702*fae548d3Szrj #endif 703*fae548d3Szrj 704*fae548d3Szrj #ifndef ELF_MACHINE_ALT2 705*fae548d3Szrj #define ELF_MACHINE_ALT2 0 706*fae548d3Szrj #endif 707*fae548d3Szrj 708*fae548d3Szrj #ifndef elf_backend_size_info 709*fae548d3Szrj #define elf_backend_size_info _bfd_elfNN_size_info 710*fae548d3Szrj #endif 711*fae548d3Szrj 712*fae548d3Szrj #ifndef elf_backend_special_sections 713*fae548d3Szrj #define elf_backend_special_sections NULL 714*fae548d3Szrj #endif 715*fae548d3Szrj 716*fae548d3Szrj #ifndef elf_backend_sign_extend_vma 717*fae548d3Szrj #define elf_backend_sign_extend_vma 0 718*fae548d3Szrj #endif 719*fae548d3Szrj 720*fae548d3Szrj #ifndef elf_backend_link_order_error_handler 721*fae548d3Szrj #define elf_backend_link_order_error_handler _bfd_error_handler 722*fae548d3Szrj #endif 723*fae548d3Szrj 724*fae548d3Szrj #ifndef elf_backend_common_definition 725*fae548d3Szrj #define elf_backend_common_definition _bfd_elf_common_definition 726*fae548d3Szrj #endif 727*fae548d3Szrj 728*fae548d3Szrj #ifndef elf_backend_common_section_index 729*fae548d3Szrj #define elf_backend_common_section_index _bfd_elf_common_section_index 730*fae548d3Szrj #endif 731*fae548d3Szrj 732*fae548d3Szrj #ifndef elf_backend_common_section 733*fae548d3Szrj #define elf_backend_common_section _bfd_elf_common_section 734*fae548d3Szrj #endif 735*fae548d3Szrj 736*fae548d3Szrj #ifndef elf_backend_merge_symbol 737*fae548d3Szrj #define elf_backend_merge_symbol NULL 738*fae548d3Szrj #endif 739*fae548d3Szrj 740*fae548d3Szrj #ifndef elf_backend_hash_symbol 741*fae548d3Szrj #define elf_backend_hash_symbol _bfd_elf_hash_symbol 742*fae548d3Szrj #endif 743*fae548d3Szrj 744*fae548d3Szrj #ifndef elf_backend_record_xhash_symbol 745*fae548d3Szrj #define elf_backend_record_xhash_symbol NULL 746*fae548d3Szrj #endif 747*fae548d3Szrj 748*fae548d3Szrj #ifndef elf_backend_is_function_type 749*fae548d3Szrj #define elf_backend_is_function_type _bfd_elf_is_function_type 750*fae548d3Szrj #endif 751*fae548d3Szrj 752*fae548d3Szrj #ifndef elf_backend_maybe_function_sym 753*fae548d3Szrj #define elf_backend_maybe_function_sym _bfd_elf_maybe_function_sym 754*fae548d3Szrj #endif 755*fae548d3Szrj 756*fae548d3Szrj #ifndef elf_backend_get_reloc_section 757*fae548d3Szrj #define elf_backend_get_reloc_section _bfd_elf_plt_get_reloc_section 758*fae548d3Szrj #endif 759*fae548d3Szrj 760*fae548d3Szrj #ifndef elf_backend_copy_special_section_fields 761*fae548d3Szrj #define elf_backend_copy_special_section_fields NULL 762*fae548d3Szrj #endif 763*fae548d3Szrj 764*fae548d3Szrj #ifndef elf_backend_compact_eh_encoding 765*fae548d3Szrj #define elf_backend_compact_eh_encoding NULL 766*fae548d3Szrj #endif 767*fae548d3Szrj 768*fae548d3Szrj #ifndef elf_backend_cant_unwind_opcode 769*fae548d3Szrj #define elf_backend_cant_unwind_opcode 0 770*fae548d3Szrj #endif 771*fae548d3Szrj 772*fae548d3Szrj #ifndef elf_match_priority 773*fae548d3Szrj #define elf_match_priority \ 774*fae548d3Szrj (ELF_ARCH == bfd_arch_unknown ? 2 : ELF_OSABI == ELFOSABI_NONE ? 1 : 0) 775*fae548d3Szrj #endif 776*fae548d3Szrj 777*fae548d3Szrj extern const struct elf_size_info _bfd_elfNN_size_info; 778*fae548d3Szrj 779*fae548d3Szrj static struct elf_backend_data elfNN_bed = 780*fae548d3Szrj { 781*fae548d3Szrj ELF_ARCH, /* arch */ 782*fae548d3Szrj ELF_TARGET_ID, /* target_id */ 783*fae548d3Szrj ELF_MACHINE_CODE, /* elf_machine_code */ 784*fae548d3Szrj ELF_OSABI, /* elf_osabi */ 785*fae548d3Szrj ELF_MAXPAGESIZE, /* maxpagesize */ 786*fae548d3Szrj ELF_MINPAGESIZE, /* minpagesize */ 787*fae548d3Szrj ELF_COMMONPAGESIZE, /* commonpagesize */ 788*fae548d3Szrj ELF_RELROPAGESIZE, /* commonpagesize to use with -z relro */ 789*fae548d3Szrj ELF_DYNAMIC_SEC_FLAGS, /* dynamic_sec_flags */ 790*fae548d3Szrj elf_backend_arch_data, 791*fae548d3Szrj elf_info_to_howto, 792*fae548d3Szrj elf_info_to_howto_rel, 793*fae548d3Szrj elf_backend_sym_is_global, 794*fae548d3Szrj elf_backend_object_p, 795*fae548d3Szrj elf_backend_symbol_processing, 796*fae548d3Szrj elf_backend_symbol_table_processing, 797*fae548d3Szrj elf_backend_get_symbol_type, 798*fae548d3Szrj elf_backend_archive_symbol_lookup, 799*fae548d3Szrj elf_backend_name_local_section_symbols, 800*fae548d3Szrj elf_backend_section_processing, 801*fae548d3Szrj elf_backend_section_from_shdr, 802*fae548d3Szrj elf_backend_section_flags, 803*fae548d3Szrj elf_backend_get_sec_type_attr, 804*fae548d3Szrj elf_backend_section_from_phdr, 805*fae548d3Szrj elf_backend_fake_sections, 806*fae548d3Szrj elf_backend_section_from_bfd_section, 807*fae548d3Szrj elf_backend_add_symbol_hook, 808*fae548d3Szrj elf_backend_link_output_symbol_hook, 809*fae548d3Szrj elf_backend_create_dynamic_sections, 810*fae548d3Szrj elf_backend_omit_section_dynsym, 811*fae548d3Szrj elf_backend_relocs_compatible, 812*fae548d3Szrj elf_backend_check_relocs, 813*fae548d3Szrj elf_backend_check_directives, 814*fae548d3Szrj elf_backend_notice_as_needed, 815*fae548d3Szrj elf_backend_adjust_dynamic_symbol, 816*fae548d3Szrj elf_backend_always_size_sections, 817*fae548d3Szrj elf_backend_size_dynamic_sections, 818*fae548d3Szrj elf_backend_init_index_section, 819*fae548d3Szrj elf_backend_relocate_section, 820*fae548d3Szrj elf_backend_finish_dynamic_symbol, 821*fae548d3Szrj elf_backend_finish_dynamic_sections, 822*fae548d3Szrj elf_backend_begin_write_processing, 823*fae548d3Szrj elf_backend_final_write_processing, 824*fae548d3Szrj elf_backend_additional_program_headers, 825*fae548d3Szrj elf_backend_modify_segment_map, 826*fae548d3Szrj elf_backend_modify_headers, 827*fae548d3Szrj elf_backend_allow_non_load_phdr, 828*fae548d3Szrj elf_backend_gc_keep, 829*fae548d3Szrj elf_backend_gc_mark_dynamic_ref, 830*fae548d3Szrj elf_backend_gc_mark_hook, 831*fae548d3Szrj elf_backend_gc_mark_extra_sections, 832*fae548d3Szrj elf_backend_init_file_header, 833*fae548d3Szrj elf_backend_print_symbol_all, 834*fae548d3Szrj elf_backend_output_arch_local_syms, 835*fae548d3Szrj elf_backend_output_arch_syms, 836*fae548d3Szrj elf_backend_filter_implib_symbols, 837*fae548d3Szrj elf_backend_copy_indirect_symbol, 838*fae548d3Szrj elf_backend_hide_symbol, 839*fae548d3Szrj elf_backend_fixup_symbol, 840*fae548d3Szrj elf_backend_merge_symbol_attribute, 841*fae548d3Szrj elf_backend_get_target_dtag, 842*fae548d3Szrj elf_backend_ignore_undef_symbol, 843*fae548d3Szrj elf_backend_emit_relocs, 844*fae548d3Szrj elf_backend_update_relocs, 845*fae548d3Szrj elf_backend_count_relocs, 846*fae548d3Szrj elf_backend_count_additional_relocs, 847*fae548d3Szrj elf_backend_sort_relocs_p, 848*fae548d3Szrj elf_backend_grok_prstatus, 849*fae548d3Szrj elf_backend_grok_psinfo, 850*fae548d3Szrj elf_backend_grok_freebsd_prstatus, 851*fae548d3Szrj elf_backend_write_core_note, 852*fae548d3Szrj elf_backend_lookup_section_flags_hook, 853*fae548d3Szrj elf_backend_reloc_type_class, 854*fae548d3Szrj elf_backend_discard_info, 855*fae548d3Szrj elf_backend_ignore_discarded_relocs, 856*fae548d3Szrj elf_backend_action_discarded, 857*fae548d3Szrj elf_backend_eh_frame_address_size, 858*fae548d3Szrj elf_backend_can_make_relative_eh_frame, 859*fae548d3Szrj elf_backend_can_make_lsda_relative_eh_frame, 860*fae548d3Szrj elf_backend_encode_eh_address, 861*fae548d3Szrj elf_backend_write_section, 862*fae548d3Szrj elf_backend_mips_irix_compat, 863*fae548d3Szrj elf_backend_mips_rtype_to_howto, 864*fae548d3Szrj elf_backend_ecoff_debug_swap, 865*fae548d3Szrj elf_backend_bfd_from_remote_memory, 866*fae548d3Szrj elf_backend_core_find_build_id, 867*fae548d3Szrj elf_backend_plt_sym_val, 868*fae548d3Szrj elf_backend_common_definition, 869*fae548d3Szrj elf_backend_common_section_index, 870*fae548d3Szrj elf_backend_common_section, 871*fae548d3Szrj elf_backend_merge_symbol, 872*fae548d3Szrj elf_backend_hash_symbol, 873*fae548d3Szrj elf_backend_record_xhash_symbol, 874*fae548d3Szrj elf_backend_is_function_type, 875*fae548d3Szrj elf_backend_maybe_function_sym, 876*fae548d3Szrj elf_backend_get_reloc_section, 877*fae548d3Szrj elf_backend_copy_special_section_fields, 878*fae548d3Szrj elf_backend_link_order_error_handler, 879*fae548d3Szrj elf_backend_relplt_name, 880*fae548d3Szrj ELF_MACHINE_ALT1, 881*fae548d3Szrj ELF_MACHINE_ALT2, 882*fae548d3Szrj &elf_backend_size_info, 883*fae548d3Szrj elf_backend_special_sections, 884*fae548d3Szrj elf_backend_got_header_size, 885*fae548d3Szrj elf_backend_got_elt_size, 886*fae548d3Szrj elf_backend_obj_attrs_vendor, 887*fae548d3Szrj elf_backend_obj_attrs_section, 888*fae548d3Szrj elf_backend_obj_attrs_arg_type, 889*fae548d3Szrj elf_backend_obj_attrs_section_type, 890*fae548d3Szrj elf_backend_obj_attrs_order, 891*fae548d3Szrj elf_backend_obj_attrs_handle_unknown, 892*fae548d3Szrj elf_backend_parse_gnu_properties, 893*fae548d3Szrj elf_backend_merge_gnu_properties, 894*fae548d3Szrj elf_backend_setup_gnu_properties, 895*fae548d3Szrj elf_backend_fixup_gnu_properties, 896*fae548d3Szrj elf_backend_compact_eh_encoding, 897*fae548d3Szrj elf_backend_cant_unwind_opcode, 898*fae548d3Szrj elf_backend_static_tls_alignment, 899*fae548d3Szrj elf_backend_stack_align, 900*fae548d3Szrj elf_backend_strtab_flags, 901*fae548d3Szrj elf_backend_collect, 902*fae548d3Szrj elf_backend_type_change_ok, 903*fae548d3Szrj elf_backend_may_use_rel_p, 904*fae548d3Szrj elf_backend_may_use_rela_p, 905*fae548d3Szrj elf_backend_default_use_rela_p, 906*fae548d3Szrj elf_backend_rela_plts_and_copies_p, 907*fae548d3Szrj elf_backend_rela_normal, 908*fae548d3Szrj elf_backend_dtrel_excludes_plt, 909*fae548d3Szrj elf_backend_sign_extend_vma, 910*fae548d3Szrj elf_backend_want_got_plt, 911*fae548d3Szrj elf_backend_plt_readonly, 912*fae548d3Szrj elf_backend_want_plt_sym, 913*fae548d3Szrj elf_backend_plt_not_loaded, 914*fae548d3Szrj elf_backend_plt_alignment, 915*fae548d3Szrj elf_backend_can_gc_sections, 916*fae548d3Szrj elf_backend_can_refcount, 917*fae548d3Szrj elf_backend_want_got_sym, 918*fae548d3Szrj elf_backend_want_dynbss, 919*fae548d3Szrj elf_backend_want_dynrelro, 920*fae548d3Szrj elf_backend_want_p_paddr_set_to_zero, 921*fae548d3Szrj elf_backend_no_page_alias, 922*fae548d3Szrj elf_backend_default_execstack, 923*fae548d3Szrj elf_backend_caches_rawsize, 924*fae548d3Szrj elf_backend_extern_protected_data, 925*fae548d3Szrj elf_backend_always_renumber_dynsyms, 926*fae548d3Szrj elf_backend_linux_prpsinfo32_ugid16, 927*fae548d3Szrj elf_backend_linux_prpsinfo64_ugid16 928*fae548d3Szrj }; 929*fae548d3Szrj 930*fae548d3Szrj /* Forward declaration for use when initialising alternative_target field. */ 931*fae548d3Szrj #ifdef TARGET_LITTLE_SYM 932*fae548d3Szrj extern const bfd_target TARGET_LITTLE_SYM; 933*fae548d3Szrj #endif 934*fae548d3Szrj 935*fae548d3Szrj #ifdef TARGET_BIG_SYM 936*fae548d3Szrj const bfd_target TARGET_BIG_SYM = 937*fae548d3Szrj { 938*fae548d3Szrj /* name: identify kind of target */ 939*fae548d3Szrj TARGET_BIG_NAME, 940*fae548d3Szrj 941*fae548d3Szrj /* flavour: general indication about file */ 942*fae548d3Szrj bfd_target_elf_flavour, 943*fae548d3Szrj 944*fae548d3Szrj /* byteorder: data is big endian */ 945*fae548d3Szrj BFD_ENDIAN_BIG, 946*fae548d3Szrj 947*fae548d3Szrj /* header_byteorder: header is also big endian */ 948*fae548d3Szrj BFD_ENDIAN_BIG, 949*fae548d3Szrj 950*fae548d3Szrj /* object_flags: mask of all file flags */ 951*fae548d3Szrj (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS 952*fae548d3Szrj | DYNAMIC | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS 953*fae548d3Szrj | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON), 954*fae548d3Szrj 955*fae548d3Szrj /* section_flags: mask of all section flags */ 956*fae548d3Szrj (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY 957*fae548d3Szrj | SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES 958*fae548d3Szrj | SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), 959*fae548d3Szrj 960*fae548d3Szrj /* leading_symbol_char: is the first char of a user symbol 961*fae548d3Szrj predictable, and if so what is it */ 962*fae548d3Szrj elf_symbol_leading_char, 963*fae548d3Szrj 964*fae548d3Szrj /* ar_pad_char: pad character for filenames within an archive header 965*fae548d3Szrj FIXME: this really has nothing to do with ELF, this is a characteristic 966*fae548d3Szrj of the archiver and/or os and should be independently tunable */ 967*fae548d3Szrj '/', 968*fae548d3Szrj 969*fae548d3Szrj /* ar_max_namelen: maximum number of characters in an archive header 970*fae548d3Szrj FIXME: this really has nothing to do with ELF, this is a characteristic 971*fae548d3Szrj of the archiver and should be independently tunable. The System V ABI, 972*fae548d3Szrj Chapter 7 (Formats & Protocols), Archive section sets this as 15. */ 973*fae548d3Szrj 15, 974*fae548d3Szrj 975*fae548d3Szrj elf_match_priority, 976*fae548d3Szrj 977*fae548d3Szrj /* Routines to byte-swap various sized integers from the data sections */ 978*fae548d3Szrj bfd_getb64, bfd_getb_signed_64, bfd_putb64, 979*fae548d3Szrj bfd_getb32, bfd_getb_signed_32, bfd_putb32, 980*fae548d3Szrj bfd_getb16, bfd_getb_signed_16, bfd_putb16, 981*fae548d3Szrj 982*fae548d3Szrj /* Routines to byte-swap various sized integers from the file headers */ 983*fae548d3Szrj bfd_getb64, bfd_getb_signed_64, bfd_putb64, 984*fae548d3Szrj bfd_getb32, bfd_getb_signed_32, bfd_putb32, 985*fae548d3Szrj bfd_getb16, bfd_getb_signed_16, bfd_putb16, 986*fae548d3Szrj 987*fae548d3Szrj /* bfd_check_format: check the format of a file being read */ 988*fae548d3Szrj { _bfd_dummy_target, /* unknown format */ 989*fae548d3Szrj bfd_elfNN_object_p, /* assembler/linker output (object file) */ 990*fae548d3Szrj bfd_elfNN_archive_p, /* an archive */ 991*fae548d3Szrj bfd_elfNN_core_file_p /* a core file */ 992*fae548d3Szrj }, 993*fae548d3Szrj 994*fae548d3Szrj /* bfd_set_format: set the format of a file being written */ 995*fae548d3Szrj { _bfd_bool_bfd_false_error, 996*fae548d3Szrj bfd_elfNN_mkobject, 997*fae548d3Szrj bfd_elfNN_mkarchive, 998*fae548d3Szrj bfd_elfNN_mkcorefile 999*fae548d3Szrj }, 1000*fae548d3Szrj 1001*fae548d3Szrj /* bfd_write_contents: write cached information into a file being written */ 1002*fae548d3Szrj { _bfd_bool_bfd_false_error, 1003*fae548d3Szrj bfd_elfNN_write_object_contents, 1004*fae548d3Szrj bfd_elfNN_write_archive_contents, 1005*fae548d3Szrj bfd_elfNN_write_corefile_contents, 1006*fae548d3Szrj }, 1007*fae548d3Szrj 1008*fae548d3Szrj BFD_JUMP_TABLE_GENERIC (bfd_elfNN), 1009*fae548d3Szrj BFD_JUMP_TABLE_COPY (bfd_elfNN), 1010*fae548d3Szrj BFD_JUMP_TABLE_CORE (bfd_elfNN), 1011*fae548d3Szrj #ifdef bfd_elfNN_archive_functions 1012*fae548d3Szrj BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), 1013*fae548d3Szrj #elif defined USE_64_BIT_ARCHIVE 1014*fae548d3Szrj BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_64_bit), 1015*fae548d3Szrj #else 1016*fae548d3Szrj BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), 1017*fae548d3Szrj #endif 1018*fae548d3Szrj BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), 1019*fae548d3Szrj BFD_JUMP_TABLE_RELOCS (bfd_elfNN), 1020*fae548d3Szrj BFD_JUMP_TABLE_WRITE (bfd_elfNN), 1021*fae548d3Szrj BFD_JUMP_TABLE_LINK (bfd_elfNN), 1022*fae548d3Szrj BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), 1023*fae548d3Szrj 1024*fae548d3Szrj /* Alternative endian target. */ 1025*fae548d3Szrj #ifdef TARGET_LITTLE_SYM 1026*fae548d3Szrj & TARGET_LITTLE_SYM, 1027*fae548d3Szrj #else 1028*fae548d3Szrj NULL, 1029*fae548d3Szrj #endif 1030*fae548d3Szrj 1031*fae548d3Szrj /* backend_data: */ 1032*fae548d3Szrj &elfNN_bed 1033*fae548d3Szrj }; 1034*fae548d3Szrj #endif 1035*fae548d3Szrj 1036*fae548d3Szrj #ifdef TARGET_LITTLE_SYM 1037*fae548d3Szrj const bfd_target TARGET_LITTLE_SYM = 1038*fae548d3Szrj { 1039*fae548d3Szrj /* name: identify kind of target */ 1040*fae548d3Szrj TARGET_LITTLE_NAME, 1041*fae548d3Szrj 1042*fae548d3Szrj /* flavour: general indication about file */ 1043*fae548d3Szrj bfd_target_elf_flavour, 1044*fae548d3Szrj 1045*fae548d3Szrj /* byteorder: data is little endian */ 1046*fae548d3Szrj BFD_ENDIAN_LITTLE, 1047*fae548d3Szrj 1048*fae548d3Szrj /* header_byteorder: header is also little endian */ 1049*fae548d3Szrj BFD_ENDIAN_LITTLE, 1050*fae548d3Szrj 1051*fae548d3Szrj /* object_flags: mask of all file flags */ 1052*fae548d3Szrj (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS 1053*fae548d3Szrj | DYNAMIC | WP_TEXT | D_PAGED | BFD_COMPRESS | BFD_DECOMPRESS 1054*fae548d3Szrj | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON), 1055*fae548d3Szrj 1056*fae548d3Szrj /* section_flags: mask of all section flags */ 1057*fae548d3Szrj (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY 1058*fae548d3Szrj | SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES 1059*fae548d3Szrj | SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), 1060*fae548d3Szrj 1061*fae548d3Szrj /* leading_symbol_char: is the first char of a user symbol 1062*fae548d3Szrj predictable, and if so what is it */ 1063*fae548d3Szrj elf_symbol_leading_char, 1064*fae548d3Szrj 1065*fae548d3Szrj /* ar_pad_char: pad character for filenames within an archive header 1066*fae548d3Szrj FIXME: this really has nothing to do with ELF, this is a characteristic 1067*fae548d3Szrj of the archiver and/or os and should be independently tunable */ 1068*fae548d3Szrj '/', 1069*fae548d3Szrj 1070*fae548d3Szrj /* ar_max_namelen: maximum number of characters in an archive header 1071*fae548d3Szrj FIXME: this really has nothing to do with ELF, this is a characteristic 1072*fae548d3Szrj of the archiver and should be independently tunable. The System V ABI, 1073*fae548d3Szrj Chapter 7 (Formats & Protocols), Archive section sets this as 15. */ 1074*fae548d3Szrj 15, 1075*fae548d3Szrj 1076*fae548d3Szrj elf_match_priority, 1077*fae548d3Szrj 1078*fae548d3Szrj /* Routines to byte-swap various sized integers from the data sections */ 1079*fae548d3Szrj bfd_getl64, bfd_getl_signed_64, bfd_putl64, 1080*fae548d3Szrj bfd_getl32, bfd_getl_signed_32, bfd_putl32, 1081*fae548d3Szrj bfd_getl16, bfd_getl_signed_16, bfd_putl16, 1082*fae548d3Szrj 1083*fae548d3Szrj /* Routines to byte-swap various sized integers from the file headers */ 1084*fae548d3Szrj bfd_getl64, bfd_getl_signed_64, bfd_putl64, 1085*fae548d3Szrj bfd_getl32, bfd_getl_signed_32, bfd_putl32, 1086*fae548d3Szrj bfd_getl16, bfd_getl_signed_16, bfd_putl16, 1087*fae548d3Szrj 1088*fae548d3Szrj /* bfd_check_format: check the format of a file being read */ 1089*fae548d3Szrj { _bfd_dummy_target, /* unknown format */ 1090*fae548d3Szrj bfd_elfNN_object_p, /* assembler/linker output (object file) */ 1091*fae548d3Szrj bfd_elfNN_archive_p, /* an archive */ 1092*fae548d3Szrj bfd_elfNN_core_file_p /* a core file */ 1093*fae548d3Szrj }, 1094*fae548d3Szrj 1095*fae548d3Szrj /* bfd_set_format: set the format of a file being written */ 1096*fae548d3Szrj { _bfd_bool_bfd_false_error, 1097*fae548d3Szrj bfd_elfNN_mkobject, 1098*fae548d3Szrj bfd_elfNN_mkarchive, 1099*fae548d3Szrj bfd_elfNN_mkcorefile 1100*fae548d3Szrj }, 1101*fae548d3Szrj 1102*fae548d3Szrj /* bfd_write_contents: write cached information into a file being written */ 1103*fae548d3Szrj { _bfd_bool_bfd_false_error, 1104*fae548d3Szrj bfd_elfNN_write_object_contents, 1105*fae548d3Szrj bfd_elfNN_write_archive_contents, 1106*fae548d3Szrj bfd_elfNN_write_corefile_contents, 1107*fae548d3Szrj }, 1108*fae548d3Szrj 1109*fae548d3Szrj BFD_JUMP_TABLE_GENERIC (bfd_elfNN), 1110*fae548d3Szrj BFD_JUMP_TABLE_COPY (bfd_elfNN), 1111*fae548d3Szrj BFD_JUMP_TABLE_CORE (bfd_elfNN), 1112*fae548d3Szrj #ifdef bfd_elfNN_archive_functions 1113*fae548d3Szrj BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), 1114*fae548d3Szrj #elif defined USE_64_BIT_ARCHIVE 1115*fae548d3Szrj BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_64_bit), 1116*fae548d3Szrj #else 1117*fae548d3Szrj BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), 1118*fae548d3Szrj #endif 1119*fae548d3Szrj BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), 1120*fae548d3Szrj BFD_JUMP_TABLE_RELOCS (bfd_elfNN), 1121*fae548d3Szrj BFD_JUMP_TABLE_WRITE (bfd_elfNN), 1122*fae548d3Szrj BFD_JUMP_TABLE_LINK (bfd_elfNN), 1123*fae548d3Szrj BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), 1124*fae548d3Szrj 1125*fae548d3Szrj /* Alternative endian target. */ 1126*fae548d3Szrj #ifdef TARGET_BIG_SYM 1127*fae548d3Szrj & TARGET_BIG_SYM, 1128*fae548d3Szrj #else 1129*fae548d3Szrj NULL, 1130*fae548d3Szrj #endif 1131*fae548d3Szrj 1132*fae548d3Szrj /* backend_data: */ 1133*fae548d3Szrj &elfNN_bed 1134*fae548d3Szrj }; 1135*fae548d3Szrj #endif 1136