Lines Matching refs:ELFT
37 template <class ELFT> void ELFWriter<ELFT>::writePhdr(const Segment &Seg) { in writePhdr()
67 template <class ELFT> void ELFWriter<ELFT>::writeShdr(const SectionBase &Sec) { in writeShdr()
83 template <class ELFT> Error ELFSectionSizer<ELFT>::visit(Section &) { in visit()
87 template <class ELFT> Error ELFSectionSizer<ELFT>::visit(OwnedDataSection &) { in visit()
91 template <class ELFT> Error ELFSectionSizer<ELFT>::visit(StringTableSection &) { in visit()
95 template <class ELFT>
96 Error ELFSectionSizer<ELFT>::visit(DynamicRelocationSection &) { in visit()
100 template <class ELFT>
101 Error ELFSectionSizer<ELFT>::visit(SymbolTableSection &Sec) { in visit()
105 Sec.Align = ELFT::Is64Bits ? sizeof(Elf_Xword) : sizeof(Elf_Word); in visit()
109 template <class ELFT>
110 Error ELFSectionSizer<ELFT>::visit(RelocationSection &Sec) { in visit()
114 Sec.Align = ELFT::Is64Bits ? sizeof(Elf_Xword) : sizeof(Elf_Word); in visit()
118 template <class ELFT>
119 Error ELFSectionSizer<ELFT>::visit(GnuDebugLinkSection &) { in visit()
123 template <class ELFT> Error ELFSectionSizer<ELFT>::visit(GroupSection &Sec) { in visit()
128 template <class ELFT>
129 Error ELFSectionSizer<ELFT>::visit(SectionIndexSection &) { in visit()
133 template <class ELFT> Error ELFSectionSizer<ELFT>::visit(CompressedSection &) { in visit()
137 template <class ELFT>
138 Error ELFSectionSizer<ELFT>::visit(DecompressedSection &) { in visit()
437 template <class ELFT>
438 Error ELFSectionWriter<ELFT>::visit(const DecompressedSection &Sec) { in visit()
440 Sec.OriginalData.slice(sizeof(Elf_Chdr_Impl<ELFT>)); in visit()
490 template <class ELFT>
491 Error ELFSectionWriter<ELFT>::visit(const CompressedSection &Sec) { in visit()
493 Elf_Chdr_Impl<ELFT> Chdr = {}; in visit()
569 template <class ELFT>
570 Error ELFSectionWriter<ELFT>::visit(const SectionIndexSection &Sec) { in visit()
810 template <class ELFT>
811 Error ELFSectionWriter<ELFT>::visit(const SymbolTableSection &Sec) { in visit()
911 template <class ELFT>
912 static void setAddend(Elf_Rel_Impl<ELFT, false> &, uint64_t) {} in setAddend() argument
914 template <class ELFT>
915 static void setAddend(Elf_Rel_Impl<ELFT, true> &Rela, uint64_t Addend) { in setAddend() argument
930 template <class ELFT>
931 Error ELFSectionWriter<ELFT>::visit(const RelocationSection &Sec) { in visit()
1119 template <class ELFT>
1120 Error ELFSectionWriter<ELFT>::visit(const GnuDebugLinkSection &Sec) { in visit()
1138 template <class ELFT>
1139 Error ELFSectionWriter<ELFT>::visit(const GroupSection &Sec) { in visit()
1142 support::endian::write32<ELFT::TargetEndianness>(Buf++, Sec.FlagWord); in visit()
1144 support::endian::write32<ELFT::TargetEndianness>(Buf++, S->Index); in visit()
1342 template <class ELFT>
1343 ELFBuilder<ELFT>::ELFBuilder(const ELFObjectFile<ELFT> &ElfObj, Object &Obj, in ELFBuilder()
1350 template <class ELFT> void ELFBuilder<ELFT>::setParentSegment(Segment &Child) { in setParentSegment()
1366 template <class ELFT> Error ELFBuilder<ELFT>::findEhdrOffset() { in findEhdrOffset()
1381 template <class ELFT>
1382 Error ELFBuilder<ELFT>::readProgramHeaders(const ELFFile<ELFT> &HeadersFile) { in readProgramHeaders()
1385 Expected<typename ELFFile<ELFT>::Elf_Phdr_Range> Headers = in readProgramHeaders()
1390 for (const typename ELFFile<ELFT>::Elf_Phdr &Phdr : *Headers) { in readProgramHeaders()
1423 const typename ELFT::Ehdr &Ehdr = HeadersFile.getHeader(); in readProgramHeaders()
1448 template <class ELFT>
1449 Error ELFBuilder<ELFT>::initGroupSection(GroupSection *GroupSec) { in initGroupSection()
1484 support::endian::read32<ELFT::TargetEndianness>(Word++)); in initGroupSection()
1486 uint32_t Index = support::endian::read32<ELFT::TargetEndianness>(Word); in initGroupSection()
1499 template <class ELFT>
1500 Error ELFBuilder<ELFT>::initSymbolTable(SymbolTableSection *SymTab) { in initSymbolTable()
1511 Expected<typename ELFFile<ELFT>::Elf_Sym_Range> Symbols = in initSymbolTable()
1516 for (const typename ELFFile<ELFT>::Elf_Sym &Sym : *Symbols) { in initSymbolTable()
1582 template <class ELFT>
1583 static void getAddend(uint64_t &, const Elf_Rel_Impl<ELFT, false> &) {} in getAddend() argument
1585 template <class ELFT>
1586 static void getAddend(uint64_t &ToSet, const Elf_Rel_Impl<ELFT, true> &Rela) { in getAddend() argument
1639 template <class ELFT>
1640 Expected<SectionBase &> ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) { in makeSection()
1708 auto *Chdr = reinterpret_cast<const Elf_Chdr_Impl<ELFT> *>(Data->data()); in makeSection()
1715 template <class ELFT> Error ELFBuilder<ELFT>::readSectionHeaders() { in readSectionHeaders()
1717 Expected<typename ELFFile<ELFT>::Elf_Shdr_Range> Sections = in readSectionHeaders()
1722 for (const typename ELFFile<ELFT>::Elf_Shdr &Shdr : *Sections) { in readSectionHeaders()
1755 template <class ELFT> Error ELFBuilder<ELFT>::readSections(bool EnsureSymtab) { in readSections()
1810 Expected<typename ELFFile<ELFT>::Elf_Shdr_Range> Sections = in readSections()
1815 const typename ELFFile<ELFT>::Elf_Shdr *Shdr = in readSections()
1818 Expected<typename ELFFile<ELFT>::Elf_Rel_Range> Rels = in readSections()
1826 Expected<typename ELFFile<ELFT>::Elf_Rela_Range> Relas = in readSections()
1843 template <class ELFT> Error ELFBuilder<ELFT>::build(bool EnsureSymtab) { in build()
1852 Expected<ELFFile<ELFT>> HeadersFile = ELFFile<ELFT>::create(toStringRef( in build()
1857 const typename ELFFile<ELFT>::Elf_Ehdr &Ehdr = HeadersFile->getHeader(); in build()
1941 template <class ELFT> void ELFWriter<ELFT>::writeEhdr() { in writeEhdr()
1948 Ehdr.e_ident[EI_CLASS] = ELFT::Is64Bits ? ELFCLASS64 : ELFCLASS32; in writeEhdr()
1950 ELFT::TargetEndianness == support::big ? ELFDATA2MSB : ELFDATA2LSB; in writeEhdr()
1998 template <class ELFT> void ELFWriter<ELFT>::writePhdrs() { in writePhdrs()
2003 template <class ELFT> void ELFWriter<ELFT>::writeShdrs() { in writeShdrs()
2032 template <class ELFT> Error ELFWriter<ELFT>::writeSectionData() { in writeSectionData()
2044 template <class ELFT> void ELFWriter<ELFT>::writeSegmentData() { in writeSegmentData()
2073 template <class ELFT>
2074 ELFWriter<ELFT>::ELFWriter(Object &Obj, raw_ostream &Buf, bool WSH, in ELFWriter()
2390 template <class ELFT> void ELFWriter<ELFT>::initEhdrSegment() { in initEhdrSegment()
2400 template <class ELFT> void ELFWriter<ELFT>::assignOffsets() { in assignOffsets()
2435 template <class ELFT> size_t ELFWriter<ELFT>::totalSize() const { in totalSize()
2444 template <class ELFT> Error ELFWriter<ELFT>::write() { in write()
2480 template <class ELFT> Error ELFWriter<ELFT>::finalize() { in finalize()
2542 auto SecSizer = std::make_unique<ELFSectionSizer<ELFT>>(); in finalize()
2586 SecWriter = std::make_unique<ELFSectionWriter<ELFT>>(*Buf); in finalize()