aboutsummaryrefslogtreecommitdiff
path: root/lld/MinGW/Driver.cpp
diff options
context:
space:
mode:
authorAlexandre Ganea <alexandre.ganea@legionlabs.com>2022-01-16 11:03:06 -0500
committerAlexandre Ganea <alexandre.ganea@legionlabs.com>2022-01-16 11:03:06 -0500
commite6b153947dfae5d666c4bac56b10ee82ddb173c4 (patch)
tree3401901ddd583e31e5c601b71a8d5a31f62ff3a3 /lld/MinGW/Driver.cpp
parent30a4020a7db866990199f523a60ad474d7ec3efa (diff)
downloadllvm-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.cpp18
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);
}