diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-10-23 17:52:45 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-10-23 17:52:45 +0000 |
commit | d2bd9e70b16db88a7808ee2280b0a107afbfdd3b (patch) | |
tree | 12612d2c593445b297ac656911c9db7cf9065bdd /ELF/LinkerScript.h | |
parent | f1e1c239e31b467e17f1648b1f524fc9ab5b431a (diff) | |
download | src-d2bd9e70b16db88a7808ee2280b0a107afbfdd3b.tar.gz src-d2bd9e70b16db88a7808ee2280b0a107afbfdd3b.zip |
Vendor import of stripped lld trunk r375505, the last commit before thevendor/lld/lld-trunk-r375505vendor/lld
upstream Subversion repository was made read-only, and the LLVM project
migrated to GitHub:
https://llvm.org/svn/llvm-project/lld/trunk@375505
Notes
Notes:
svn path=/vendor/lld/dist/; revision=353950
svn path=/vendor/lld/lld-r375505/; revision=353951; tag=vendor/lld/lld-trunk-r375505
Diffstat (limited to 'ELF/LinkerScript.h')
-rw-r--r-- | ELF/LinkerScript.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ELF/LinkerScript.h b/ELF/LinkerScript.h index 9e9c08ef10ba..621b8baeaae6 100644 --- a/ELF/LinkerScript.h +++ b/ELF/LinkerScript.h @@ -168,6 +168,12 @@ struct InputSectionDescription : BaseCommand { // will be associated with this InputSectionDescription. std::vector<SectionPattern> sectionPatterns; + // Includes InputSections and MergeInputSections. Used temporarily during + // assignment of input sections to output sections. + std::vector<InputSectionBase *> sectionBases; + + // Used after the finalizeInputSections() pass. MergeInputSections have been + // merged into MergeSyntheticSections. std::vector<InputSection *> sections; // Temporary record of synthetic ThunkSection instances and the pass that @@ -226,10 +232,10 @@ class LinkerScript final { void expandOutputSection(uint64_t size); void expandMemoryRegions(uint64_t size); - std::vector<InputSection *> + std::vector<InputSectionBase *> computeInputSections(const InputSectionDescription *); - std::vector<InputSection *> createInputSectionList(OutputSection &cmd); + std::vector<InputSectionBase *> createInputSectionList(OutputSection &cmd); std::vector<size_t> getPhdrIndices(OutputSection *sec); @@ -259,7 +265,7 @@ public: bool hasPhdrsCommands() { return !phdrsCommands.empty(); } uint64_t getDot() { return dot; } - void discard(ArrayRef<InputSection *> v); + void discard(InputSectionBase *s); ExprValue getSymbolValue(StringRef name, const Twine &loc); @@ -271,9 +277,10 @@ public: bool needsInterpSection(); bool shouldKeep(InputSectionBase *s); - void assignAddresses(); + const Defined *assignAddresses(); void allocateHeaders(std::vector<PhdrEntry *> &phdrs); void processSectionCommands(); + void processSymbolAssignments(); void declareSymbols(); // Used to handle INSERT AFTER statements. |