diff options
author | Alexandre Ganea <alexandre.ganea@legionlabs.com> | 2022-01-20 14:53:18 -0500 |
---|---|---|
committer | Alexandre Ganea <alexandre.ganea@legionlabs.com> | 2022-01-20 14:53:26 -0500 |
commit | 83d59e05b201760e3f364ff6316301d347cbad95 (patch) | |
tree | fb59567dc25a7a313af89e4885d6b82b28902a7b /lld/ELF/SyntheticSections.cpp | |
parent | 57ebfea38c03e5cd2d0677eabd2abf761b336097 (diff) | |
download | llvm-83d59e05b201760e3f364ff6316301d347cbad95.zip llvm-83d59e05b201760e3f364ff6316301d347cbad95.tar.gz llvm-83d59e05b201760e3f364ff6316301d347cbad95.tar.bz2 |
Re-land [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
The previous land f860fe362282ed69b9d4503a20e5d20b9a041189 caused issues in https://lab.llvm.org/buildbot/#/builders/123/builds/8383, fixed by 22ee510dac9440a74b2e5b3fe3ff13ccdbf55af3.
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 c1eb53e..87f4269 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, |