Lines Matching defs:part
68 SmallVector<std::unique_ptr<PhdrEntry>, 0> createPhdrs(Partition &part);
69 void addPhdrForSection(Partition &part, unsigned shType, unsigned pType,
73 void setPhdrs(Partition &part);
126 for (unsigned part = 2; part != ctx.partitions.size() + 1; ++part) {
131 copy->partition = part;
137 copy->partition = part;
338 for (Partition &part : ctx.partitions)
339 removeEmptyPTLoad(ctx, part.phdrs);
346 for (Partition &part : ctx.partitions)
347 setPhdrs(part);
859 for (Partition &part : ctx.partitions) {
860 for (auto &p : part.phdrs) {
1499 for (Partition &part : ctx.partitions)
1500 finalizeSynthetic(ctx, part.armExidx.get());
1544 for (Partition &part : ctx.partitions) {
1551 if (part.relrAuthDyn) {
1553 part.relrAuthDyn->relocs, [this, &part](const RelativeReloc &elem) {
1557 part.relaDyn->addReloc({R_AARCH64_AUTH_RELATIVE, elem.inputSec,
1563 changed |= (it != part.relrAuthDyn->relocs.end());
1564 part.relrAuthDyn->relocs.erase(it, part.relrAuthDyn->relocs.end());
1566 if (part.relaDyn)
1567 changed |= part.relaDyn->updateAllocSize(ctx);
1568 if (part.relrDyn)
1569 changed |= part.relrDyn->updateAllocSize(ctx);
1570 if (part.relrAuthDyn)
1571 changed |= part.relrAuthDyn->updateAllocSize(ctx);
1572 if (part.memtagGlobalDescriptors)
1573 changed |= part.memtagGlobalDescriptors->updateAllocSize(ctx);
1837 for (Partition &part : ctx.partitions)
1838 finalizeSynthetic(ctx, part.ehFrame.get());
1944 for (Partition &part :
1947 for (const SymbolTableEntry &e : part.dynSymTab->getSymbols())
1949 for (DynamicReloc &reloc : part.relaDyn->relocs)
1952 part.dynSymTab->addSymbol(reloc.sym);
2007 for (Partition &part : ctx.partitions) {
2008 part.phdrs = ctx.script->hasPhdrsCommands() ? ctx.script->createPhdrs()
2009 : createPhdrs(part);
2012 addPhdrForSection(part, SHT_ARM_EXIDX, PT_ARM_EXIDX, PF_R);
2016 addPhdrForSection(part, SHT_MIPS_REGINFO, PT_MIPS_REGINFO, PF_R);
2017 addPhdrForSection(part, SHT_MIPS_OPTIONS, PT_MIPS_OPTIONS, PF_R);
2018 addPhdrForSection(part, SHT_MIPS_ABIFLAGS, PT_MIPS_ABIFLAGS, PF_R);
2021 addPhdrForSection(part, SHT_RISCV_ATTRIBUTES, PT_RISCV_ATTRIBUTES,
2065 for (Partition &part : ctx.partitions) {
2066 if (part.relaDyn) {
2067 part.relaDyn->mergeRels();
2068 // Compute DT_RELACOUNT to be used by part.dynamic.
2069 part.relaDyn->partitionRels();
2070 finalizeSynthetic(ctx, part.relaDyn.get());
2072 if (part.relrDyn) {
2073 part.relrDyn->mergeRels();
2074 finalizeSynthetic(ctx, part.relrDyn.get());
2076 if (part.relrAuthDyn) {
2077 part.relrAuthDyn->mergeRels();
2078 finalizeSynthetic(ctx, part.relrAuthDyn.get());
2081 finalizeSynthetic(ctx, part.dynSymTab.get());
2082 finalizeSynthetic(ctx, part.gnuHashTab.get());
2083 finalizeSynthetic(ctx, part.hashTab.get());
2084 finalizeSynthetic(ctx, part.verDef.get());
2085 finalizeSynthetic(ctx, part.ehFrameHdr.get());
2086 finalizeSynthetic(ctx, part.verSym.get());
2087 finalizeSynthetic(ctx, part.verNeed.get());
2088 finalizeSynthetic(ctx, part.dynamic.get());
2118 // All information needed for OutputSection part of Map file is available.
2244 Writer<ELFT>::createPhdrs(Partition &part) {
2251 unsigned partNo = part.getNumber(ctx);
2266 addHdr(PT_PHDR, PF_R)->add(part.programHeaders->getParent());
2312 // partition end marker (.part.end). It needs to be added to the main
2371 if (OutputSection *sec = part.dynamic->getParent())
2378 if (part.ehFrame->isNeeded() && part.ehFrameHdr &&
2379 part.ehFrame->getParent() && part.ehFrameHdr->getParent())
2380 addHdr(PT_GNU_EH_FRAME, part.ehFrameHdr->getParent()->getPhdrFlags())
2381 ->add(part.ehFrameHdr->getParent());
2444 void Writer<ELFT>::addPhdrForSection(Partition &part, unsigned shType,
2446 unsigned partNo = part.getNumber(ctx);
2455 part.phdrs.push_back(std::move(entry));
2516 for (Partition &part : ctx.partitions) {
2518 for (auto &p : part.phdrs)
2582 for (Partition &part : ctx.partitions)
2583 for (auto &p : part.phdrs)
2637 template <class ELFT> void Writer<ELFT>::setPhdrs(Partition &part) {
2638 for (std::unique_ptr<PhdrEntry> &p : part.phdrs) {
2645 if (part.armExidx && p->p_type == PT_ARM_EXIDX) {
2646 p->p_filesz = part.armExidx->getSize();
2648 p->p_offset = first->offset + part.armExidx->outSecOff;
2649 p->p_vaddr = first->addr + part.armExidx->outSecOff;
2650 p->p_align = part.armExidx->addralign;
2651 if (part.elfHeader)
2652 p->p_offset -= part.elfHeader->getParent()->offset;
2655 p->p_paddr = first->getLMA() + part.armExidx->outSecOff;
2670 if (part.elfHeader)
2671 p->p_offset -= part.elfHeader->getParent()->offset;
2896 for (Partition &part : ctx.partitions) {
2898 for (std::unique_ptr<PhdrEntry> &p : part.phdrs)
2910 for (std::unique_ptr<PhdrEntry> &p : part.phdrs)
2974 for (Partition &part : ctx.partitions)
2975 part.buildId->writeBuildId(ctx.arg.buildIdVector);
3014 for (Partition &part : ctx.partitions)
3015 part.buildId->writeBuildId(output);