diff options
author | Alexandre Ganea <alexandre.ganea@legionlabs.com> | 2022-01-16 11:03:06 -0500 |
---|---|---|
committer | Alexandre Ganea <alexandre.ganea@legionlabs.com> | 2022-01-16 11:03:06 -0500 |
commit | e6b153947dfae5d666c4bac56b10ee82ddb173c4 (patch) | |
tree | 3401901ddd583e31e5c601b71a8d5a31f62ff3a3 /lld/MinGW/Driver.cpp | |
parent | 30a4020a7db866990199f523a60ad474d7ec3efa (diff) | |
download | llvm-e6b153947dfae5d666c4bac56b10ee82ddb173c4.zip llvm-e6b153947dfae5d666c4bac56b10ee82ddb173c4.tar.gz llvm-e6b153947dfae5d666c4bac56b10ee82ddb173c4.tar.bz2 |
Revert [LLD] Remove global state in lldCommon
It seems to be causing issues on https://lab.llvm.org/buildbot/#/builders/123/builds/8383
Diffstat (limited to 'lld/MinGW/Driver.cpp')
-rw-r--r-- | lld/MinGW/Driver.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp index f0ac5ee..7c6b865 100644 --- a/lld/MinGW/Driver.cpp +++ b/lld/MinGW/Driver.cpp @@ -100,7 +100,7 @@ opt::InputArgList MinGWOptTable::parse(ArrayRef<const char *> argv) { unsigned missingCount; SmallVector<const char *, 256> vec(argv.data(), argv.data() + argv.size()); - cl::ExpandResponseFiles(saver(), getQuotingStyle(), vec); + cl::ExpandResponseFiles(saver, getQuotingStyle(), vec); opt::InputArgList args = this->ParseArgs(vec, missingIndex, missingCount); if (missingCount) @@ -154,10 +154,12 @@ searchLibrary(StringRef name, ArrayRef<StringRef> searchPaths, bool bStatic) { // Convert Unix-ish command line arguments to Windows-ish ones and // then call coff::link. -bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &stdoutOS, - raw_ostream &stderrOS, bool exitEarly, bool disableOutput) { - auto *ctx = new CommonLinkerContext; - ctx->e.initialize(stdoutOS, stderrOS, exitEarly, disableOutput); +bool mingw::link(ArrayRef<const char *> argsArr, bool canExitEarly, + raw_ostream &stdoutOS, raw_ostream &stderrOS) { + lld::stdoutOS = &stdoutOS; + lld::stderrOS = &stderrOS; + + stderrOS.enable_colors(stderrOS.has_colors()); MinGWOptTable parser; opt::InputArgList args = parser.parse(argsArr.slice(1)); @@ -443,9 +445,5 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &stdoutOS, // Pass the actual binary name, to make error messages be printed with // the right prefix. vec[0] = argsArr[0]; - - // The context will be re-created in the COFF driver. - lld::CommonLinkerContext::destroy(); - - return coff::link(vec, stdoutOS, stderrOS, exitEarly, disableOutput); + return coff::link(vec, canExitEarly, stdoutOS, stderrOS); } |