From d2bd9e70b16db88a7808ee2280b0a107afbfdd3b Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Wed, 23 Oct 2019 17:52:45 +0000 Subject: Vendor import of stripped lld trunk r375505, the last commit before the upstream Subversion repository was made read-only, and the LLVM project migrated to GitHub: https://llvm.org/svn/llvm-project/lld/trunk@375505 --- ELF/LinkerScript.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'ELF/LinkerScript.h') 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 sectionPatterns; + // Includes InputSections and MergeInputSections. Used temporarily during + // assignment of input sections to output sections. + std::vector sectionBases; + + // Used after the finalizeInputSections() pass. MergeInputSections have been + // merged into MergeSyntheticSections. std::vector 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 + std::vector computeInputSections(const InputSectionDescription *); - std::vector createInputSectionList(OutputSection &cmd); + std::vector createInputSectionList(OutputSection &cmd); std::vector getPhdrIndices(OutputSection *sec); @@ -259,7 +265,7 @@ public: bool hasPhdrsCommands() { return !phdrsCommands.empty(); } uint64_t getDot() { return dot; } - void discard(ArrayRef 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 &phdrs); void processSectionCommands(); + void processSymbolAssignments(); void declareSymbols(); // Used to handle INSERT AFTER statements. -- cgit v1.2.3