Lines Matching full:bfd
0 /* BFD back-end data structures for ELF files.
5 This file is part of BFD, the Binary File Descriptor library.
62 /* The BFD symbol. */
255 /* The input bfd this symbol came from. */
256 bfd *input_bfd;
271 bfd *abfd;
458 /* The BFD used to hold special sections created by the linker.
459 This will be the first BFD found which requires these sections to
461 bfd *dynobj;
491 /* Sections in the output bfd that provides a section symbol
526 /* A linked list of BFD's loaded in the link. */
571 bfd *abfd;
596 (bfd *, const Elf_Internal_Phdr *, unsigned int);
598 (*write_shdrs_and_ehdr) (bfd *);
600 (bfd * , void (*) (const void *, size_t, void *), void *);
602 (bfd *, asection *, void *);
604 (bfd *, const void *, const void *, Elf_Internal_Sym *);
606 (bfd *, const Elf_Internal_Sym *, void *, void *);
608 (bfd *, asection *, asymbol **, bfd_boolean);
610 (bfd *, asymbol **, bfd_boolean);
612 (bfd *, const void *, Elf_Internal_Dyn *);
614 (bfd *, const Elf_Internal_Dyn *, void *);
620 (bfd *, const bfd_byte *, Elf_Internal_Rela *);
624 (bfd *, const Elf_Internal_Rela *, bfd_byte *);
630 (bfd *, const bfd_byte *, Elf_Internal_Rela *);
634 (bfd *, const Elf_Internal_Rela *, bfd_byte *);
655 bfd *abfd;
723 /* The BFD flags applied to sections created for dynamic linking. */
730 /* A function to translate an ELF RELA relocation to a BFD arelent
733 (bfd *, arelent *, Elf_Internal_Rela *);
735 /* A function to translate an ELF REL relocation to a BFD arelent
738 (bfd *, arelent *, Elf_Internal_Rela *);
746 (bfd *, asymbol *);
752 particular BFD format is relevant for an object file, and to
758 (bfd *);
764 (bfd *, asymbol *);
769 (bfd *, elf_symbol_type *, unsigned int);
779 (bfd *, struct bfd_link_info *, const char *);
784 (bfd *);
791 (bfd *, Elf_Internal_Shdr *);
793 /* A function to handle unusual section types when creating BFD
796 (bfd *, Elf_Internal_Shdr *, const char *, int);
799 BFD internal section header flags. */
804 type for the given BFD section. */
806 (bfd *, asection *);
808 /* A function to handle unusual program segment types when creating BFD
811 (bfd *, Elf_Internal_Phdr *, int, const char *);
813 /* A function to set up the ELF section header for a BFD section in
817 (bfd *, Elf_Internal_Shdr *, asection *);
819 /* A function to get the ELF section index for a BFD section. If
824 (bfd *, asection *, int *retval);
835 (bfd *abfd, struct bfd_link_info *info, Elf_Internal_Sym *,
855 (bfd *abfd, struct bfd_link_info *info);
860 (bfd *output_bfd, struct bfd_link_info *info, asection *osec);
877 (bfd *abfd, struct bfd_link_info *info, asection *o,
882 must inspect the bfd and create any additional symbols according
883 to any custom directives in the bfd. */
885 (bfd *abfd, struct bfd_link_info *info);
892 (bfd *abfd, struct bfd_link_info *info, enum notice_asneeded_action act);
914 (bfd *output_bfd, struct bfd_link_info *info);
927 (bfd *output_bfd, struct bfd_link_info *info);
932 (bfd *output_bfd, struct bfd_link_info *info);
966 (bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd,
978 (bfd *output_bfd, struct bfd_link_info *info,
986 (bfd *output_bfd, struct bfd_link_info *info);
991 (bfd *, struct bfd_link_info *);
994 before writing it out. The LINKER argument is TRUE if this BFD
997 (bfd *, bfd_boolean linker);
1000 return the number of additional program segments which this BFD
1003 (bfd *, struct bfd_link_info *);
1008 (bfd *, struct bfd_link_info *);
1013 (bfd *, struct bfd_link_info *);
1038 (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
1044 (bfd *, struct bfd_link_info *);
1050 (bfd *, void *, asymbol *);
1057 (bfd *, struct bfd_link_info *, void *,
1065 (bfd *, struct bfd_link_info *, void *,
1106 (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *,
1117 (bfd *, Elf_Internal_Note *);
1122 (bfd *, Elf_Internal_Note *);
1126 (bfd *abfd, char *buf, int *bufsiz, int note_type, ...);
1140 (bfd *, struct elf_reloc_cookie *, struct bfd_link_info *);
1154 goes by the bfd's EI_CLASS. */
1156 (bfd *, asection *);
1162 (bfd *, struct bfd_link_info *, asection *);
1164 (bfd *, struct bfd_link_info *, asection *);
1171 (bfd *abfd, struct bfd_link_info *info,
1179 (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
1184 (bfd *);
1195 bfd *(*elf_backend_bfd_from_remote_memory)
1196 (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
1217 bfd *, const asection *);
1252 bfd_vma (*got_elt_size) (bfd *, struct bfd_link_info *,
1254 bfd *ibfd, unsigned long symndx);
1278 bfd_boolean (*obj_attrs_handle_unknown) (bfd *, int);
1371 /* Information stored for each BFD section in an ELF file. This
1407 /* A pointer to the bfd section used for dynamic relocs. */
1462 it exists in bfd to begin with. */
1549 bfd_boolean (*after_write_object_contents) (bfd *);
1575 in the bfd structure. */
1627 /* A place to stash dwarf1 info for this bfd. */
1630 /* A place to stash dwarf2 info for this bfd. */
1682 this BFD appears to be screwed up. If it is, we ignore the
1687 /* True if the bfd contains symbols that have the STT_GNU_IFUNC
1699 #define elf_tdata(bfd) ((bfd) -> tdata.elf_obj_data)
1701 #define elf_object_id(bfd) (elf_tdata(bfd) -> object_id)
1702 #define elf_program_header_size(bfd) (elf_tdata(bfd) -> o->program_header_size)
1703 #define elf_elfheader(bfd) (elf_tdata(bfd) -> elf_header)
1704 #define elf_elfsections(bfd) (elf_tdata(bfd) -> elf_sect_ptr)
1705 #define elf_numsections(bfd) (elf_tdata(bfd) -> num_elf_sections)
1706 #define elf_seg_map(bfd) (elf_tdata(bfd) -> o->seg_map)
1707 #define elf_next_file_pos(bfd) (elf_tdata(bfd) -> o->next_file_pos)
1708 #define elf_eh_frame_hdr(bfd) (elf_tdata(bfd) -> o->eh_frame_hdr)
1709 #define elf_linker(bfd) (elf_tdata(bfd) -> o->linker)
1710 #define elf_stack_flags(bfd) (elf_tdata(bfd) -> o->stack_flags)
1711 #define elf_shstrtab(bfd) (elf_tdata(bfd) -> o->strtab_ptr)
1712 #define elf_onesymtab(bfd) (elf_tdata(bfd) -> symtab_section)
1713 #define elf_symtab_shndx(bfd) (elf_tdata(bfd) -> symtab_shndx_section)
1714 #define elf_strtab_sec(bfd) (elf_tdata(bfd) -> o->strtab_section)
1715 #define elf_shstrtab_sec(bfd) (elf_tdata(bfd) -> o->shstrtab_section)
1716 #define elf_symtab_hdr(bfd) (elf_tdata(bfd) -> symtab_hdr)
1717 #define elf_dynsymtab(bfd) (elf_tdata(bfd) -> dynsymtab_section)
1718 #define elf_dynversym(bfd) (elf_tdata(bfd) -> dynversym_section)
1719 #define elf_dynverdef(bfd) (elf_tdata(bfd) -> dynverdef_section)
1720 #define elf_dynverref(bfd) (elf_tdata(bfd) -> dynverref_section)
1721 #define elf_eh_frame_section(bfd) \
1722 (elf_tdata(bfd) -> eh_frame_section)
1723 #define elf_section_syms(bfd) (elf_tdata(bfd) -> o->section_syms)
1724 #define elf_num_section_syms(bfd) (elf_tdata(bfd) -> o->num_section_syms)
1725 #define core_prpsinfo(bfd) (elf_tdata(bfd) -> prpsinfo)
1726 #define core_prstatus(bfd) (elf_tdata(bfd) -> prstatus)
1727 #define elf_gp(bfd) (elf_tdata(bfd) -> gp)
1728 #define elf_gp_size(bfd) (elf_tdata(bfd) -> gp_size)
1729 #define elf_sym_hashes(bfd) (elf_tdata(bfd) -> sym_hashes)
1730 #define elf_local_got_refcounts(bfd) (elf_tdata(bfd) -> local_got.refcounts)
1731 #define elf_local_got_offsets(bfd) (elf_tdata(bfd) -> local_got.offsets)
1732 #define elf_local_got_ents(bfd) (elf_tdata(bfd) -> local_got.ents)
1733 #define elf_dt_name(bfd) (elf_tdata(bfd) -> dt_name)
1734 #define elf_dt_audit(bfd) (elf_tdata(bfd) -> dt_audit)
1735 #define elf_dyn_lib_class(bfd) (elf_tdata(bfd) -> dyn_lib_class)
1736 #define elf_bad_symtab(bfd) (elf_tdata(bfd) -> bad_symtab)
1737 #define elf_flags_init(bfd) (elf_tdata(bfd) -> o->flags_init)
1738 #define elf_known_obj_attributes(bfd) (elf_tdata (bfd) -> known_obj_attributes)
1739 #define elf_other_obj_attributes(bfd) (elf_tdata (bfd) -> other_obj_attributes)
1740 #define elf_known_obj_attributes_proc(bfd) \
1741 (elf_known_obj_attributes (bfd) [OBJ_ATTR_PROC])
1742 #define elf_other_obj_attributes_proc(bfd) \
1743 (elf_other_obj_attributes (bfd) [OBJ_ATTR_PROC])
1747 (bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *);
1749 (bfd *, const Elf_Internal_Verdef *, Elf_External_Verdef *);
1751 (bfd *, const Elf_External_Verdaux *, Elf_Internal_Verdaux *);
1753 (bfd *, const Elf_Internal_Verdaux *, Elf_External_Verdaux *);
1755 (bfd *, const Elf_External_Verneed *, Elf_Internal_Verneed *);
1757 (bfd *, const Elf_Internal_Verneed *, Elf_External_Verneed *);
1759 (bfd *, const Elf_External_Vernaux *, Elf_Internal_Vernaux *);
1761 (bfd *, const Elf_Internal_Vernaux *, Elf_External_Vernaux *);
1763 (bfd *, const Elf_External_Versym *, Elf_Internal_Versym *);
1765 (bfd *, const Elf_Internal_Versym *, Elf_External_Versym *);
1768 (bfd *, asection *);
1770 (bfd *, unsigned, unsigned);
1772 (bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *,
1775 (bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *);
1778 (bfd *, bfd *);
1780 (bfd *, void *);
1782 (bfd *, void *, asymbol *, bfd_print_symbol_type);
1785 (bfd *, asection *);
1787 (bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset,
1790 (bfd *input_bfd, struct bfd_link_info *info, asection *eh_frame_section);
1796 (bfd *, Elf_Internal_Sym *, asection **, Elf_Internal_Rela *);
1798 (bfd *, Elf_Internal_Sym *, asection **, bfd_vma);
1800 (bfd *, struct bfd_link_info *, asection *, bfd_vma);
1808 (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
1810 (bfd *, size_t, enum elf_target_id);
1812 (bfd *);
1814 (bfd *);
1816 (bfd *, Elf_Internal_Shdr *, const char *, int);
1818 (bfd *, Elf_Internal_Phdr *, int, const char *);
1822 (bfd *);
1824 (bfd *);
1833 (struct elf_link_hash_table *, bfd *,
1838 (bfd *, bfd_boolean);
1840 (bfd *, struct bfd_link_info *);
1842 (bfd *, const asection *, bfd *, const asection *);
1844 (bfd *, const struct bfd_section *);
1846 (bfd *, asection *, struct bfd_link_info *);
1848 (bfd *, asection *, void *);
1853 (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
1857 (bfd *, asection *);
1859 (bfd *, bfd *);
1861 (bfd *, asymbol *, bfd *, asymbol *);
1865 (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
1867 (bfd *, asection *, bfd *, asection *);
1869 (bfd *);
1871 (bfd *);
1873 (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
1875 (bfd *);
1877 (bfd *, asymbol **);
1879 (bfd *);
1881 (bfd *, asymbol **);
1883 (bfd *, long, asymbol **, long, asymbol **, asymbol **);
1885 (bfd *, sec_ptr);
1887 (bfd *, sec_ptr, arelent **, asymbol **);
1889 (bfd *, asection *, bfd_boolean);
1891 (asection *, bfd *, unsigned int, bfd *, bfd_boolean);
1893 (bfd *);
1895 (bfd *, arelent **, asymbol **);
1897 (bfd *);
1899 (bfd *, asymbol *, symbol_info *);
1901 (bfd *, const char *);
1903 (bfd *, asymbol *);
1905 (bfd *, enum bfd_architecture, unsigned long);
1907 (bfd *, asymbol **, asection *, bfd_vma,
1910 (bfd *, asymbol **, asymbol *, const char **, unsigned int *);
1912 (bfd *, const char **, const char **, unsigned int *);
1916 (bfd *, struct bfd_link_info *);
1918 (bfd *, asection *);
1922 (bfd *, asection *);
1926 (bfd *, arelent *, Elf_Internal_Rela *);
1929 (bfd *, unsigned int shindex);
1931 (bfd *, Elf_Internal_Phdr *, int);
1934 (bfd *, asymbol **);
1937 (struct sym_cache *, bfd *, unsigned long);
1939 (bfd *, unsigned int);
1964 (bfd *, struct elf_strtab_hash *);
1969 (bfd *, struct bfd_link_info *, asection *, struct elf_reloc_cookie *);
1971 (bfd *, struct bfd_link_info *, asection *,
1974 (bfd *, struct bfd_link_info *);
1976 (bfd *, struct bfd_link_info *, asection *, bfd_vma);
1978 (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
1980 (bfd *, struct bfd_link_info *);
1989 (struct bfd_link_info *, bfd *, long);
1991 (bfd *, struct bfd_link_info *);
1996 (bfd *, arelent *);
1999 (bfd *, struct bfd_link_info *);
2001 (bfd *, struct bfd_link_info *, asection *);
2003 (bfd *, struct bfd_link_info *);
2005 (bfd *, struct bfd_link_info *);
2007 (bfd *, struct bfd_link_info *, asection *, const char *);
2009 (bfd *, struct bfd_link_info *);
2011 (bfd *, struct bfd_link_info *);
2014 (bfd *, char *, size_t, ufile_ptr);
2016 (bfd *, char *, size_t);
2019 (bfd *, asection *, void *, Elf_Internal_Rela *, bfd_boolean);
2022 (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *,
2035 (bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma);
2038 (bfd *);
2040 extern void _bfd_elf_post_process_headers (bfd * , struct bfd_link_info *);
2043 (bfd *);
2045 (bfd *);
2047 (bfd *);
2049 (bfd *);
2051 (bfd *, bfd *);
2053 (bfd *);
2056 (bfd *, const void *, const void *, Elf_Internal_Sym *);
2058 (bfd *, const Elf_Internal_Sym *, void *, void *);
2060 (bfd *, const bfd_byte *, Elf_Internal_Rela *);
2062 (bfd *, const Elf_Internal_Rela *, bfd_byte *);
2064 (bfd *, const bfd_byte *, Elf_Internal_Rela *);
2066 (bfd *, const Elf_Internal_Rela *, bfd_byte *);
2068 (bfd *, const Elf32_External_Phdr *, Elf_Internal_Phdr *);
2070 (bfd *, const Elf_Internal_Phdr *, Elf32_External_Phdr *);
2072 (bfd *, const void *, Elf_Internal_Dyn *);
2074 (bfd *, const Elf_Internal_Dyn *, void *);
2076 (bfd *, asymbol **, bfd_boolean);
2078 (bfd *);
2080 (bfd *, const Elf_Internal_Phdr *, unsigned int);
2082 (bfd * , void (*) (const void *, size_t, void *), void *);
2084 (bfd *, asection *, void *);
2086 (bfd *, asection *, asymbol **, bfd_boolean);
2089 (bfd *);
2091 (bfd *);
2093 (bfd *);
2095 (bfd *);
2097 (bfd *, bfd *);
2099 (bfd *);
2102 (bfd *, const void *, const void *, Elf_Internal_Sym *);
2104 (bfd *, const Elf_Internal_Sym *, void *, void *);
2106 (bfd *, const bfd_byte *, Elf_Internal_Rela *);
2108 (bfd *, const Elf_Internal_Rela *, bfd_byte *);
2110 (bfd *, const bfd_byte *, Elf_Internal_Rela *);
2112 (bfd *, const Elf_Internal_Rela *, bfd_byte *);
2114 (bfd *, const Elf64_External_Phdr *, Elf_Internal_Phdr *);
2116 (bfd *, const Elf_Internal_Phdr *, Elf64_External_Phdr *);
2118 (bfd *, const void *, Elf_Internal_Dyn *);
2120 (bfd *, const Elf_Internal_Dyn *, void *);
2122 (bfd *, asymbol **, bfd_boolean);
2124 (bfd *);
2126 (bfd *, const Elf_Internal_Phdr *, unsigned int);
2128 (bfd * , void (*) (const void *, size_t, void *), void *);
2130 (bfd *, asection *, void *);
2132 (bfd *, asection *, asymbol **, bfd_boolean);
2140 (bfd *, struct bfd_link_info *, enum notice_asneeded_action);
2143 (bfd *, struct bfd_link_info *, const char *);
2145 (bfd *, struct bfd_link_info *);
2153 (struct bfd_link_info *, bfd *, long);
2156 (bfd *);
2168 (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, bfd *,
2172 (bfd *, arelent *, struct bfd_symbol *, void *,
2173 asection *, bfd *, char **);
2176 (bfd *, struct bfd_link_info *);
2185 (bfd *, struct bfd_link_info *);
2188 (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
2191 (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
2216 (bfd *, struct bfd_link_info *);
2219 (bfd *, struct bfd_link_info *);
2225 (bfd *, asection *);
2228 (bfd *, struct bfd_link_info *);
2241 (bfd * abfd, asection * section);
2245 (bfd *, char *, int *, const char *, int, const void *, int);
2247 (bfd *, char *, int *, const char *, const char *);
2249 (bfd *, char *, int *, long, int, const void *);
2251 (bfd *, char *, int *, long, int, const void *);
2253 (bfd *, char *, int *, const void *, int);
2255 (bfd *, char *, int *, const void *, int);
2257 (bfd *, char *, int *, const void *, int);
2259 (bfd *, char *, int *, const void *, int);
2261 (bfd *, char *, int *, const void *, int);
2263 (bfd *, char *, int *, const void *, int);
2265 (bfd *, char *, int *, const void *, int);
2267 (bfd *, char *, int *, const void *, int);
2269 (bfd *, char *, int *, const void *, int);
2271 (bfd *, char *, int *, const void *, int);
2273 (bfd *, char *, int *, const void *, int);
2275 (bfd *, char *, int *, const void *, int);
2277 (bfd *, char *, int *, const void *, int);
2279 (bfd *, char *, int *, const void *, int);
2281 (bfd *, char *, int *, const void *, int);
2283 (bfd *, char *, int *, const void *, int);
2285 (bfd *, char *, int *, const void *, int);
2287 (bfd *, char *, int *, long, int, const void *);
2289 (bfd *, char *, int *, const char *, const void *, int);
2295 to pass information to BFD (via the `elfcore_write_linux_prpsinfo'
2298 `elf_external_linux_*' structures and written out to an output bfd
2317 (bfd *, char *, int *, const struct elf_internal_linux_prpsinfo *);
2321 (bfd *, char *, int *, const struct elf_internal_linux_prpsinfo *);
2325 (bfd *, char *, int *, const struct elf_internal_linux_prpsinfo *);
2327 extern bfd *_bfd_elf32_bfd_from_remote_memory
2328 (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
2330 extern bfd *_bfd_elf64_bfd_from_remote_memory
2331 (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
2334 extern bfd_vma bfd_elf_obj_attr_size (bfd *);
2335 extern void bfd_elf_set_obj_attr_contents (bfd *, bfd_byte *, bfd_vma);
2336 extern int bfd_elf_get_obj_attr_int (bfd *, int, int);
2337 extern void bfd_elf_add_obj_attr_int (bfd *, int, int, unsigned int);
2338 #define bfd_elf_add_proc_attr_int(BFD, TAG, VALUE) \
2339 bfd_elf_add_obj_attr_int ((BFD), OBJ_ATTR_PROC, (TAG), (VALUE))
2340 extern void bfd_elf_add_obj_attr_string (bfd *, int, int, const char *);
2341 #define bfd_elf_add_proc_attr_string(BFD, TAG, VALUE) \
2342 bfd_elf_add_obj_attr_string ((BFD), OBJ_ATTR_PROC, (TAG), (VALUE))
2343 extern void bfd_elf_add_obj_attr_int_string (bfd *, int, int, unsigned int,
2345 #define bfd_elf_add_proc_attr_int_string(BFD, TAG, INTVAL, STRVAL) \
2346 bfd_elf_add_obj_attr_int_string ((BFD), OBJ_ATTR_PROC, (TAG), \
2349 extern char *_bfd_elf_attr_strdup (bfd *, const char *);
2350 extern void _bfd_elf_copy_obj_attributes (bfd *, bfd *);
2351 extern int _bfd_elf_obj_attrs_arg_type (bfd *, int, int);
2352 extern void _bfd_elf_parse_attributes (bfd *, Elf_Internal_Shdr *);
2353 extern bfd_boolean _bfd_elf_merge_object_attributes (bfd *, bfd *);
2354 extern bfd_boolean _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int);
2355 extern bfd_boolean _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *);
2379 (bfd *, struct bfd_link_info *);
2384 extern void elf_append_rela (bfd *, asection *, Elf_Internal_Rela *);
2385 extern void elf_append_rel (bfd *, asection *, Elf_Internal_Rela *);