37 #define NUM_SHDR_ENTRIES(shdr) ((shdr)->sh_size / (shdr)->sh_entsize)
42 #define NAME(x, y) x##64##_##y
45 #define NAME(x, y) x##32##_##y
50 #define NAME(x, y) x##NOSIZE##_##y
53 #define ElfNAME(X) NAME(Elf, X)
54 #define elfNAME(X) NAME(elf, X)
81 struct elf_strtab_hash;
125 union gotplt_union
plt;
222 #define SYMBOL_REFERENCES_LOCAL(INFO, H) \
223 _bfd_elf_symbol_refs_local_p(H, INFO, 0)
226 #define SYMBOL_CALLS_LOCAL(INFO, H) \
227 _bfd_elf_symbol_refs_local_p(H, INFO, 1)
231 #define ELF_COMMON_DEF_P(H) \
232 (!(H)->def_regular && !(H)->def_dynamic && (H)->root.type == bfd_link_hash_defined)
386 #define elf_link_hash_lookup(table, string, create, copy, follow) \
387 ((struct elf_link_hash_entry *) \
388 bfd_link_hash_lookup(&(table)->root, (string), (create), \
393 #define elf_link_hash_traverse(table, func, info) \
394 (bfd_link_hash_traverse(&(table)->root, \
395 (bfd_boolean(*)(struct bfd_link_hash_entry *, void *))(func), \
400 #define elf_hash_table(p) ((struct elf_link_hash_table *)((p)->hash))
403 #define is_elf_hash_table(htab) \
404 (((struct bfd_link_hash_table *)(htab))->type == bfd_link_elf_hash_table)
408 #define LOCAL_SYM_CACHE_SIZE 32
429 #define MAX_INT_RELS_PER_EXT_REL 3
461 #define elf_symbol_from(ABFD, S) \
462 (((S)->the_bfd->xvec->flavour == bfd_target_elf_flavour && (S)->the_bfd->tdata.elf_obj_data != 0) \
463 ? (elf_symbol_type *)(S) \
809 const char *(*elf_backend_print_symbol_all)(
bfd *,
void *,
asymbol *);
868 char *(*elf_backend_write_core_note)(
bfd *abfd,
char *
buf,
int *bufsiz,
int note_type, ...);
1131 #define elf_section_data(sec) ((struct bfd_elf_section_data *)(sec)->used_by_bfd)
1132 #define elf_linked_to_section(sec) (elf_section_data(sec)->linked_to)
1133 #define elf_section_type(sec) (elf_section_data(sec)->this_hdr.sh_type)
1134 #define elf_section_flags(sec) (elf_section_data(sec)->this_hdr.sh_flags)
1135 #define elf_group_name(sec) (elf_section_data(sec)->group.name)
1136 #define elf_group_id(sec) (elf_section_data(sec)->group.id)
1137 #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group)
1138 #define elf_sec_group(sec) (elf_section_data(sec)->sec_group)
1140 #define xvec_get_elf_backend_data(xvec) \
1141 ((const struct elf_backend_data *)(xvec)->backend_data)
1143 #define get_elf_backend_data(abfd) \
1144 xvec_get_elf_backend_data((abfd)->xvec)
1184 #define NUM_KNOWN_OBJ_ATTRIBUTES 32
1205 #define OBJ_ATTR_PROC 0
1206 #define OBJ_ATTR_GNU 1
1207 #define OBJ_ATTR_FIRST OBJ_ATTR_PROC
1208 #define OBJ_ATTR_LAST OBJ_ATTR_GNU
1368 #define elf_tdata(bfd) ((bfd)->tdata.elf_obj_data)
1369 #define elf_elfheader(bfd) (elf_tdata(bfd)->elf_header)
1370 #define elf_elfsections(bfd) (elf_tdata(bfd)->elf_sect_ptr)
1371 #define elf_numsections(bfd) (elf_tdata(bfd)->num_elf_sections)
1372 #define elf_shstrtab(bfd) (elf_tdata(bfd)->strtab_ptr)
1373 #define elf_onesymtab(bfd) (elf_tdata(bfd)->symtab_section)
1374 #define elf_symtab_shndx(bfd) (elf_tdata(bfd)->symtab_shndx_section)
1375 #define elf_dynsymtab(bfd) (elf_tdata(bfd)->dynsymtab_section)
1376 #define elf_dynversym(bfd) (elf_tdata(bfd)->dynversym_section)
1377 #define elf_dynverdef(bfd) (elf_tdata(bfd)->dynverdef_section)
1378 #define elf_dynverref(bfd) (elf_tdata(bfd)->dynverref_section)
1379 #define elf_num_locals(bfd) (elf_tdata(bfd)->num_locals)
1380 #define elf_num_globals(bfd) (elf_tdata(bfd)->num_globals)
1381 #define elf_section_syms(bfd) (elf_tdata(bfd)->section_syms)
1382 #define elf_num_section_syms(bfd) (elf_tdata(bfd)->num_section_syms)
1383 #define core_prpsinfo(bfd) (elf_tdata(bfd)->prpsinfo)
1384 #define core_prstatus(bfd) (elf_tdata(bfd)->prstatus)
1385 #define elf_gp(bfd) (elf_tdata(bfd)->gp)
1386 #define elf_gp_size(bfd) (elf_tdata(bfd)->gp_size)
1387 #define elf_sym_hashes(bfd) (elf_tdata(bfd)->sym_hashes)
1388 #define elf_local_got_refcounts(bfd) (elf_tdata(bfd)->local_got.refcounts)
1389 #define elf_local_got_offsets(bfd) (elf_tdata(bfd)->local_got.offsets)
1390 #define elf_local_got_ents(bfd) (elf_tdata(bfd)->local_got.ents)
1391 #define elf_dt_name(bfd) (elf_tdata(bfd)->dt_name)
1392 #define elf_dyn_lib_class(bfd) (elf_tdata(bfd)->dyn_lib_class)
1393 #define elf_bad_symtab(bfd) (elf_tdata(bfd)->bad_symtab)
1394 #define elf_flags_init(bfd) (elf_tdata(bfd)->flags_init)
1395 #define elf_known_obj_attributes(bfd) (elf_tdata(bfd)->known_obj_attributes)
1396 #define elf_other_obj_attributes(bfd) (elf_tdata(bfd)->other_obj_attributes)
1397 #define elf_known_obj_attributes_proc(bfd) \
1398 (elf_known_obj_attributes(bfd)[OBJ_ATTR_PROC])
1399 #define elf_other_obj_attributes_proc(bfd) \
1400 (elf_other_obj_attributes(bfd)[OBJ_ATTR_PROC])
1465 #define _bfd_generic_init_private_section_data \
1466 _bfd_elf_init_private_section_data
1489 #define _bfd_generic_find_line _bfd_elf_find_line
1491 #define _bfd_elf_read_minisymbols _bfd_generic_read_minisymbols
1492 #define _bfd_elf_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
1716 #define bfd_elf_add_proc_attr_int(BFD, TAG, VALUE) \
1717 bfd_elf_add_obj_attr_int((BFD), OBJ_ATTR_PROC, (TAG), (VALUE))
1719 #define bfd_elf_add_proc_attr_string(BFD, TAG, VALUE) \
1720 bfd_elf_add_obj_attr_string((BFD), OBJ_ATTR_PROC, (TAG), (VALUE))
1723 #define bfd_elf_add_proc_attr_compat(BFD, INTVAL, STRVAL) \
1724 bfd_elf_add_obj_attr_compat((BFD), OBJ_ATTR_PROC, (INTVAL), (STRVAL))
1742 #define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
1743 ((DYN) && ((SHARED) || !(H)->forced_local) && ((H)->dynindx != -1 || (H)->forced_local))
1747 #define RELOC_FOR_GLOBAL_SYMBOL(info, input_bfd, input_section, rel, \
1748 rz_symndx, symtab_hdr, sym_hashes, \
1749 h, sec, relocation, \
1750 unresolved_reloc, warned) \
1757 h = sym_hashes[rz_symndx - symtab_hdr->sh_info]; \
1759 while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) \
1760 h = (struct elf_link_hash_entry *)h->root.u.i.link; \
1763 unresolved_reloc = FALSE; \
1765 if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { \
1766 sec = h->root.u.def.section; \
1767 if (!sec || !sec->output_section) \
1772 unresolved_reloc = TRUE; \
1774 relocation = (h->root.u.def.value + sec->output_section->vma + sec->output_offset); \
1775 } else if (h->root.type == bfd_link_hash_undefweak) \
1777 else if (info->unresolved_syms_in_objects == RM_IGNORE && ELF_ST_VISIBILITY(h->other) == STV_DEFAULT) \
1779 else if (!info->relocatable) { \
1781 err = (info->unresolved_syms_in_objects == RM_GENERATE_ERROR || ELF_ST_VISIBILITY(h->other) != STV_DEFAULT); \
1782 if (!info->callbacks->undefined_symbol(info, \
1783 h->root.root.string, \
1786 rel->rz_offset, err)) \
1794 #define SYMBOLIC_BIND(INFO, H) \
1795 ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic))
RzBinInfo * info(RzBinFile *bf)
RzList * relocs(RzBinFile *bf)
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags long
bfd_boolean _bfd_elf_setup_sections(bfd *)
void bfd_elf32_swap_dyn_in(bfd *, const void *, Elf_Internal_Dyn *)
bfd_boolean bfd_elf_link_record_dynamic_symbol(struct bfd_link_info *, struct elf_link_hash_entry *)
bfd_boolean bfd_elf_match_symbols_in_sections(asection *, asection *, struct bfd_link_info *)
long _bfd_elf_canonicalize_dynamic_reloc(bfd *, arelent **, asymbol **)
asection _bfd_elf_large_com_section
void bfd_elf64_write_relocs(bfd *, asection *, void *)
bfd_reloc_status_type bfd_elf_generic_reloc(bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **)
unsigned long bfd_elf_hash(const char *)
void bfd_elf_perform_complex_relocation(bfd *output_bfd ATTRIBUTE_UNUSED, struct bfd_link_info *info, bfd *input_bfd, asection *input_section, bfd_byte *contents, Elf_Internal_Rela *rel, Elf_Internal_Sym *local_syms, asection **local_sections)
bfd_vma bfd_elf_obj_attr_size(bfd *)
bfd_boolean _bfd_elf_create_got_section(bfd *, struct bfd_link_info *)
bfd_boolean bfd_elf_gc_record_vtinherit(bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)
bfd_boolean _bfd_elf_print_private_bfd_data(bfd *, void *)
asection * bfd_section_from_r_symndx(bfd *, struct sym_sec_cache *, asection *, unsigned long)
long _bfd_elf_canonicalize_reloc(bfd *, sec_ptr, arelent **, asymbol **)
bfd_boolean _bfd_elf_discard_section_eh_frame(bfd *, struct bfd_link_info *, asection *, bfd_boolean(*)(bfd_vma, void *), struct elf_reloc_cookie *)
Elf_Internal_Sym * bfd_elf_get_elf_syms(bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *, Elf_External_Sym_Shndx *)
bfd_boolean _bfd_elf_close_and_cleanup(bfd *)
void bfd_elf64_swap_dyn_out(bfd *, const Elf_Internal_Dyn *, void *)
Elf_Internal_Shdr * bfd_elf_find_section(bfd *, char *)
bfd_size_type _bfd_elf_strtab_size(struct elf_strtab_hash *)
char * elfcore_write_prfpreg(bfd *, char *, int *, const void *, int)
void _bfd_elf_assign_file_positions_for_relocs(bfd *)
bfd_boolean _bfd_elf_make_section_from_shdr(bfd *, Elf_Internal_Shdr *, const char *, int)
bfd_boolean _sh_elf_set_mach_from_flags(bfd *)
void bfd_elf_add_obj_attr_compat(bfd *, int, unsigned int, const char *)
const struct bfd_elf_special_section * _bfd_elf_get_special_section(const char *, const struct bfd_elf_special_section *, unsigned int)
void bfd_elf_print_symbol(bfd *, void *, asymbol *, bfd_print_symbol_type)
bfd_boolean _bfd_elf_write_section_eh_frame(bfd *, struct bfd_link_info *, asection *, bfd_byte *)
bfd_size_type _bfd_elf_strtab_add(struct elf_strtab_hash *, const char *, bfd_boolean)
Elf_Internal_Rela * _bfd_elf_link_read_relocs(bfd *, asection *, void *, Elf_Internal_Rela *, bfd_boolean)
bfd_boolean _bfd_elf_merge_symbol(bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection **, bfd_vma *, unsigned int *, struct elf_link_hash_entry **, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *)
char * bfd_elf_get_str_section(bfd *, unsigned)
bfd_boolean _bfd_elf_validate_reloc(bfd *, arelent *)
bfd_boolean _bfd_elf_init_reloc_shdr(bfd *, Elf_Internal_Shdr *, asection *, bfd_boolean)
bfd_boolean _bfd_elf_set_arch_mach(bfd *, enum bfd_architecture, unsigned long)
char * bfd_elf64_core_file_failing_command(bfd *)
int bfd_elf32_core_file_failing_signal(bfd *)
void _bfd_elf_swap_verdef_in(bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *)
void _bfd_elf_set_osabi(bfd *, struct bfd_link_info *)
bfd_boolean bfd_elf_mkobject(bfd *)
void bfd_elf32_swap_phdr_in(bfd *, const Elf32_External_Phdr *, Elf_Internal_Phdr *)
void _bfd_elf_swap_verdaux_out(bfd *, const Elf_Internal_Verdaux *, Elf_External_Verdaux *)
char * elfcore_write_lwpstatus(bfd *, char *, int *, long, int, const void *)
void _bfd_elf_link_just_syms(asection *, struct bfd_link_info *)
bfd_boolean bfd_elf64_slurp_reloc_table(bfd *, asection *, asymbol **, bfd_boolean)
const struct bfd_elf_special_section * _bfd_elf_get_sec_type_attr(bfd *, asection *)
bfd_boolean _bfd_elf_match_sections_by_type(bfd *, const asection *, bfd *, const asection *)
void bfd_elf32_write_relocs(bfd *, asection *, void *)
bfd_boolean bfd_elf64_swap_symbol_in(bfd *, const void *, const void *, Elf_Internal_Sym *)
bfd_boolean _bfd_elf_find_inliner_info(bfd *, const char **, const char **, unsigned int *)
bfd_boolean _bfd_elf_write_section_eh_frame_hdr(bfd *, struct bfd_link_info *)
bfd_boolean bfd_elf32_swap_symbol_in(bfd *, const void *, const void *, Elf_Internal_Sym *)
asymbol * _bfd_elf_make_empty_symbol(bfd *)
void _bfd_elf_no_info_to_howto(bfd *, arelent *, Elf_Internal_Rela *)
void bfd_elf64_swap_symbol_out(bfd *, const Elf_Internal_Sym *, void *, void *)
void _bfd_elf_parse_attributes(bfd *, Elf_Internal_Shdr *)
long bfd_elf64_slurp_symbol_table(bfd *, asymbol **, bfd_boolean)
void _bfd_elf_strtab_delref(struct elf_strtab_hash *, bfd_size_type)
bfd_boolean _bfd_elf_export_symbol(struct elf_link_hash_entry *, void *)
void bfd_elf64_swap_reloc_in(bfd *, const bfd_byte *, Elf_Internal_Rela *)
asection * _bfd_elf_check_kept_section(asection *, struct bfd_link_info *)
void _bfd_elf_link_hash_hide_symbol(struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)
void _bfd_elf_section_already_linked(bfd *, struct bfd_section *, struct bfd_link_info *)
void bfd_elf_add_obj_attr_string(bfd *, int, int, const char *)
long _bfd_elf_get_synthetic_symtab(bfd *, long, asymbol **, long, asymbol **, asymbol **)
void _bfd_elf_fprintf_vma(bfd *, void *, bfd_vma)
bfd_boolean bfd_elf_gc_sections(bfd *, struct bfd_link_info *)
int bfd_elf64_write_out_phdrs(bfd *, const Elf_Internal_Phdr *, unsigned int)
bfd_boolean _bfd_elf_new_section_hook(bfd *, asection *)
bfd_boolean bfd_elf64_write_shdrs_and_ehdr(bfd *)
void _bfd_elf_strtab_addref(struct elf_strtab_hash *, bfd_size_type)
void bfd_elf64_swap_phdr_out(bfd *, const Elf_Internal_Phdr *, Elf64_External_Phdr *)
long _bfd_elf_get_reloc_upper_bound(bfd *, sec_ptr)
void bfd_elf64_swap_reloc_out(bfd *, const Elf_Internal_Rela *, bfd_byte *)
bfd_boolean _bfd_elf_link_assign_sym_version(struct elf_link_hash_entry *, void *)
bfd_boolean _bfd_elf_copy_private_symbol_data(bfd *, asymbol *, bfd *, asymbol *)
struct bfd_link_hash_table * _bfd_elf_link_hash_table_create(bfd *)
bfd_vma _bfd_elf_eh_frame_section_offset(bfd *, struct bfd_link_info *, asection *, bfd_vma)
void bfd_elf64_swap_phdr_in(bfd *, const Elf64_External_Phdr *, Elf_Internal_Phdr *)
bfd_boolean bfd_section_from_shdr(bfd *, unsigned int shindex)
struct bfd_strtab_hash * _bfd_elf_stringtab_init(void)
bfd_boolean _bfd_elf_init_private_section_data(bfd *, asection *, bfd *, asection *, struct bfd_link_info *)
bfd_boolean bfd_elf_is_group_section(bfd *, const struct bfd_section *)
bfd_boolean _bfd_elf_discard_section_eh_frame_hdr(bfd *, struct bfd_link_info *)
struct elf_strtab_hash * _bfd_elf_strtab_init(void)
void bfd_elf32_swap_dyn_out(bfd *, const Elf_Internal_Dyn *, void *)
void _bfd_elf_swap_versym_out(bfd *, const Elf_Internal_Versym *, Elf_External_Versym *)
struct obj_attribute obj_attribute
bfd_boolean _bfd_elf_write_object_contents(bfd *)
int bfd_elf_link_record_local_dynamic_symbol(struct bfd_link_info *, bfd *, long)
bfd_boolean bfd_elf_gc_record_vtentry(bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)
bfd_vma _bfd_elf_rela_local_sym(bfd *, Elf_Internal_Sym *, asection **, Elf_Internal_Rela *)
bfd_boolean _bfd_elf_compute_section_file_positions(bfd *, struct bfd_link_info *)
bfd_boolean _bfd_elf_add_default_symbol(bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, const char *, Elf_Internal_Sym *, asection **, bfd_vma *, bfd_boolean *, bfd_boolean)
struct elf_link_hash_entry * _bfd_elf_define_linkage_sym(bfd *, struct bfd_link_info *, asection *, const char *)
void bfd_elf32_swap_reloc_in(bfd *, const bfd_byte *, Elf_Internal_Rela *)
bfd_boolean _bfd_elfcore_make_pseudosection(bfd *, char *, size_t, ufile_ptr)
void bfd_elf32_swap_reloca_out(bfd *, const Elf_Internal_Rela *, bfd_byte *)
long _bfd_elf_get_dynamic_reloc_upper_bound(bfd *)
void _bfd_elf_strtab_free(struct elf_strtab_hash *)
void _bfd_elf_swap_versym_in(bfd *, const Elf_External_Versym *, Elf_Internal_Versym *)
bfd_boolean _bfd_elf_make_section_from_phdr(bfd *, Elf_Internal_Phdr *, int, const char *)
bfd_boolean _bfd_elf_link_hash_table_init(struct elf_link_hash_table *, bfd *, struct bfd_hash_entry *(*)(struct bfd_hash_entry *, struct bfd_hash_table *, const char *), unsigned int)
unsigned long bfd_elf_gnu_hash(const char *)
void _bfd_elf_link_hash_copy_indirect(struct bfd_link_info *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)
bfd_boolean _bfd_elf_link_hash_fixup_symbol(struct bfd_link_info *, struct elf_link_hash_entry *)
long _bfd_elf_canonicalize_symtab(bfd *, asymbol **)
bfd_boolean _bfd_elf_add_dynamic_entry(struct bfd_link_info *, bfd_vma, bfd_vma)
bfd_boolean _bfd_elf_find_nearest_line(bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)
int bfd_elf32_write_out_phdrs(bfd *, const Elf_Internal_Phdr *, unsigned int)
void bfd_elf64_swap_dyn_in(bfd *, const void *, Elf_Internal_Dyn *)
bfd_boolean bfd_elf32_write_shdrs_and_ehdr(bfd *)
void bfd_elf_link_mark_dynamic_symbol(struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)
bfd_boolean _bfd_elf_adjust_dynamic_copy(struct elf_link_hash_entry *, asection *)
bfd_boolean bfd_section_from_phdr(bfd *, Elf_Internal_Phdr *, int)
bfd_boolean _bfd_elf_link_find_version_dependencies(struct elf_link_hash_entry *, void *)
bfd_boolean _bfd_elf_find_line(bfd *, asymbol **, asymbol *, const char **, unsigned int *)
bfd_boolean _bfd_elf_is_function_type(unsigned int)
bfd * _bfd_elf32_bfd_from_remote_memory(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, int(*target_read_memory)(bfd_vma, bfd_byte *, int))
bfd_boolean _bfd_elf_link_sec_merge_syms(struct elf_link_hash_entry *, void *)
bfd_boolean bfd_elf32_core_file_matches_executable_p(bfd *, bfd *)
bfd_boolean bfd_elf_final_link(bfd *, struct bfd_link_info *)
bfd_boolean bfd_elf_gc_common_finalize_got_offsets(bfd *, struct bfd_link_info *)
long _bfd_elf_get_dynamic_symtab_upper_bound(bfd *)
char * elfcore_write_note(bfd *, char *, int *, const char *, int, const void *, int)
bfd_boolean _bfd_elf_copy_private_section_data(bfd *, asection *, bfd *, asection *)
bfd_boolean _bfd_elf_dynamic_symbol_p(struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean)
bfd_boolean bfd_elf_mkcorefile(bfd *)
struct elf_link_hash_entry * _bfd_elf_archive_symbol_lookup(bfd *, struct bfd_link_info *, const char *)
bfd_boolean bfd_elf_link_add_symbols(bfd *, struct bfd_link_info *)
char * _bfd_elfcore_strndup(bfd *, char *, size_t)
int _bfd_elf_sizeof_headers(bfd *, struct bfd_link_info *)
alent * _bfd_elf_get_lineno(bfd *, asymbol *)
void bfd_elf64_swap_reloca_in(bfd *, const bfd_byte *, Elf_Internal_Rela *)
#define LOCAL_SYM_CACHE_SIZE
unsigned int _bfd_elf_eh_frame_address_size(bfd *, asection *)
struct obj_attribute_list obj_attribute_list
bfd_boolean _bfd_elf_gc_mark(struct bfd_link_info *, asection *, asection *(*)(asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *))
bfd_boolean _bfd_elf_copy_private_bfd_data(bfd *, bfd *)
bfd_boolean bfd_elf64_core_file_matches_executable_p(bfd *, bfd *)
void _bfd_elf_swap_verdaux_in(bfd *, const Elf_External_Verdaux *, Elf_Internal_Verdaux *)
void bfd_elf32_swap_symbol_out(bfd *, const Elf_Internal_Sym *, void *, void *)
bfd_boolean _bfd_elf_is_local_label_name(bfd *, const char *)
int _bfd_elf_symbol_from_bfd_symbol(bfd *, asymbol **)
bfd_boolean _bfd_elf_slurp_version_tables(bfd *, bfd_boolean)
bfd_vma _bfd_elf_section_offset(bfd *, struct bfd_link_info *, asection *, bfd_vma)
enum elf_reloc_type_class _bfd_elf_reloc_type_class(const Elf_Internal_Rela *)
bfd_reloc_status_type _bfd_elf_rel_vtable_reloc_fn(bfd *, arelent *, struct bfd_symbol *, void *, asection *, bfd *, char **)
void _bfd_elf_swap_verneed_out(bfd *, const Elf_Internal_Verneed *, Elf_External_Verneed *)
bfd_boolean _bfd_elf_strtab_emit(bfd *, struct elf_strtab_hash *)
char * elfcore_write_pstatus(bfd *, char *, int *, long, int, const void *)
char * bfd_elf_string_from_elf_section(bfd *, unsigned, unsigned)
bfd_vma _bfd_elf_rel_local_sym(bfd *, Elf_Internal_Sym *, asection **, bfd_vma)
const bfd_target * bfd_elf64_core_file_p(bfd *)
const bfd_target * bfd_elf64_object_p(bfd *)
void _bfd_elf_get_symbol_info(bfd *, asymbol *, symbol_info *)
bfd_boolean _bfd_elf_create_dynamic_sections(bfd *, struct bfd_link_info *)
bfd_boolean bfd_elf64_checksum_contents(bfd *, void(*)(const void *, size_t, void *), void *)
long _bfd_elf_link_lookup_local_dynindx(struct bfd_link_info *, bfd *, long)
void _bfd_elf_swap_verdef_out(bfd *, const Elf_Internal_Verdef *, Elf_External_Verdef *)
void _bfd_elf_copy_obj_attributes(bfd *, bfd *)
char * elfcore_write_prpsinfo(bfd *, char *, int *, const char *, const char *)
char * bfd_elf32_core_file_failing_command(bfd *)
struct elf_segment_map * _bfd_elf_make_dynamic_segment(bfd *, asection *)
long _bfd_elf_get_symtab_upper_bound(bfd *)
long _bfd_elf_canonicalize_dynamic_symtab(bfd *, asymbol **)
bfd_size_type _bfd_elf_strtab_offset(struct elf_strtab_hash *, bfd_size_type)
bfd * _bfd_elf64_bfd_from_remote_memory(bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, int(*target_read_memory)(bfd_vma, bfd_byte *, int))
bfd_boolean bfd_elf32_slurp_reloc_table(bfd *, asection *, asymbol **, bfd_boolean)
void _bfd_elf_swap_vernaux_out(bfd *, const Elf_Internal_Vernaux *, Elf_External_Vernaux *)
bfd_boolean _bfd_elf_set_section_contents(bfd *, sec_ptr, const void *, file_ptr, bfd_size_type)
asection *(* elf_gc_mark_hook_fn)(asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)
bfd_boolean bfd_elf_gc_mark_dynamic_ref_symbol(struct elf_link_hash_entry *h, void *inf)
long bfd_elf32_slurp_symbol_table(bfd *, asymbol **, bfd_boolean)
bfd_boolean _bfd_elf_write_corefile_contents(bfd *)
char * elfcore_write_prxfpreg(bfd *, char *, int *, const void *, int)
bfd_boolean bfd_elf_gc_common_final_link(bfd *, struct bfd_link_info *)
void _bfd_elf_sprintf_vma(bfd *, char *, bfd_vma)
bfd_boolean _bfd_elf_symbol_refs_local_p(struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean)
int bfd_elf64_core_file_failing_signal(bfd *)
file_ptr _bfd_elf_assign_file_position_for_section(Elf_Internal_Shdr *, file_ptr, bfd_boolean)
void _bfd_elf_init_2_index_sections(bfd *, struct bfd_link_info *)
void bfd_elf32_swap_phdr_out(bfd *, const Elf_Internal_Phdr *, Elf32_External_Phdr *)
bfd_boolean _bfd_elf_map_sections_to_segments(bfd *, struct bfd_link_info *)
struct bfd_hash_entry * _bfd_elf_link_hash_newfunc(struct bfd_hash_entry *, struct bfd_hash_table *, const char *)
const char * bfd_elf_sym_name(bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *)
bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr(struct bfd_link_info *)
void _bfd_elf_strtab_finalize(struct elf_strtab_hash *)
bfd_boolean _bfd_elf_fix_symbol_flags(struct elf_link_hash_entry *, struct elf_info_failed *)
void bfd_elf64_swap_reloca_out(bfd *, const Elf_Internal_Rela *, bfd_byte *)
void bfd_elf32_swap_reloca_in(bfd *, const bfd_byte *, Elf_Internal_Rela *)
int _bfd_elf_obj_attrs_arg_type(bfd *, int, int)
asection * _bfd_elf_gc_mark_hook(asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)
asection * _bfd_elf_common_section(asection *)
char * elfcore_write_prstatus(bfd *, char *, int *, long, int, const void *)
char * _bfd_elf_attr_strdup(bfd *, const char *)
bfd_boolean _bfd_elf_copy_private_header_data(bfd *, bfd *)
void bfd_elf_set_group_contents(bfd *, asection *, void *)
bfd_byte _bfd_elf_encode_eh_address(bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset, asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded)
void bfd_elf32_swap_reloc_out(bfd *, const Elf_Internal_Rela *, bfd_byte *)
bfd_boolean bfd_elf32_checksum_contents(bfd *, void(*)(const void *, size_t, void *), void *)
unsigned int _bfd_elf_common_section_index(asection *)
const bfd_target * bfd_elf32_object_p(bfd *)
#define NUM_KNOWN_OBJ_ATTRIBUTES
asection * bfd_section_from_elf_index(bfd *, unsigned int)
bfd_boolean _bfd_elf_link_create_dynamic_sections(bfd *, struct bfd_link_info *)
bfd_boolean _bfd_elf_merge_sections(bfd *, struct bfd_link_info *)
bfd_boolean _bfd_elf_link_omit_section_dynsym(bfd *, struct bfd_link_info *, asection *)
bfd_boolean _bfd_elf_can_make_relative(bfd *input_bfd, struct bfd_link_info *info, asection *eh_frame_section)
bfd_boolean _bfd_elf_link_size_reloc_section(bfd *, Elf_Internal_Shdr *, asection *)
bfd_boolean _bfd_elf_link_output_relocs(bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *, struct elf_link_hash_entry **)
void bfd_elf_add_obj_attr_int(bfd *, int, int, unsigned int)
bfd_boolean bfd_elf_reloc_symbol_deleted_p(bfd_vma, void *)
bfd_boolean _bfd_elf_hash_symbol(struct elf_link_hash_entry *)
void _bfd_elf_init_1_index_section(bfd *, struct bfd_link_info *)
void _bfd_elf_swap_verneed_in(bfd *, const Elf_External_Verneed *, Elf_Internal_Verneed *)
bfd_boolean _bfd_elf_adjust_dynamic_symbol(struct elf_link_hash_entry *, void *)
bfd_boolean _bfd_elf_merge_object_attributes(bfd *, bfd *)
bfd_boolean _bfd_elf_common_definition(Elf_Internal_Sym *)
const bfd_target * bfd_elf32_core_file_p(bfd *)
void _bfd_dwarf2_cleanup_debug_info(bfd *)
void _bfd_elf_strtab_clear_all_refs(struct elf_strtab_hash *)
int _bfd_elf_section_from_bfd_section(bfd *, asection *)
void bfd_elf_set_obj_attr_contents(bfd *, bfd_byte *, bfd_vma)
void _bfd_elf_swap_vernaux_in(bfd *, const Elf_External_Vernaux *, Elf_Internal_Vernaux *)
int bfd_elf_get_obj_attr_int(bfd *, int, int)
BFD_HOST_64_BIT bfd_signed_vma
BFD_HOST_U_64_BIT bfd_size_type
enum bfd_reloc_status bfd_reloc_status_type
BFD_HOST_U_64_BIT bfd_vma
void(* bfd_error_plugin_type)(const char *,...)
unsigned BFD_HOST_64_BIT ufile_ptr
enum bfd_print_symbol bfd_print_symbol_type
static struct sockaddr static addrlen static backlog const void static flags void flags
Elf_Internal_Shdr * rel_hdr2
Elf_Internal_Shdr rel_hdr
Elf_Internal_Rela * relocs
union bfd_elf_section_data::@93 group
Elf_Internal_Shdr this_hdr
struct elf_link_hash_entry ** rel_hashes
unsigned int add_fde_encoding
struct eh_cie_fde * cie_inf
unsigned int per_encoding_relative
unsigned int make_lsda_relative
unsigned char lsda_offset
unsigned int make_relative
unsigned char lsda_encoding
unsigned char fde_encoding
unsigned int add_augmentation_size
unsigned int need_lsda_relative
struct eh_frame_array_ent * array
bfd_boolean offsets_adjusted
struct bfd_elf_version_tree * verdefs
struct bfd_link_info * info
bfd_boolean(* elf_backend_can_make_relative_eh_frame)(bfd *, struct bfd_link_info *, asection *)
void(* elf_info_to_howto)(bfd *, arelent *, Elf_Internal_Rela *)
bfd_boolean(* elf_backend_link_output_symbol_hook)(struct bfd_link_info *info, const char *, Elf_Internal_Sym *, asection *, struct elf_link_hash_entry *)
bfd_boolean(* merge_symbol)(struct bfd_link_info *, struct elf_link_hash_entry **, struct elf_link_hash_entry *, Elf_Internal_Sym *, asection **, bfd_vma *, unsigned int *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd *, asection **, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd *, asection **)
bfd_boolean(* elf_backend_adjust_dynamic_symbol)(struct bfd_link_info *info, struct elf_link_hash_entry *h)
flagword dynamic_sec_flags
elf_gc_mark_hook_fn gc_mark_hook
bfd_boolean(* elf_add_symbol_hook)(bfd *abfd, struct bfd_link_info *info, Elf_Internal_Sym *, const char **name, flagword *flags, asection **sec, bfd_vma *value)
bfd_boolean(* elf_backend_section_flags)(flagword *, const Elf_Internal_Shdr *)
int(* elf_backend_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)
const char * obj_attrs_section
bfd_boolean(* elf_backend_fake_sections)(bfd *, Elf_Internal_Shdr *, asection *)
enum bfd_architecture arch
bfd_boolean(* elf_hash_symbol)(struct elf_link_hash_entry *)
void(* elf_backend_init_index_section)(bfd *output_bfd, struct bfd_link_info *info)
const struct elf_size_info * s
bfd_boolean(* elf_backend_section_from_phdr)(bfd *, Elf_Internal_Phdr *, int, const char *)
unsigned int(* common_section_index)(asection *)
bfd_boolean(* elf_backend_symbol_table_processing)(bfd *, elf_symbol_type *, unsigned int)
bfd_boolean(* elf_backend_object_p)(bfd *)
bfd_boolean(* elf_backend_write_section)(bfd *, struct bfd_link_info *, asection *, bfd_byte *)
irix_compat_t(* elf_backend_mips_irix_compat)(bfd *)
void(* elf_backend_final_write_processing)(bfd *, bfd_boolean linker)
bfd_boolean(* gc_mark_extra_sections)(struct bfd_link_info *info, elf_gc_mark_hook_fn gc_mark_hook)
int(* elf_backend_additional_program_headers)(bfd *, struct bfd_link_info *)
void(* elf_backend_merge_symbol_attribute)(struct elf_link_hash_entry *, const Elf_Internal_Sym *, bfd_boolean, bfd_boolean)
void(* elf_backend_sprintf_vma)(bfd *, char *, bfd_vma)
unsigned int obj_attrs_section_type
bfd_boolean(* elf_backend_ignore_discarded_relocs)(asection *)
bfd_boolean(* elf_backend_omit_section_dynsym)(bfd *output_bfd, struct bfd_link_info *info, asection *osec)
bfd_boolean(* elf_backend_grok_prstatus)(bfd *, Elf_Internal_Note *)
void(* elf_backend_hide_symbol)(struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)
unsigned default_execstack
bfd_boolean(* elf_backend_finish_dynamic_sections)(bfd *output_bfd, struct bfd_link_info *info)
bfd_boolean(* elf_backend_grok_psinfo)(bfd *, Elf_Internal_Note *)
bfd_boolean(* elf_backend_create_dynamic_sections)(bfd *abfd, struct bfd_link_info *info)
bfd_boolean(* elf_backend_output_arch_syms)(bfd *, struct bfd_link_info *, void *, bfd_boolean(*)(void *, const char *, Elf_Internal_Sym *, asection *, struct elf_link_hash_entry *))
bfd_vma(* plt_sym_val)(bfd_vma, const asection *, const arelent *)
bfd_boolean(* elf_backend_sym_is_global)(bfd *, asymbol *)
bfd_boolean(* elf_backend_emit_relocs)(bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *, struct elf_link_hash_entry **)
const struct ecoff_debug_swap * elf_backend_ecoff_debug_swap
void(* elf_info_to_howto_rel)(bfd *, arelent *, Elf_Internal_Rela *)
void(* elf_backend_copy_indirect_symbol)(struct bfd_link_info *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)
bfd_boolean(* check_directives)(bfd *abfd, struct bfd_link_info *info)
bfd_boolean(* check_relocs)(bfd *abfd, struct bfd_link_info *info, asection *o, const Elf_Internal_Rela *relocs)
int(* obj_attrs_arg_type)(int)
bfd_boolean(* elf_backend_discard_info)(bfd *, struct elf_reloc_cookie *, struct bfd_link_info *)
bfd_boolean(* elf_backend_section_processing)(bfd *, Elf_Internal_Shdr *)
void(* elf_backend_post_process_headers)(bfd *, struct bfd_link_info *)
bfd_boolean(* is_function_type)(unsigned int type)
const struct bfd_elf_special_section * special_sections
bfd_boolean(* gc_sweep_hook)(bfd *abfd, struct bfd_link_info *info, asection *o, const Elf_Internal_Rela *relocs)
bfd_boolean(* elf_backend_finish_dynamic_symbol)(bfd *output_bfd, struct bfd_link_info *info, struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)
bfd_boolean(* elf_backend_can_make_lsda_relative_eh_frame)(bfd *, struct bfd_link_info *, asection *)
bfd_error_plugin_type link_order_error_handler
bfd_boolean(* elf_backend_section_from_bfd_section)(bfd *, asection *, int *retval)
bfd_boolean(* elf_backend_fixup_symbol)(struct bfd_link_info *, struct elf_link_hash_entry *)
bfd_boolean(* elf_backend_size_dynamic_sections)(bfd *output_bfd, struct bfd_link_info *info)
bfd_boolean(* elf_backend_modify_program_headers)(bfd *, struct bfd_link_info *)
void(* elf_backend_fprintf_vma)(bfd *, void *, bfd_vma)
bfd_boolean(* elf_backend_output_arch_local_syms)(bfd *, struct bfd_link_info *, void *, bfd_boolean(*)(void *, const char *, Elf_Internal_Sym *, asection *, struct elf_link_hash_entry *))
bfd_byte(* elf_backend_encode_eh_address)(bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset, asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded)
bfd_boolean(* elf_backend_section_from_shdr)(bfd *, Elf_Internal_Shdr *, const char *, int)
bfd_boolean(* elf_backend_modify_segment_map)(bfd *, struct bfd_link_info *)
bfd_boolean(* gc_mark_dynamic_ref)(struct elf_link_hash_entry *h, void *inf)
bfd_boolean(* as_needed_cleanup)(bfd *abfd, struct bfd_link_info *info)
void(* elf_backend_begin_write_processing)(bfd *, struct bfd_link_info *)
unsigned want_p_paddr_set_to_zero
void(* elf_backend_symbol_processing)(bfd *, asymbol *)
bfd_boolean(* elf_backend_always_size_sections)(bfd *output_bfd, struct bfd_link_info *info)
enum elf_reloc_type_class(* elf_backend_reloc_type_class)(const Elf_Internal_Rela *)
unsigned default_use_rela_p
bfd_boolean(* elf_backend_ignore_undef_symbol)(struct elf_link_hash_entry *)
int(* elf_backend_get_symbol_type)(Elf_Internal_Sym *, int)
unsigned int(* elf_backend_eh_frame_address_size)(bfd *, asection *)
const char * obj_attrs_vendor
bfd_boolean(* common_definition)(Elf_Internal_Sym *)
unsigned int(* elf_backend_count_relocs)(asection *, Elf_Internal_Rela *)
bfd_boolean(* elf_backend_name_local_section_symbols)(bfd *)
struct bfd_link_info * info
struct bfd_link_info * info
struct bfd_elf_version_tree * verdefs
unsigned int pointer_equality_needed
struct bfd_elf_version_tree * vertree
unsigned int ref_regular_nonweak
struct elf_link_hash_entry * weakdef
union elf_link_hash_entry::@90 u
unsigned long dynstr_index
struct elf_link_hash_entry * parent
unsigned int dynamic_adjusted
unsigned long elf_hash_value
Elf_Internal_Verdef * verdef
union elf_link_hash_entry::@91 verinfo
union elf_link_hash_entry::gotplt_union got
struct elf_link_hash_entry::@92 * vtable
struct bfd_link_hash_entry root
unsigned int dynamic_weak
unsigned int forced_local
struct elf_link_hash_entry * hgot
struct elf_link_local_dynamic_entry * dynlocal
struct bfd_link_hash_table root
bfd_boolean dynamic_sections_created
struct elf_strtab_hash * dynstr
bfd_size_type bucketcount
bfd_size_type dynsymcount
union gotplt_union init_plt_refcount
union gotplt_union init_plt_offset
struct bfd_link_needed_list * needed
struct eh_frame_hdr_info eh_info
union gotplt_union init_got_offset
union gotplt_union init_got_refcount
struct bfd_link_needed_list * runpath
struct elf_link_loaded_list * loaded
bfd_boolean is_relocatable_executable
struct elf_link_hash_entry * hplt
asection * data_index_section
asection * text_index_section
struct elf_link_loaded_list * next
struct elf_link_local_dynamic_entry * next
Elf_Internal_Shdr dynversym_hdr
asection ** local_call_stubs
Elf_Internal_Shdr symtab_shndx_hdr
Elf_Internal_Ehdr elf_header[1]
asymbol * elf_text_symbol
Elf_Internal_Shdr dynstrtab_hdr
unsigned int shstrtab_section
struct mips_elf_find_line * find_line_info
obj_attribute_list * other_obj_attributes[2]
obj_attribute known_obj_attributes[2][NUM_KNOWN_OBJ_ATTRIBUTES]
Elf_Internal_Verneed * verref
unsigned int symtab_section
Elf_Internal_Shdr strtab_hdr
asection * elf_data_section
Elf_Internal_Verdef * verdef
asection * elf_text_section
unsigned int num_elf_sections
struct dwarf1_debug * dwarf1_find_line_info
struct elf_link_hash_entry ** sym_hashes
bfd_size_type program_header_size
Elf_Internal_Shdr dynsymtab_hdr
union elf_obj_tdata::@94 local_got
void * after_write_object_contents_info
bfd_signed_vma * refcounts
Elf_Internal_Shdr shstrtab_hdr
Elf_Internal_Shdr dynverref_hdr
unsigned int dynverref_section
unsigned int strtab_section
unsigned int dynverdef_section
Elf_Internal_Shdr ** group_sect_ptr
struct elf_segment_map * segment_map
enum dynamic_lib_link_class dyn_lib_class
void * dwarf2_find_line_info
Elf_Internal_Shdr symtab_hdr
bfd_boolean(* after_write_object_contents)(bfd *)
struct elf_strtab_hash * strtab_ptr
Elf_Internal_Shdr ** elf_sect_ptr
unsigned int dynsymtab_section
unsigned int symtab_shndx_section
asymbol * elf_data_symbol
Elf_Internal_Shdr dynverdef_hdr
unsigned int dynversym_section
Elf_Internal_Sym * locsyms
struct elf_link_hash_entry ** sym_hashes
Elf_Internal_Rela * relend
long(* slurp_symbol_table)(bfd *, asymbol **, bfd_boolean)
unsigned char log_file_align
void(* swap_reloc_out)(bfd *, const Elf_Internal_Rela *, bfd_byte *)
bfd_boolean(* checksum_contents)(bfd *, void(*)(const void *, size_t, void *), void *)
void(* swap_dyn_in)(bfd *, const void *, Elf_Internal_Dyn *)
bfd_boolean(* write_shdrs_and_ehdr)(bfd *)
unsigned char sizeof_rela
void(* swap_reloca_in)(bfd *, const bfd_byte *, Elf_Internal_Rela *)
unsigned char sizeof_hash_entry
void(* write_relocs)(bfd *, asection *, void *)
void(* swap_reloc_in)(bfd *, const bfd_byte *, Elf_Internal_Rela *)
unsigned char sizeof_ehdr
unsigned char sizeof_shdr
void(* swap_reloca_out)(bfd *, const Elf_Internal_Rela *, bfd_byte *)
unsigned char sizeof_note
void(* swap_dyn_out)(bfd *, const Elf_Internal_Dyn *, void *)
void(* swap_symbol_out)(bfd *, const Elf_Internal_Sym *, void *, void *)
unsigned char int_rels_per_ext_rel
int(* write_out_phdrs)(bfd *, const Elf_Internal_Phdr *, unsigned int)
unsigned char sizeof_phdr
bfd_boolean(* slurp_reloc_table)(bfd *, asection *, asymbol **, bfd_boolean)
bfd_boolean(* swap_symbol_in)(bfd *, const void *, const void *, Elf_Internal_Sym *)
unsigned int hppa_arg_reloc
Elf_Internal_Sym internal_elf_sym
struct obj_attribute_list * next
unsigned long indx[LOCAL_SYM_CACHE_SIZE]
unsigned int shndx[LOCAL_SYM_CACHE_SIZE]
int inf(FILE *source, FILE *dest)