diff options
author | Alexandre Ganea <alexandre.ganea@legionlabs.com> | 2022-01-15 21:47:54 -0500 |
---|---|---|
committer | Alexandre Ganea <alexandre.ganea@legionlabs.com> | 2022-01-16 08:57:57 -0500 |
commit | f860fe362282ed69b9d4503a20e5d20b9a041189 (patch) | |
tree | 1f85d88798f7bd31cae0059d71c3c7817333afd6 /lld/ELF/SyntheticSections.cpp | |
parent | 070d1034da87c94d86d1a61245ecf068141fdf14 (diff) | |
download | llvm-f860fe362282ed69b9d4503a20e5d20b9a041189.zip llvm-f860fe362282ed69b9d4503a20e5d20b9a041189.tar.gz llvm-f860fe362282ed69b9d4503a20e5d20b9a041189.tar.bz2 |
[LLD] Remove global state in lldCommon
Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers will inherit from this structure and add their own global state, in the same way as for the existing COFFLinkerContext.
See discussion in https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html
Differential Revision: https://reviews.llvm.org/D108850
Diffstat (limited to 'lld/ELF/SyntheticSections.cpp')
-rw-r--r-- | lld/ELF/SyntheticSections.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp index aef6434..6ac1fc3 100644 --- a/lld/ELF/SyntheticSections.cpp +++ b/lld/ELF/SyntheticSections.cpp @@ -22,9 +22,8 @@ #include "Symbols.h" #include "Target.h" #include "Writer.h" +#include "lld/Common/CommonLinkerContext.h" #include "lld/Common/DWARF.h" -#include "lld/Common/ErrorHandler.h" -#include "lld/Common/Memory.h" #include "lld/Common/Strings.h" #include "lld/Common/Version.h" #include "llvm/ADT/SetOperations.h" @@ -73,7 +72,7 @@ static ArrayRef<uint8_t> getVersion() { // This is only for testing. StringRef s = getenv("LLD_VERSION"); if (s.empty()) - s = saver.save(Twine("Linker: ") + getLLDVersion()); + s = saver().save(Twine("Linker: ") + getLLDVersion()); // +1 to include the terminating '\0'. return {(const uint8_t *)s.data(), s.size() + 1}; @@ -255,7 +254,7 @@ MipsReginfoSection<ELFT> *MipsReginfoSection<ELFT>::create() { InputSection *elf::createInterpSection() { // StringSaver guarantees that the returned string ends with '\0'. - StringRef s = saver.save(config->dynamicLinker); + StringRef s = saver().save(config->dynamicLinker); ArrayRef<uint8_t> contents = {(const uint8_t *)s.data(), s.size() + 1}; return make<InputSection>(nullptr, SHF_ALLOC, SHT_PROGBITS, 1, contents, |