#include "bfd.h"#include "sysdep.h"#include "libbfd.h"#include "elf-bfd.h"#include "opcode/sparc.h"#include "elf/sparc.h"#include "elf64-target.h"

Go to the source code of this file.
| #define add_dynamic_entry | ( | TAG, | |||
| VAL | ) | _bfd_elf_add_dynamic_entry (info, TAG, VAL) |
| #define bfd_elf64_bfd_link_hash_table_create sparc64_elf_bfd_link_hash_table_create |
Definition at line 3242 of file elf64-sparc.c.
| #define bfd_elf64_bfd_merge_private_bfd_data sparc64_elf_merge_private_bfd_data |
Definition at line 3288 of file elf64-sparc.c.
| #define bfd_elf64_bfd_relax_section sparc64_elf_relax_section |
Definition at line 3257 of file elf64-sparc.c.
| #define bfd_elf64_bfd_reloc_type_lookup sparc64_elf_reloc_type_lookup |
Definition at line 3255 of file elf64-sparc.c.
| #define bfd_elf64_canonicalize_dynamic_reloc sparc64_elf_canonicalize_dynamic_reloc |
Definition at line 3253 of file elf64-sparc.c.
| #define bfd_elf64_canonicalize_reloc sparc64_elf_canonicalize_reloc |
Definition at line 3251 of file elf64-sparc.c.
| #define bfd_elf64_get_dynamic_reloc_upper_bound sparc64_elf_get_dynamic_reloc_upper_bound |
Definition at line 3249 of file elf64-sparc.c.
| #define bfd_elf64_get_reloc_upper_bound sparc64_elf_get_reloc_upper_bound |
Definition at line 3247 of file elf64-sparc.c.
| #define bfd_elf64_new_section_hook sparc64_elf_new_section_hook |
Definition at line 3259 of file elf64-sparc.c.
| #define canon_reloc_count | ( | sec | ) | ((struct sparc64_elf_section_data *) elf_section_data (sec))->reloc_count |
Definition at line 335 of file elf64-sparc.c.
Referenced by sparc64_elf_canonicalize_dynamic_reloc(), sparc64_elf_canonicalize_reloc(), sparc64_elf_slurp_one_reloc_table(), and sparc64_elf_slurp_reloc_table().
| #define COND | ( | x | ) | (((x)&0xf)<<25) |
| #define CONDA COND(0x8) |
| #define EF_SPARC_ISA_EXTENSIONS (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3 | EF_SPARC_HAL_R1) |
Referenced by sparc64_elf_merge_private_bfd_data().
| #define ELF_ARCH bfd_arch_sparc |
Definition at line 3233 of file elf64-sparc.c.
| #define elf_backend_add_symbol_hook sparc64_elf_add_symbol_hook |
Definition at line 3264 of file elf64-sparc.c.
| #define elf_backend_adjust_dynamic_symbol sparc64_elf_adjust_dynamic_symbol |
Definition at line 3272 of file elf64-sparc.c.
| #define elf_backend_check_relocs sparc64_elf_check_relocs |
Definition at line 3270 of file elf64-sparc.c.
| #define elf_backend_create_dynamic_sections sparc64_elf_create_dynamic_sections |
Definition at line 3262 of file elf64-sparc.c.
| #define elf_backend_fake_sections sparc64_elf_fake_sections |
Definition at line 3290 of file elf64-sparc.c.
| #define elf_backend_finish_dynamic_sections sparc64_elf_finish_dynamic_sections |
Definition at line 3282 of file elf64-sparc.c.
| #define elf_backend_finish_dynamic_symbol sparc64_elf_finish_dynamic_symbol |
Definition at line 3280 of file elf64-sparc.c.
| #define elf_backend_get_symbol_type sparc64_elf_get_symbol_type |
Definition at line 3266 of file elf64-sparc.c.
| #define elf_backend_got_header_size 8 |
Definition at line 3310 of file elf64-sparc.c.
| #define elf_backend_object_p sparc64_elf_object_p |
Definition at line 3297 of file elf64-sparc.c.
| #define elf_backend_omit_section_dynsym sparc64_elf_omit_section_dynsym |
Definition at line 3274 of file elf64-sparc.c.
| #define elf_backend_output_arch_syms sparc64_elf_output_arch_syms |
Definition at line 3286 of file elf64-sparc.c.
| #define elf_backend_plt_alignment 8 |
Definition at line 3308 of file elf64-sparc.c.
| #define elf_backend_plt_readonly 0 |
Definition at line 3303 of file elf64-sparc.c.
| #define elf_backend_plt_sym_val sparc64_elf_plt_sym_val |
Definition at line 3292 of file elf64-sparc.c.
| #define elf_backend_print_symbol_all sparc64_elf_print_symbol_all |
Definition at line 3284 of file elf64-sparc.c.
| #define elf_backend_rela_normal 1 |
Definition at line 3305 of file elf64-sparc.c.
| #define elf_backend_reloc_type_class sparc64_elf_reloc_type_class |
Definition at line 3299 of file elf64-sparc.c.
| #define elf_backend_relocate_section sparc64_elf_relocate_section |
Definition at line 3278 of file elf64-sparc.c.
| #define elf_backend_size_dynamic_sections sparc64_elf_size_dynamic_sections |
Definition at line 3276 of file elf64-sparc.c.
| #define elf_backend_size_info sparc64_elf_size_info |
Definition at line 3295 of file elf64-sparc.c.
| #define elf_backend_symbol_processing sparc64_elf_symbol_processing |
Definition at line 3268 of file elf64-sparc.c.
| #define elf_backend_want_got_plt 0 |
Definition at line 3302 of file elf64-sparc.c.
| #define elf_backend_want_plt_sym 1 |
Definition at line 3304 of file elf64-sparc.c.
| #define ELF_DYNAMIC_INTERPRETER "/usr/lib/sparcv9/ld.so.1" |
Definition at line 1028 of file elf64-sparc.c.
| #define elf_info_to_howto sparc64_elf_info_to_howto |
Definition at line 3245 of file elf64-sparc.c.
| #define ELF_MACHINE_ALT1 EM_OLD_SPARCV9 |
Definition at line 3240 of file elf64-sparc.c.
| #define ELF_MACHINE_CODE EM_SPARCV9 |
Definition at line 3237 of file elf64-sparc.c.
| #define ELF_MAXPAGESIZE 0x100000 |
Definition at line 3234 of file elf64-sparc.c.
| #define G0 0 |
| #define GOT_RESERVED_ENTRIES 1 |
Definition at line 1026 of file elf64-sparc.c.
| #define INSN_BA (F2(0,2) | CONDA) |
| #define INSN_BPA (F2(0,1) | CONDA | BPRED | XCC) |
| #define INSN_NOP F2(0,4) |
| #define INSN_OR F3(2, 0x2, 0) |
| #define LARGE_PLT_THRESHOLD 32768 |
Definition at line 1025 of file elf64-sparc.c.
Referenced by sparc64_elf_build_plt(), sparc64_elf_finish_dynamic_symbol(), sparc64_elf_plt_entry_offset(), sparc64_elf_plt_ptr_offset(), and sparc64_elf_plt_sym_val().
| #define MINUS_ONE (~ (bfd_vma) 0) |
Definition at line 39 of file elf64-sparc.c.
| #define O7 15 |
| #define PLT_ENTRY_SIZE 32 |
Definition at line 1023 of file elf64-sparc.c.
| #define PLT_HEADER_SIZE (4 * PLT_ENTRY_SIZE) |
Definition at line 1024 of file elf64-sparc.c.
| #define sec_do_relax | ( | sec | ) | ((struct sparc64_elf_section_data *) elf_section_data (sec))->do_relax |
Definition at line 333 of file elf64-sparc.c.
| #define sparc64_elf_hash_table | ( | p | ) | ((struct sparc64_elf_link_hash_table *) ((p)->hash)) |
Definition at line 758 of file elf64-sparc.c.
Referenced by create_got_section(), sparc64_elf_add_symbol_hook(), sparc64_elf_check_relocs(), sparc64_elf_create_dynamic_sections(), sparc64_elf_finish_dynamic_sections(), sparc64_elf_finish_dynamic_symbol(), sparc64_elf_output_arch_syms(), sparc64_elf_relocate_section(), and sparc64_elf_size_dynamic_sections().
| #define TARGET_BIG_NAME "elf64-sparc" |
Definition at line 3232 of file elf64-sparc.c.
| #define TARGET_BIG_SYM bfd_elf64_sparc_vec |
Definition at line 3231 of file elf64-sparc.c.
| #define XCC (2 << 20) |
| static bfd_boolean create_got_section | ( | bfd * | dynobj, | |
| struct bfd_link_info * | info | |||
| ) | [static] |
Definition at line 788 of file elf64-sparc.c.
References _bfd_elf_create_got_section(), BFD_ASSERT, bfd_get_section_by_name(), bfd_make_section(), bfd_set_section_alignment, bfd_set_section_flags(), FALSE, NULL, SEC_ALLOC, SEC_HAS_CONTENTS, SEC_IN_MEMORY, SEC_LINKER_CREATED, SEC_LOAD, SEC_READONLY, sparc64_elf_link_hash_table::sgot, sparc64_elf_hash_table, sparc64_elf_link_hash_table::srelgot, and TRUE.
| static bfd_reloc_status_type init_insn_reloc | ( | bfd * | abfd, | |
| arelent * | reloc_entry, | |||
| asymbol * | symbol, | |||
| PTR | data, | |||
| asection * | input_section, | |||
| bfd * | output_bfd, | |||
| bfd_vma * | prelocation, | |||
| bfd_vma * | pinsn | |||
| ) | [static] |
Definition at line 844 of file elf64-sparc.c.
References reloc_cache_entry::addend, reloc_cache_entry::address, bfd_get_32, bfd_get_section_limit, bfd_reloc_continue, bfd_reloc_ok, bfd_reloc_other, bfd_reloc_outofrange, BSF_SECTION_SYM, bfd_symbol::flags, reloc_cache_entry::howto, NULL, bfd_section::output_offset, bfd_section::output_section, reloc_howto_struct::partial_inplace, reloc_howto_struct::pc_relative, bfd_symbol::section, bfd_symbol::value, and bfd_section::vma.
Referenced by sparc_elf_hix22_reloc(), sparc_elf_lox10_reloc(), and sparc_elf_wdisp16_reloc().
| static bfd_reloc_status_type sparc_elf_notsup_reloc PARAMS | ( | (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **) | ) | [static] |
| static enum elf_reloc_type_class sparc64_elf_reloc_type_class PARAMS | ( | (const Elf_Internal_Rela *) | ) | [static] |
| static long sparc64_elf_canonicalize_dynamic_reloc PARAMS | ( | (bfd *, arelent **, asymbol **) | ) | [static] |
| static long sparc64_elf_canonicalize_reloc PARAMS | ( | (bfd *, asection *, arelent **, asymbol **) | ) | [static] |
| static bfd_boolean sparc64_elf_slurp_reloc_table PARAMS | ( | (bfd *, asection *, asymbol **, bfd_boolean) | ) | [static] |
| static bfd_boolean sparc64_elf_slurp_one_reloc_table PARAMS | ( | (bfd *, asection *, Elf_Internal_Shdr *, asymbol **, bfd_boolean) | ) | [static] |
| static bfd_boolean sparc64_elf_finish_dynamic_symbol PARAMS | ( | (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *) | ) | [static] |
| static bfd_boolean sparc64_elf_relocate_section PARAMS | ( | (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **) | ) | [static] |
| static bfd_boolean sparc64_elf_relax_section PARAMS | ( | (bfd *, asection *, struct bfd_link_info *, bfd_boolean *) | ) | [static] |
| static bfd_boolean sparc64_elf_fake_sections PARAMS | ( | (bfd *, Elf_Internal_Shdr *, asection *) | ) | [static] |
| static bfd_boolean sparc64_elf_output_arch_syms PARAMS | ( | (bfd *, struct bfd_link_info *, PTR, bfd_boolean(*)(PTR, const char *, Elf_Internal_Sym *, asection *, struct elf_link_hash_entry *)) | ) | [static] |
| static bfd_boolean sparc64_elf_add_symbol_hook PARAMS | ( | (bfd *, struct bfd_link_info *, Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *) | ) | [static] |
| static int sparc64_elf_get_symbol_type PARAMS | ( | (Elf_Internal_Sym *, int) | ) | [static] |
| static bfd_boolean sparc64_elf_omit_section_dynsym PARAMS | ( | (bfd *, struct bfd_link_info *, asection *) | ) | [static] |
| static bfd_boolean sparc64_elf_adjust_dynamic_symbol PARAMS | ( | (struct bfd_link_info *, struct elf_link_hash_entry *) | ) | [static] |
| static bfd_boolean sparc64_elf_check_relocs PARAMS | ( | (bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *) | ) | [static] |
| static void sparc64_elf_info_to_howto PARAMS | ( | (bfd *, arelent *, Elf_Internal_Rela *) | ) | [static] |
| static reloc_howto_type* sparc64_elf_reloc_type_lookup PARAMS | ( | (bfd *, bfd_reloc_code_real_type) | ) | [static] |
| static bfd_reloc_status_type init_insn_reloc PARAMS | ( | (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, bfd_vma *, bfd_vma *) | ) | [static] |
| static bfd_boolean create_got_section PARAMS | ( | (bfd *, struct bfd_link_info *) | ) | [static] |
| static struct bfd_link_hash_table* sparc64_elf_bfd_link_hash_table_create PARAMS | ( | (bfd *) | ) | [static, read] |
| static bfd_boolean sparc64_elf_add_symbol_hook | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| Elf_Internal_Sym * | sym, | |||
| const char ** | namep, | |||
| flagsp | , | |||
| secp | , | |||
| valp | ||||
| ) | [static] |
Definition at line 1436 of file elf64-sparc.c.
References _, sparc64_elf_app_reg::abfd, bfd_hash_allocate(), bfd_link_hash_lookup(), sparc64_elf_app_reg::bind, bfd_link_hash_table::creator, DYNAMIC, ELF_ST_BIND, ELF_ST_TYPE, FALSE, h, bfd_link_info::hash, i, int, sparc64_elf_app_reg::name, NULL, p, sparc64_elf_app_reg::shndx, sparc64_elf_hash_table, elf_internal_sym::st_info, elf_internal_sym::st_shndx, elf_internal_sym::st_value, STB_GLOBAL, STB_WEAK, strcmp(), strcpy, strlen(), STT_FUNC, STT_REGISTER, bfd_link_hash_table::table, TRUE, and elf_link_hash_entry::type.
| static bfd_boolean sparc64_elf_adjust_dynamic_symbol | ( | struct bfd_link_info * | info, | |
| struct elf_link_hash_entry * | h | |||
| ) | [static] |
Definition at line 1655 of file elf64-sparc.c.
References BFD_ALIGN, BFD_ASSERT, bfd_error_bad_value, bfd_get_section_alignment, bfd_get_section_by_name(), bfd_link_hash_defined, bfd_link_hash_defweak, bfd_link_hash_undefined, bfd_link_hash_undefweak, bfd_log2(), bfd_set_error(), bfd_set_section_alignment, bfd_link_hash_entry::def, elf_link_hash_entry::def_dynamic, elf_link_hash_entry::def_regular, elf_hash_table, FALSE, elf_link_hash_entry::needs_copy, elf_link_hash_entry::needs_plt, NULL, elf_link_hash_entry::plt, PLT_ENTRY_SIZE, PLT_HEADER_SIZE, elf_link_hash_entry::ref_dynamic, elf_link_hash_entry::ref_regular, elf_link_hash_entry::root, s, SEC_ALLOC, SEC_CODE, elf_link_hash_entry::size, bfd_section::size, sparc64_elf_plt_entry_offset(), STT_FUNC, STT_NOTYPE, TRUE, bfd_link_hash_entry::type, elf_link_hash_entry::type, bfd_link_hash_entry::u, elf_link_hash_entry::u, and elf_link_hash_entry::weakdef.
| static struct bfd_link_hash_table* sparc64_elf_bfd_link_hash_table_create | ( | bfd * | abfd | ) | [static, read] |
Definition at line 764 of file elf64-sparc.c.
References _bfd_elf_link_hash_newfunc(), _bfd_elf_link_hash_table_init(), bfd_zmalloc(), free(), NULL, ret, sparc64_elf_link_hash_table::root, and elf_link_hash_table::root.
| static void sparc64_elf_build_plt | ( | bfd * | output_bfd, | |
| unsigned char * | contents, | |||
| int | nentries | |||
| ) | [static] |
Definition at line 1033 of file elf64-sparc.c.
References bfd_put_32, bfd_put_64, i, LARGE_PLT_THRESHOLD, nop, PLT_ENTRY_SIZE, PLT_HEADER_SIZE, and ptr.
Referenced by sparc64_elf_finish_dynamic_sections().
| static long sparc64_elf_canonicalize_dynamic_reloc | ( | bfd * | abfd, | |
| arelent ** | storage, | |||
| asymbol ** | syms | |||
| ) | [static] |
Definition at line 557 of file elf64-sparc.c.
References bfd_error_invalid_operation, bfd_set_error(), canon_reloc_count, count, elf_dynsymtab, elf_section_data, i, bfd_section::next, NULL, p, bfd_section::relocation, ret, s, SHT_RELA, sparc64_elf_slurp_reloc_table(), and TRUE.
| static long sparc64_elf_canonicalize_reloc | ( | bfd * | abfd, | |
| sec_ptr | section, | |||
| arelent ** | relptr, | |||
| asymbol ** | symbols | |||
| ) | [static] |
Definition at line 524 of file elf64-sparc.c.
References canon_reloc_count, FALSE, get_elf_backend_data, i, NULL, bfd_section::relocation, elf_backend_data::s, and elf_size_info::slurp_reloc_table.
| static bfd_boolean sparc64_elf_check_relocs | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| asection * | sec, | |||
| const Elf_Internal_Rela * | relocs | |||
| ) | [static] |
Definition at line 1154 of file elf64-sparc.c.
References _, bfd_alloc(), BFD_ASSERT, bfd_elf_link_record_dynamic_symbol(), bfd_elf_string_from_elf_section(), bfd_error_bad_value, bfd_get_section_by_name(), bfd_get_section_name, bfd_make_section(), bfd_set_error(), bfd_set_section_alignment, bfd_set_section_flags(), create_got_section(), DF_TEXTREL, elf_link_hash_entry::dynindx, ELF64_R_SYM, ELF64_R_TYPE_ID, elf_elfheader, elf_hash_table, elf_local_got_offsets, elf_section_data, elf_sym_hashes, elf_tdata, FALSE, bfd_link_info::flags, bfd_section::flags, flags, elf_link_hash_entry::got, h, i, elf_link_hash_entry::needs_plt, NULL, NUM_SHDR_ENTRIES, elf_link_hash_entry::gotplt_union::offset, elf_internal_rela::r_info, R_SPARC_13, R_SPARC_16, R_SPARC_22, R_SPARC_32, R_SPARC_8, R_SPARC_DISP16, R_SPARC_DISP32, R_SPARC_DISP8, R_SPARC_GOT10, R_SPARC_GOT13, R_SPARC_GOT22, R_SPARC_HI22, R_SPARC_LO10, R_SPARC_PC10, R_SPARC_PC22, R_SPARC_UA32, R_SPARC_WDISP22, R_SPARC_WDISP30, R_SPARC_WPLT30, rel, bfd_link_info::relocatable, elf_link_hash_entry::root, bfd_link_hash_entry::root, SEC_ALLOC, SEC_HAS_CONTENTS, SEC_IN_MEMORY, SEC_LINKER_CREATED, SEC_LOAD, SEC_READONLY, elf_internal_shdr::sh_info, bfd_link_info::shared, size, bfd_section::size, sparc64_elf_hash_table, strcmp(), bfd_hash_entry::string, strncmp(), and TRUE.
| static bfd_boolean sparc64_elf_create_dynamic_sections | ( | bfd * | dynobj, | |
| struct bfd_link_info * | info | |||
| ) | [static] |
Definition at line 819 of file elf64-sparc.c.
References _bfd_elf_create_dynamic_sections(), create_got_section(), FALSE, sparc64_elf_link_hash_table::sgot, sparc64_elf_hash_table, and TRUE.
Definition at line 3112 of file elf64-sparc.c.
References abfd, bfd_get_section_name, elf_section_data, strcmp(), and TRUE.
| static bfd_boolean sparc64_elf_finish_dynamic_sections | ( | bfd * | output_bfd, | |
| struct bfd_link_info * | info | |||
| ) | [static] |
Definition at line 2906 of file elf64-sparc.c.
References _bfd_elf_link_lookup_local_dynindx(), BFD_ASSERT, bfd_elf64_swap_dyn_in(), bfd_elf64_swap_dyn_out(), bfd_get_section_by_name(), bfd_put_64, bfd_section::contents, elf_internal_dyn::d_ptr, elf_internal_dyn::d_tag, elf_internal_dyn::d_un, elf_internal_dyn::d_val, DT_JMPREL, DT_PLTGOT, DT_PLTRELSZ, DT_SPARC_REGISTER, elf_hash_table, elf_section_data, FALSE, NULL, bfd_section::output_offset, bfd_section::output_section, PLT_ENTRY_SIZE, s, size, bfd_section::size, sparc64_elf_build_plt(), sparc64_elf_hash_table, TRUE, and bfd_section::vma.
| static bfd_boolean sparc64_elf_finish_dynamic_symbol | ( | bfd * | output_bfd, | |
| struct bfd_link_info * | info, | |||
| struct elf_link_hash_entry * | h, | |||
| Elf_Internal_Sym * | sym | |||
| ) | [static] |
Definition at line 2762 of file elf64-sparc.c.
References BFD_ASSERT, bfd_elf64_swap_reloca_out(), bfd_get_section_by_name(), bfd_put_64, bfd_section::contents, bfd_link_hash_entry::def, elf_link_hash_entry::def_regular, elf_link_hash_entry::dynindx, ELF64_R_INFO, elf_hash_table, elf_link_hash_entry::got, LARGE_PLT_THRESHOLD, max, elf_link_hash_entry::needs_copy, NULL, elf_link_hash_entry::gotplt_union::offset, bfd_section::output_offset, bfd_section::output_section, elf_link_hash_entry::plt, PLT_ENTRY_SIZE, elf_internal_rela::r_addend, elf_internal_rela::r_info, elf_internal_rela::r_offset, R_SPARC_COPY, R_SPARC_GLOB_DAT, R_SPARC_JMP_SLOT, R_SPARC_RELATIVE, elf_link_hash_entry::ref_regular_nonweak, bfd_section::reloc_count, elf_link_hash_entry::root, bfd_link_hash_entry::root, s, sec, bfd_link_info::shared, SHN_ABS, SHN_UNDEF, bfd_section::size, sparc64_elf_hash_table, sparc64_elf_plt_entry_offset(), sparc64_elf_plt_ptr_offset(), elf_internal_sym::st_shndx, elf_internal_sym::st_value, strcmp(), bfd_hash_entry::string, bfd_link_info::symbolic, TRUE, bfd_link_hash_entry::u, and bfd_section::vma.
| static int sparc64_elf_get_symbol_type | ( | Elf_Internal_Sym * | elf_sym, | |
| int | type | |||
| ) | [static] |
| static void sparc64_elf_info_to_howto | ( | abfd | , | |
| arelent * | cache_ptr, | |||
| Elf_Internal_Rela * | dst | |||
| ) | [static] |
Definition at line 318 of file elf64-sparc.c.
References BFD_ASSERT, ELF64_R_TYPE_ID, reloc_cache_entry::howto, and elf_internal_rela::r_info.
Definition at line 3025 of file elf64-sparc.c.
References _, bfd_error_bad_value, bfd_get_flavour, bfd_set_error(), bfd_target_elf_flavour, DYNAMIC, EF_SPARC_HAL_R1, EF_SPARC_ISA_EXTENSIONS, EF_SPARC_SUN_US1, EF_SPARC_SUN_US3, EF_SPARCV9_MM, elf_elfheader, elf_flags_init, error(), FALSE, long, and TRUE.
Definition at line 2031 of file elf64-sparc.c.
References _bfd_elf_new_section_hook(), bfd_zalloc(), FALSE, NULL, PTR, and bfd_section::used_by_bfd.
| static bfd_boolean sparc64_elf_object_p | ( | bfd * | abfd | ) | [static] |
Definition at line 3161 of file elf64-sparc.c.
References bfd_arch_sparc, bfd_default_set_arch_mach(), bfd_mach_sparc_v9, bfd_mach_sparc_v9a, bfd_mach_sparc_v9b, EF_SPARC_SUN_US1, EF_SPARC_SUN_US3, elf_elfheader, and mach.
| static bfd_boolean sparc64_elf_omit_section_dynsym | ( | bfd * | output_bfd, | |
| struct bfd_link_info * | info, | |||
| asection * | p | |||
| ) | [static] |
Definition at line 1823 of file elf64-sparc.c.
References _bfd_elf_link_omit_section_dynsym(), FALSE, bfd_section::name, and strcmp().
| static bfd_boolean sparc64_elf_output_arch_syms | ( | output_bfd | , | |
| struct bfd_link_info * | info, | |||
| PTR | finfo, | |||
| bfd_boolean * | func | |||
| ) | [static] |
Definition at line 1559 of file elf64-sparc.c.
References bfd_abs_section_ptr, bfd_get_section_by_name(), bfd_hash_lookup(), bfd_und_section_ptr, bind(), elf_link_local_dynamic_entry::dynindx, elf_hash_table, elf_section_data, ELF_ST_INFO, FALSE, func, elf_link_local_dynamic_entry::input_indx, bfd_link_info::keep_hash, sparc64_elf_app_reg::name, elf_link_local_dynamic_entry::next, NULL, bfd_section::output_section, SHN_ABS, sparc64_elf_app_reg::shndx, sparc64_elf_hash_table, elf_internal_sym::st_info, elf_internal_sym::st_other, elf_internal_sym::st_shndx, elf_internal_sym::st_size, elf_internal_sym::st_value, bfd_link_info::strip, strip_all, strip_some, STT_REGISTER, sym, and TRUE.
Definition at line 1110 of file elf64-sparc.c.
References LARGE_PLT_THRESHOLD, and PLT_ENTRY_SIZE.
Referenced by sparc64_elf_adjust_dynamic_symbol(), sparc64_elf_finish_dynamic_symbol(), and sparc64_elf_relocate_section().
Definition at line 1127 of file elf64-sparc.c.
References BFD_ASSERT, LARGE_PLT_THRESHOLD, last, and PLT_ENTRY_SIZE.
Referenced by sparc64_elf_finish_dynamic_symbol().
| static bfd_vma sparc64_elf_plt_sym_val | ( | bfd_vma | i, | |
| const asection * | plt, | |||
| const arelent *rel | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 3177 of file elf64-sparc.c.
References LARGE_PLT_THRESHOLD, PLT_ENTRY_SIZE, PLT_HEADER_SIZE, and bfd_section::vma.
Definition at line 3133 of file elf64-sparc.c.
References BSF_GLOBAL, BSF_LOCAL, BSF_WEAK, ELF_ST_TYPE, fprintf(), NULL, and STT_REGISTER.
| static enum elf_reloc_type_class sparc64_elf_reloc_type_class | ( | Elf_Internal_Rela * | rela | ) | const [static] |
Definition at line 3003 of file elf64-sparc.c.
References ELF64_R_TYPE, R_SPARC_COPY, R_SPARC_JMP_SLOT, R_SPARC_RELATIVE, reloc_class_copy, reloc_class_normal, reloc_class_plt, and reloc_class_relative.
| static reloc_howto_type* sparc64_elf_reloc_type_lookup | ( | abfd | , | |
| bfd_reloc_code_real_type | code | |||
| ) | [static] |
Definition at line 304 of file elf64-sparc.c.
References elf_reloc_map::bfd_reloc_val, elf_reloc_map::elf_reloc_val, i, and int.
| static bfd_boolean sparc64_elf_relocate_section | ( | bfd * | output_bfd, | |
| struct bfd_link_info * | info, | |||
| bfd * | input_bfd, | |||
| asection * | input_section, | |||
| bfd_byte * | contents, | |||
| Elf_Internal_Rela * | relocs, | |||
| Elf_Internal_Sym * | local_syms, | |||
| asection ** | local_sections | |||
| ) | [static] |
Definition at line 2061 of file elf64-sparc.c.
References _, _bfd_elf_rela_local_sym(), _bfd_elf_section_offset(), _bfd_final_link_relocate(), abort, bfd_arch_bits_per_address(), BFD_ASSERT, bfd_check_overflow(), bfd_elf64_swap_reloca_out(), bfd_elf_string_from_elf_section(), bfd_error_bad_value, BFD_FAIL, bfd_get_32, bfd_get_section_by_name(), bfd_get_section_name, bfd_is_abs_section, bfd_link_hash_undefweak, bfd_put_32, bfd_put_64, bfd_reloc_ok, bfd_reloc_outofrange, bfd_reloc_overflow, bfd_section_name, bfd_set_error(), reloc_howto_struct::bitsize, bfd_link_info::callbacks, reloc_howto_struct::complain_on_overflow, bfd_section::contents, elf_link_hash_entry::def_dynamic, elf_link_hash_entry::def_regular, elf_link_hash_entry::dynindx, ELF64_R_INFO, ELF64_R_SYM, ELF64_R_TYPE_DATA, ELF64_R_TYPE_ID, ELF64_R_TYPE_INFO, elf_elfheader, elf_hash_table, elf_local_got_offsets, elf_section_data, ELF_ST_VISIBILITY, elf_sym_hashes, elf_tdata, F3I, FALSE, bfd_section::flags, elf_link_hash_entry::forced_local, G0, elf_link_hash_entry::got, h, indx, INSN_BA, INSN_BPA, INSN_NOP, INSN_OR, long, memset, MINUS_ONE, reloc_howto_struct::name, NULL, NUM_SHDR_ENTRIES, O7, elf_link_hash_entry::gotplt_union::offset, OP, OP3, elf_link_hash_entry::other, bfd_section::output_offset, bfd_section::output_section, bfd_section::owner, reloc_howto_struct::pc_relative, elf_link_hash_entry::plt, r, elf_internal_rela::r_addend, elf_internal_rela::r_info, elf_internal_rela::r_offset, R_SPARC_13, R_SPARC_16, R_SPARC_22, R_SPARC_32, R_SPARC_8, R_SPARC_DISP16, R_SPARC_DISP32, R_SPARC_DISP8, R_SPARC_GOT10, R_SPARC_GOT13, R_SPARC_GOT22, R_SPARC_HI22, R_SPARC_LO10, R_SPARC_PC10, R_SPARC_PC22, R_SPARC_RELATIVE, R_SPARC_UA32, R_SPARC_WDISP22, R_SPARC_WDISP30, R_SPARC_WPLT30, RD, rel, bfd_section::reloc_count, RELOC_FOR_GLOBAL_SYMBOL, bfd_link_callbacks::reloc_overflow, bfd_link_info::relocatable, reloc_howto_struct::rightshift, elf_link_hash_entry::root, bfd_link_hash_entry::root, RS1, RS2, s, sec, SEC_ALLOC, SEC_DEBUGGING, sec_do_relax, elf_internal_shdr::sh_link, bfd_link_info::shared, bfd_section::size, skip, sparc64_elf_hash_table, sparc64_elf_plt_entry_offset(), elf_internal_sym::st_name, strcmp(), bfd_hash_entry::string, strncmp(), STV_DEFAULT, sym, bfd_link_info::symbolic, TRUE, bfd_link_hash_entry::type, bfd_section::vma, WILL_CALL_FINISH_DYNAMIC_SYMBOL, x, is::y, and is::z.
| static bfd_boolean sparc64_elf_size_dynamic_sections | ( | bfd * | output_bfd, | |
| struct bfd_link_info * | info | |||
| ) | [static] |
Definition at line 1839 of file elf64-sparc.c.
References _bfd_elf_strtab_add(), _bfd_strip_section_from_output(), add_dynamic_entry, BFD_ASSERT, bfd_get_section_by_name(), bfd_get_section_name, bfd_hash_allocate(), bfd_zalloc(), bind(), bfd_section::contents, DF_TEXTREL, DT_DEBUG, DT_JMPREL, DT_PLTGOT, DT_PLTREL, DT_PLTRELSZ, DT_RELA, DT_RELAENT, DT_RELASZ, DT_SPARC_REGISTER, DT_TEXTREL, elf_link_hash_table::dynlocal, elf_link_hash_table::dynstr, elf_link_hash_table::dynsymcount, ELF_DYNAMIC_INTERPRETER, elf_hash_table, ELF_ST_INFO, bfd_link_info::executable, FALSE, bfd_link_info::flags, bfd_section::flags, bfd_link_info::hash, elf_link_local_dynamic_entry::input_bfd, elf_link_local_dynamic_entry::input_indx, elf_link_local_dynamic_entry::isym, bfd_section::next, elf_link_local_dynamic_entry::next, NULL, bfd_section::reloc_count, s, SEC_LINKER_CREATED, bfd::sections, sparc64_elf_app_reg::shndx, bfd_section::size, sparc64_elf_hash_table, elf_internal_sym::st_info, elf_internal_sym::st_name, elf_internal_sym::st_other, elf_internal_sym::st_shndx, elf_internal_sym::st_size, elf_internal_sym::st_value, strcmp(), strncmp(), STT_REGISTER, bfd_link_hash_table::table, and TRUE.
| static bfd_boolean sparc64_elf_slurp_one_reloc_table | ( | bfd * | abfd, | |
| asection * | asect, | |||
| Elf_Internal_Shdr * | rel_hdr, | |||
| asymbol ** | symbols, | |||
| bfd_boolean | dynamic | |||
| ) | [static] |
Definition at line 363 of file elf64-sparc.c.
References bfd_abs_section_ptr, BFD_ASSERT, bfd_bread(), bfd_elf64_swap_reloca_in(), bfd_malloc(), bfd_seek(), BSF_SECTION_SYM, canon_reloc_count, count, DYNAMIC, ELF64_R_SYM, ELF64_R_TYPE_DATA, ELF64_R_TYPE_ID, EXEC_P, FALSE, bfd_symbol::flags, free(), i, NULL, PTR, elf_internal_rela::r_addend, elf_internal_rela::r_info, elf_internal_rela::r_offset, R_SPARC_13, R_SPARC_LO10, bfd_section::relocation, s, bfd_symbol::section, SEEK_SET, elf_internal_shdr::sh_entsize, elf_internal_shdr::sh_offset, elf_internal_shdr::sh_size, bfd_section::symbol_ptr_ptr, TRUE, and bfd_section::vma.
Referenced by sparc64_elf_slurp_reloc_table().
| static bfd_boolean sparc64_elf_slurp_reloc_table | ( | bfd * | abfd, | |
| asection * | asect, | |||
| asymbol ** | symbols, | |||
| bfd_boolean | dynamic | |||
| ) | [static] |
Definition at line 459 of file elf64-sparc.c.
References bfd_alloc(), BFD_ASSERT, canon_reloc_count, d, elf_section_data, FALSE, bfd_section::flags, NULL, NUM_SHDR_ENTRIES, bfd_section::rel_filepos, bfd_elf_section_data::rel_hdr, bfd_elf_section_data::rel_hdr2, bfd_section::reloc_count, bfd_section::relocation, SEC_RELOC, elf_internal_shdr::sh_offset, bfd_section::size, sparc64_elf_slurp_one_reloc_table(), bfd_elf_section_data::this_hdr, and TRUE.
Referenced by sparc64_elf_canonicalize_dynamic_reloc().
Definition at line 1634 of file elf64-sparc.c.
References BSF_GLOBAL, ELF_ST_INFO, bfd_symbol::flags, elf_symbol_type::internal_elf_sym, elf_internal_sym::st_info, STB_GLOBAL, and STT_REGISTER.
Definition at line 598 of file elf64-sparc.c.
References _bfd_elf_symbol_from_bfd_symbol(), _bfd_elf_validate_reloc(), abort, reloc_cache_entry::addend, addr(), reloc_cache_entry::address, bfd_alloc(), bfd_elf64_swap_reloca_out(), bfd_is_abs_section, elf_internal_shdr::contents, count, DYNAMIC, ELF64_R_INFO, ELF64_R_TYPE_INFO, elf_section_data, EXEC_P, bfd_section::flags, for(), reloc_cache_entry::howto, idx, if(), n, NULL, bfd_section::orelocation, PTR, ptr, r, elf_internal_rela::r_addend, elf_internal_rela::r_info, elf_internal_rela::r_offset, R_SPARC_13, R_SPARC_LO10, bfd_section::reloc_count, SEC_RELOC, bfd_symbol::section, elf_internal_shdr::sh_entsize, elf_internal_shdr::sh_size, elf_internal_shdr::sh_type, SHT_RELA, STN_UNDEF, sym, reloc_cache_entry::sym_ptr_ptr, TRUE, reloc_howto_struct::type, bfd_symbol::value, and bfd_section::vma.
| static bfd_reloc_status_type sparc_elf_hix22_reloc | ( | bfd * | abfd, | |
| arelent * | reloc_entry, | |||
| asymbol * | symbol, | |||
| PTR | data, | |||
| asection * | input_section, | |||
| bfd * | output_bfd, | |||
| error_message | ||||
| ) | [static] |
Definition at line 953 of file elf64-sparc.c.
References reloc_cache_entry::address, bfd_put_32, bfd_reloc_ok, bfd_reloc_other, bfd_reloc_overflow, init_insn_reloc(), insn, and MINUS_ONE.
| static bfd_reloc_status_type sparc_elf_lox10_reloc | ( | bfd * | abfd, | |
| arelent * | reloc_entry, | |||
| asymbol * | symbol, | |||
| PTR | data, | |||
| asection * | input_section, | |||
| bfd * | output_bfd, | |||
| error_message | ||||
| ) | [static] |
Definition at line 990 of file elf64-sparc.c.
References reloc_cache_entry::address, bfd_put_32, bfd_reloc_ok, bfd_reloc_other, init_insn_reloc(), and insn.
| static bfd_reloc_status_type sparc_elf_notsup_reloc | ( | abfd | , | |
| reloc_entry | , | |||
| symbol | , | |||
| data | , | |||
| input_section | , | |||
| output_bfd | , | |||
| error_message | ||||
| ) | [static] |
| static bfd_reloc_status_type sparc_elf_wdisp16_reloc | ( | bfd * | abfd, | |
| arelent * | reloc_entry, | |||
| asymbol * | symbol, | |||
| PTR | data, | |||
| asection * | input_section, | |||
| bfd * | output_bfd, | |||
| error_message | ||||
| ) | [static] |
Definition at line 920 of file elf64-sparc.c.
References reloc_cache_entry::address, bfd_put_32, bfd_reloc_ok, bfd_reloc_other, bfd_reloc_overflow, init_insn_reloc(), and insn.
reloc_howto_type sparc64_elf_howto_table[] [static] |
Definition at line 129 of file elf64-sparc.c.
Definition at line 3196 of file elf64-sparc.c.
struct elf_reloc_map sparc_reloc_map[] [static] |
Definition at line 221 of file elf64-sparc.c.
1.5.6