Lines Matching defs:SHeader
232 void initSymtabSectionHeader(Elf_Shdr &SHeader, SymtabType STType,
235 void initStrtabSectionHeader(Elf_Shdr &SHeader, StringRef Name,
239 void initDWARFSectionHeader(Elf_Shdr &SHeader, StringRef Name,
251 void writeSectionContent(Elf_Shdr &SHeader,
254 void writeSectionContent(Elf_Shdr &SHeader,
257 void writeSectionContent(Elf_Shdr &SHeader,
260 void writeSectionContent(Elf_Shdr &SHeader,
263 void writeSectionContent(Elf_Shdr &SHeader,
266 void writeSectionContent(Elf_Shdr &SHeader,
269 void writeSectionContent(Elf_Shdr &SHeader,
272 void writeSectionContent(Elf_Shdr &SHeader,
275 void writeSectionContent(Elf_Shdr &SHeader,
278 void writeSectionContent(Elf_Shdr &SHeader,
281 void writeSectionContent(Elf_Shdr &SHeader,
284 void writeSectionContent(Elf_Shdr &SHeader,
287 void writeSectionContent(Elf_Shdr &SHeader,
290 void writeSectionContent(Elf_Shdr &SHeader,
293 void writeSectionContent(Elf_Shdr &SHeader,
296 void writeSectionContent(Elf_Shdr &SHeader,
299 void writeSectionContent(Elf_Shdr &SHeader,
302 void writeSectionContent(Elf_Shdr &SHeader,
305 void writeSectionContent(Elf_Shdr &SHeader,
308 void writeSectionContent(Elf_Shdr &SHeader,
311 void writeSectionContent(Elf_Shdr &SHeader,
319 void assignSectionAddress(Elf_Shdr &SHeader, ELFYAML::Section *YAMLSec);
803 Elf_Shdr &SHeader = SHeaders[SN2I.get(Sec->Name)];
805 SHeader.sh_link = toSectionIndex(*Sec->Link, Sec->Name);
811 SHeader.sh_link = Link;
815 SHeader.sh_entsize = *Sec->EntSize;
817 SHeader.sh_entsize = ELFYAML::getDefaultShEntSize<ELFT>(
824 if (initImplicitHeader(CBA, SHeader, Sec->Name,
831 SHeader.sh_name =
833 SHeader.sh_type = Sec->Type;
835 SHeader.sh_flags = *Sec->Flags;
836 SHeader.sh_addralign = Sec->AddressAlign;
841 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign, Sec->Offset);
843 assignSectionAddress(SHeader, Sec);
849 SHeader.sh_size = *RawSec->Size;
851 SHeader.sh_info = *RawSec->Info;
854 LocationCounter += SHeader.sh_size;
855 overrideFields<ELFT>(Sec, SHeader);
860 SHeader.sh_size = writeContent(CBA, Sec->Content, Sec->Size);
863 writeSectionContent(SHeader, *S, CBA);
865 writeSectionContent(SHeader, *S, CBA);
867 writeSectionContent(SHeader, *S, CBA);
869 writeSectionContent(SHeader, *S, CBA);
871 writeSectionContent(SHeader, *S, CBA);
873 writeSectionContent(SHeader, *S, CBA);
875 writeSectionContent(SHeader, *S, CBA);
877 writeSectionContent(SHeader, *S, CBA);
879 writeSectionContent(SHeader, *S, CBA);
881 writeSectionContent(SHeader, *S, CBA);
883 writeSectionContent(SHeader, *S, CBA);
885 writeSectionContent(SHeader, *S, CBA);
887 writeSectionContent(SHeader, *S, CBA);
889 writeSectionContent(SHeader, *S, CBA);
891 writeSectionContent(SHeader, *S, CBA);
893 writeSectionContent(SHeader, *S, CBA);
895 writeSectionContent(SHeader, *S, CBA);
897 writeSectionContent(SHeader, *S, CBA);
899 writeSectionContent(SHeader, *S, CBA);
901 writeSectionContent(SHeader, *S, CBA);
903 writeSectionContent(SHeader, *S, CBA);
908 LocationCounter += SHeader.sh_size;
911 overrideFields<ELFT>(Sec, SHeader);
916 void ELFState<ELFT>::assignSectionAddress(Elf_Shdr &SHeader,
919 SHeader.sh_addr = *YAMLSec->Address;
928 !(SHeader.sh_flags & ELF::SHF_ALLOC))
932 alignTo(LocationCounter, SHeader.sh_addralign ? SHeader.sh_addralign : 1);
933 SHeader.sh_addr = LocationCounter;
977 void ELFState<ELFT>::initSymtabSectionHeader(Elf_Shdr &SHeader,
1006 SHeader.sh_name = getSectionNameOffset(IsStatic ? ".symtab" : ".dynsym");
1009 SHeader.sh_type = YAMLSec->Type;
1011 SHeader.sh_type = IsStatic ? ELF::SHT_SYMTAB : ELF::SHT_DYNSYM;
1014 SHeader.sh_flags = *YAMLSec->Flags;
1016 SHeader.sh_flags = ELF::SHF_ALLOC;
1020 SHeader.sh_info = (RawSec && RawSec->Info) ? (unsigned)(*RawSec->Info)
1022 SHeader.sh_addralign = YAMLSec ? (uint64_t)YAMLSec->AddressAlign : 8;
1024 assignSectionAddress(SHeader, YAMLSec);
1026 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign,
1031 SHeader.sh_size = writeContent(CBA, RawSec->Content, RawSec->Size);
1037 SHeader.sh_size = Syms.size() * sizeof(Elf_Sym);
1038 CBA.write((const char *)Syms.data(), SHeader.sh_size);
1042 void ELFState<ELFT>::initStrtabSectionHeader(Elf_Shdr &SHeader, StringRef Name,
1046 SHeader.sh_name = getSectionNameOffset(ELFYAML::dropUniqueSuffix(Name));
1047 SHeader.sh_type = YAMLSec ? YAMLSec->Type : ELF::SHT_STRTAB;
1048 SHeader.sh_addralign = YAMLSec ? (uint64_t)YAMLSec->AddressAlign : 1;
1053 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign,
1057 SHeader.sh_size = writeContent(CBA, RawSec->Content, RawSec->Size);
1061 SHeader.sh_size = STB.getSize();
1065 SHeader.sh_info = *RawSec->Info;
1068 SHeader.sh_flags = *YAMLSec->Flags;
1070 SHeader.sh_flags = ELF::SHF_ALLOC;
1072 assignSectionAddress(SHeader, YAMLSec);
1081 Expected<uint64_t> emitDWARF(typename ELFT::Shdr &SHeader, StringRef Name,
1101 void ELFState<ELFT>::initDWARFSectionHeader(Elf_Shdr &SHeader, StringRef Name,
1104 SHeader.sh_name = getSectionNameOffset(ELFYAML::dropUniqueSuffix(Name));
1105 SHeader.sh_type = YAMLSec ? YAMLSec->Type : ELF::SHT_PROGBITS;
1106 SHeader.sh_addralign = YAMLSec ? (uint64_t)YAMLSec->AddressAlign : 1;
1107 SHeader.sh_offset = alignToOffset(CBA, SHeader.sh_addralign,
1119 emitDWARF<ELFT>(SHeader, Name, *Doc.DWARF, CBA))
1120 SHeader.sh_size = *ShSizeOrErr;
1125 SHeader.sh_size = writeContent(CBA, RawSec->Content, RawSec->Size);
1131 SHeader.sh_info = *RawSec->Info;
1134 SHeader.sh_flags = *YAMLSec->Flags;
1136 SHeader.sh_flags = ELF::SHF_MERGE | ELF::SHF_STRINGS;
1138 assignSectionAddress(SHeader, YAMLSec);
1244 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1250 SHeader.sh_size = *S.Size;
1261 Elf_Shdr &SHeader, const ELFYAML::RawContentSection &Section,
1264 SHeader.sh_info = *Section.Info;
1275 Elf_Shdr &SHeader, const ELFYAML::RelocationSection &Section,
1283 SHeader.sh_info = toSectionIndex(Section.RelocatableSec, Section.Name);
1351 SHeader.sh_size = CBA.getOffset() - CurrentOffset;
1355 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1368 SHeader.sh_size = sizeof(uintX_t) * Section.Entries->size();
1373 Elf_Shdr &SHeader, const ELFYAML::SymtabShndxSection &Shndx,
1376 SHeader.sh_size = writeContent(CBA, Shndx.Content, Shndx.Size);
1385 SHeader.sh_size = Shndx.Entries->size() * SHeader.sh_entsize;
1389 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1396 SHeader.sh_info =
1410 SHeader.sh_size = SHeader.sh_entsize * Section.Members->size();
1414 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1422 SHeader.sh_size = Section.Entries->size() * SHeader.sh_entsize;
1427 Elf_Shdr &SHeader, const ELFYAML::StackSizesSection &Section,
1434 SHeader.sh_size += sizeof(uintX_t) + CBA.writeULEB128(E.Size);
1440 Elf_Shdr &SHeader, const ELFYAML::BBAddrMapSection &Section,
1468 SHeader.sh_size += 2;
1488 SHeader.sh_size += CBA.writeULEB128(NumBBRanges);
1501 SHeader.sh_size += sizeof(uintX_t) + CBA.writeULEB128(NumBlocks);
1508 SHeader.sh_size += CBA.writeULEB128(BBE.ID);
1509 SHeader.sh_size += CBA.writeULEB128(BBE.AddressOffset);
1510 SHeader.sh_size += CBA.writeULEB128(BBE.Size);
1511 SHeader.sh_size += CBA.writeULEB128(BBE.Metadata);
1519 SHeader.sh_size += CBA.writeULEB128(*PGOEntry.FuncEntryCount);
1535 SHeader.sh_size += CBA.writeULEB128(*PGOBBE.BBFreq);
1537 SHeader.sh_size += CBA.writeULEB128(PGOBBE.Successors->size());
1539 SHeader.sh_size += CBA.writeULEB128(ID);
1540 SHeader.sh_size += CBA.writeULEB128(BrProb);
1549 Elf_Shdr &SHeader, const ELFYAML::LinkerOptionsSection &Section,
1559 SHeader.sh_size += (LO.Key.size() + LO.Value.size() + 2);
1565 Elf_Shdr &SHeader, const ELFYAML::DependentLibrariesSection &Section,
1573 SHeader.sh_size += Lib.size() + 1;
1603 Elf_Shdr &SHeader, const ELFYAML::CallGraphProfileSection &Section,
1610 SHeader.sh_size += sizeof(object::Elf_CGProfile_Impl<ELFT>);
1615 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1633 SHeader.sh_size = (2 + Section.Bucket->size() + Section.Chain->size()) * 4;
1637 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1642 SHeader.sh_info = *Section.Info;
1644 SHeader.sh_info = Section.Entries->size();
1678 SHeader.sh_size = Section.Entries->size() * sizeof(Elf_Verdef) +
1683 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1687 SHeader.sh_info = *Section.Info;
1689 SHeader.sh_info = Section.VerneedV->size();
1726 SHeader.sh_size = Section.VerneedV->size() * sizeof(Elf_Verneed) +
1732 Elf_Shdr &SHeader, const ELFYAML::ARMIndexTableSection &Section,
1741 SHeader.sh_size = Section.Entries->size() * 8;
1745 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1753 SHeader.sh_size = SHeader.sh_entsize;
1770 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1783 SHeader.sh_size = 2 * sizeof(uintX_t) * Section.Entries->size();
1787 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1794 SHeader.sh_size +=
1799 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1836 SHeader.sh_size = CBA.tell() - Offset;
1840 void ELFState<ELFT>::writeSectionContent(Elf_Shdr &SHeader,
1884 SHeader.sh_size = 16 /*Header size*/ +