/freebsd/contrib/llvm-project/lld/ELF/ |
H A D | OutputSections.h | 36 class OutputSection final : public SectionBase { 38 OutputSection(StringRef name, uint32_t type, uint64_t flags); 64 OutputSection *relocationSection = nullptr; 137 OutputSection osec; 148 InputSection *getFirstInputSection(const OutputSection *os); 150 getInputSections(const OutputSection &os, 159 static OutputSection *elfHeader; 160 static OutputSection *programHeaders; 161 static OutputSection *preinitArray; 162 static OutputSection *initArray; [all …]
|
H A D | OutputSections.cpp | 44 OutputSection *Out::elfHeader; 45 OutputSection *Out::programHeaders; 46 OutputSection *Out::preinitArray; 47 OutputSection *Out::initArray; 48 OutputSection *Out::finiArray; 50 SmallVector<OutputSection *, 0> elf::outputSections; 52 uint32_t OutputSection::getPhdrFlags() const { in getPhdrFlags() 64 void OutputSection::writeHeaderTo(typename ELFT::Shdr *shdr) { in writeHeaderTo() 77 OutputSection::OutputSection(StringRef name, uint32_t type, uint64_t flags) in OutputSection() function in OutputSection 105 void OutputSection::recordSection(InputSectionBase *isec) { in recordSection() [all …]
|
H A D | Writer.h | 18 class OutputSection; variable 29 void add(OutputSection *sec); 40 OutputSection *firstSec = nullptr; 41 OutputSection *lastSec = nullptr; 49 unsigned getSectionRank(OutputSection &osec);
|
H A D | Writer.cpp | 87 void addStartStopSymbols(OutputSection &osec); 112 for (OutputSection *sec : outputSections) in removeEmptyPTLoad() 295 static OutputSection *findSection(StringRef name, unsigned partition = 1) { in findSection() 314 for (OutputSection *sec : outputSections) in run() 503 OutputSection &osec = osd->osec; in addSectionSymbols() 544 static bool isRelroSection(const OutputSection *sec) { in isRelroSection() 647 unsigned elf::getSectionRank(OutputSection &osec) { in getSectionRank() 768 const OutputSection *a = &cast<OutputDesc>(aCmd)->osec; in compareSections() 769 const OutputSection *b = &cast<OutputDesc>(bCmd)->osec; in compareSections() 780 void PhdrEntry::add(OutputSection *sec) { in add() [all …]
|
H A D | LinkerScript.h | 34 class OutputSection; variable 284 OutputSection *outSec = nullptr; 302 const OutputSection &outCmd); 304 SmallVector<InputSectionBase *, 0> createInputSectionList(OutputSection &cmd); 306 void discardSynthetic(OutputSection &); 308 SmallVector<size_t, 0> getPhdrIndices(OutputSection *sec); 311 findMemoryRegion(OutputSection *sec, MemoryRegion *hint); 313 bool assignOffsets(OutputSection *sec); 323 OutputSection *aether; 347 std::pair<const OutputSection *, const Defined *> assignAddresses();
|
H A D | LinkerScript.cpp | 59 OutputSection *out = rel->getOutputSection(); in getOutputSectionName() 356 const OutputSection &sec = cast<OutputDesc>(cmd)->osec; in declareSymbols() 494 const OutputSection &outCmd) { in computeInputSections() 624 void LinkerScript::discardSynthetic(OutputSection &outCmd) { in discardSynthetic() 639 LinkerScript::createInputSectionList(OutputSection &outCmd) { in createInputSectionList() 655 auto process = [this](OutputSection *osec) { in processSectionCommands() 706 OutputSection *osec = &osd->osec; in processSectionCommands() 713 OutputSection *osec = &osd->osec; in processSectionCommands() 736 aether = make<OutputSection>("", 0, SHF_ALLOC); in processSymbolAssignments() 758 static OutputSection *findByName(ArrayRef<SectionCommand *> vec, in findByName() [all …]
|
H A D | Relocations.h | 22 class OutputSection; variable 150 void hexagonTLSSymbolUpdate(ArrayRef<OutputSection *> outputSections); 151 bool hexagonNeedsTLSSymbol(ArrayRef<OutputSection *> outputSections); 160 bool createThunks(uint32_t pass, ArrayRef<OutputSection *> outputSections); 163 void mergeThunks(ArrayRef<OutputSection *> outputSections); 165 ThunkSection *getISDThunkSec(OutputSection *os, InputSection *isec, 171 void createInitialThunkSections(ArrayRef<OutputSection *> outputSections); 176 ThunkSection *addThunkSection(OutputSection *os, InputSectionDescription *,
|
H A D | Relocations.cpp | 385 OutputSection *osec = (isRO ? in.bssRelRo : in.bss)->getParent(); in addCopyRelSymbol() 1903 ArrayRef<OutputSection *> outputSections, in forEachInputSectionDescription() 1904 llvm::function_ref<void(OutputSection *, InputSectionDescription *)> fn) { in forEachInputSectionDescription() argument 1905 for (OutputSection *os : outputSections) { in forEachInputSectionDescription() 2005 void ThunkCreator::mergeThunks(ArrayRef<OutputSection *> outputSections) { in mergeThunks() 2007 outputSections, [&](OutputSection *os, InputSectionDescription *isd) { in mergeThunks() 2057 ThunkSection *ThunkCreator::getISDThunkSec(OutputSection *os, in getISDThunkSec() 2099 OutputSection *tos = isec->getParent(); in getISThunkSec() 2136 ArrayRef<OutputSection *> outputSections) { in createInitialThunkSections() 2140 outputSections, [&](OutputSection *os, InputSectionDescription *isd) { in createInitialThunkSections() [all …]
|
H A D | InputSection.h | 34 class OutputSection; variable 97 OutputSection *getOutputSection(); 98 const OutputSection *getOutputSection() const { in getOutputSection() 415 OutputSection *getParent() const { in getParent() 416 return reinterpret_cast<OutputSection *>(parent); in getParent()
|
H A D | MapFile.cpp | 97 OutputSection *osec = syms[i]->getOutputSection(); in getSymbolStrings() 140 const OutputSection *osec = sec->getOutputSection(); in printEhFrame() 160 OutputSection *osec = nullptr; in writeMapFile()
|
H A D | ScriptParser.cpp | 95 bool readSectionDirective(OutputSection *cmd, StringRef tok); 96 void readSectionAddressType(OutputSection *cmd); 581 OutputSection *prev = nullptr; in readOverlay() 876 bool ScriptParser::readSectionDirective(OutputSection *cmd, StringRef tok) { in readSectionDirective() 918 void ScriptParser::readSectionAddressType(OutputSection *cmd) { in readSectionAddressType() 968 OutputSection *osec = &cmd->osec; in readOutputSectionDescription() 1411 static void checkIfExists(const OutputSection &osec, StringRef location) { in checkIfExists() 1455 OutputSection *osec = &script->getOrCreateOutputSection(name)->osec; in readPrimary() 1480 OutputSection *osec = &script->getOrCreateOutputSection(name)->osec; in readPrimary() 1541 OutputSection *osec = &script->getOrCreateOutputSection(name)->osec; in readPrimary() [all …]
|
/freebsd/contrib/llvm-project/lld/MachO/ |
H A D | OutputSegment.h | 38 class OutputSection; variable 43 void addOutputSection(OutputSection *os); 47 const std::vector<OutputSection *> &getSections() const { return sections; } in getSections() 65 std::vector<OutputSection *> sections;
|
H A D | OutputSection.h | 35 class OutputSection { 42 OutputSection(Kind kind, StringRef name) : name(name), sectionKind(kind) {} in OutputSection() function 43 virtual ~OutputSection() = default;
|
H A D | ConcatOutputSection.h | 26 class ConcatOutputSection : public OutputSection { 29 : OutputSection(ConcatKind, name) {} in ConcatOutputSection() 48 static bool classof(const OutputSection *sec) { in classof()
|
H A D | OutputSection.cpp | 16 uint64_t OutputSection::getSegmentOffset() const { return addr - parent->addr; } in getSegmentOffset() 18 void OutputSection::assignAddressesToStartEndSymbols() { in assignAddressesToStartEndSymbols()
|
H A D | Writer.h | 16 class OutputSection; variable 36 extern OutputSection *firstTLVDataSection;
|
H A D | OutputSegment.cpp | 55 for (const OutputSection *osec : sections) in numNonHiddenSections() 60 void OutputSegment::addOutputSection(OutputSection *osec) { in addOutputSection() 88 static int sectionOrder(OutputSection *osec) { in sectionOrder() 155 llvm::stable_sort(sections, compareByOrder<OutputSection *>(sectionOrder)); in sortOutputSections()
|
H A D | MapFile.cpp | 58 DenseMap<const OutputSection *, 138 const OutputSection *osec, size_t entrySize) { in printStubsEntries() 198 for (OutputSection *osec : seg->getSections()) { in writeMapFile() 222 for (const OutputSection *osec : seg->getSections()) { in writeMapFile()
|
/freebsd/contrib/llvm-project/lld/COFF/ |
H A D | Writer.cpp | 103 const OutputSection *os = ctx.getOutputSection(c); in writeTo() 226 bool createThunks(OutputSection *os, int margin); 269 OutputSection *findSection(StringRef name); 306 OutputSection *textSec; 307 OutputSection *rdataSec; 308 OutputSection *buildidSec; 309 OutputSection *dataSec; 310 OutputSection *pdataSec; 311 OutputSection *idataSec; 312 OutputSection *edataSec; [all …]
|
H A D | Writer.h | 34 // OutputSection represents a section in an output file. It's a 35 // container of chunks. OutputSection and Chunk are 1:N relationship. 39 class OutputSection { 41 OutputSection(llvm::StringRef n, uint32_t chars) : name(n) { in OutputSection() function 46 void merge(OutputSection *other);
|
H A D | COFFLinkerContext.h | 52 std::vector<OutputSection *> outputSections; 54 OutputSection *getOutputSection(const Chunk *c) const { in getOutputSection()
|
H A D | Chunks.cpp | 77 static bool checkSecRel(const SectionChunk *sec, OutputSection *os) { in checkSecRel() 87 OutputSection *os, uint64_t s) { in applySecRel() 98 static void applySecIdx(uint8_t *off, OutputSection *os, in applySecIdx() 113 void SectionChunk::applyRelX64(uint8_t *off, uint16_t type, OutputSection *os, in applyRelX64() 140 void SectionChunk::applyRelX86(uint8_t *off, uint16_t type, OutputSection *os, in applyRelX86() 208 void SectionChunk::applyRelARM(uint8_t *off, uint16_t type, OutputSection *os, in applyRelARM() 283 OutputSection *os, uint64_t s) { in applySecRelLow12A() 289 OutputSection *os, uint64_t s) { in applySecRelHigh12A() 302 OutputSection *os, uint64_t s) { in applySecRelLdr() 325 void SectionChunk::applyRelARM64(uint8_t *off, uint16_t type, OutputSection *os, in applyRelARM64() [all …]
|
H A D | Chunks.h | 39 class OutputSection; variable 269 void applyRelX64(uint8_t *off, uint16_t type, OutputSection *os, uint64_t s, 271 void applyRelX86(uint8_t *off, uint16_t type, OutputSection *os, uint64_t s, 273 void applyRelARM(uint8_t *off, uint16_t type, OutputSection *os, uint64_t s, 275 void applyRelARM64(uint8_t *off, uint16_t type, OutputSection *os, uint64_t s,
|
/freebsd/contrib/llvm-project/llvm/lib/InterfaceStub/ |
H A D | ELFObjHandler.cpp | 75 template <class ELFT> struct OutputSection { struct 88 struct ContentSection : public OutputSection<ELFT> { 200 std::vector<OutputSection<ELFT> *> Sections = {&DynSym, &DynStr, &DynTab, in ELFStubBuilder() 202 const OutputSection<ELFT> *LastSection = Sections.back(); in ELFStubBuilder() 205 for (OutputSection<ELFT> *Sec : Sections) { in ELFStubBuilder() 239 for (OutputSection<ELFT> *Sec : Sections) { in ELFStubBuilder() 330 uint64_t shdrOffset(const OutputSection<ELFT> &Sec) const { in shdrOffset() 334 void writeShdr(uint8_t *Data, const OutputSection<ELFT> &Sec) const { in writeShdr()
|
/freebsd/contrib/llvm-project/lld/docs/ELF/ |
H A D | linker_script.rst | 90 When an *OutputSection* *S* has ``address``, LLD will set sh_addr to ``address``. 113 When an *OutputSection* *S* has ``(type)``, LLD will set ``sh_type`` or 128 sh_addralign of an *OutputSection* *S* is the maximum of 132 When an *OutputSection* *S* has both ``address`` and ``ALIGN(section_align)``, 148 the previous OutputSection a new loadable segment will be generated.
|