diff options
-rw-r--r-- | lld/COFF/Driver.cpp | 2 | ||||
-rw-r--r-- | lld/Common/Args.cpp | 7 | ||||
-rw-r--r-- | lld/ELF/Driver.cpp | 2 | ||||
-rw-r--r-- | lld/include/lld/Common/Args.h | 3 | ||||
-rw-r--r-- | lld/lib/Driver/DarwinLdDriver.cpp | 2 | ||||
-rw-r--r-- | lld/test/ELF/lto-plugin-ignore.s | 4 | ||||
-rw-r--r-- | lld/wasm/Driver.cpp | 2 |
7 files changed, 16 insertions, 6 deletions
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index 02cff8fd5d3..4462e6e6c78 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -56,7 +56,7 @@ Configuration *Config; LinkerDriver *Driver; bool link(ArrayRef<const char *> Args, bool CanExitEarly, raw_ostream &Diag) { - errorHandler().LogName = sys::path::filename(Args[0]); + errorHandler().LogName = args::FilenameWithoutExe(Args[0]); errorHandler().ErrorOS = &Diag; errorHandler().ColorDiagnostics = Diag.has_colors(); errorHandler().ErrorLimitExceededMsg = diff --git a/lld/Common/Args.cpp b/lld/Common/Args.cpp index ff77bfcc3b7..4f46ba625c3 100644 --- a/lld/Common/Args.cpp +++ b/lld/Common/Args.cpp @@ -13,6 +13,7 @@ #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/StringRef.h" #include "llvm/Option/ArgList.h" +#include "llvm/Support/Path.h" using namespace llvm; using namespace lld; @@ -64,3 +65,9 @@ std::vector<StringRef> lld::args::getLines(MemoryBufferRef MB) { } return Ret; } + +StringRef lld::args::FilenameWithoutExe(StringRef Path) { + if (Path.endswith_lower(".exe")) + return sys::path::stem(Path); + return sys::path::filename(Path); +} diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 28992a754ee..6aaf8d777c1 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -74,7 +74,7 @@ static void setConfigs(opt::InputArgList &Args); bool elf::link(ArrayRef<const char *> Args, bool CanExitEarly, raw_ostream &Error) { - errorHandler().LogName = sys::path::filename(Args[0]); + errorHandler().LogName = args::FilenameWithoutExe(Args[0]); errorHandler().ErrorLimitExceededMsg = "too many errors emitted, stopping now (use " "-error-limit=0 to see all errors)"; diff --git a/lld/include/lld/Common/Args.h b/lld/include/lld/Common/Args.h index c49a6a7e17e..75ad2e0cd96 100644 --- a/lld/include/lld/Common/Args.h +++ b/lld/include/lld/Common/Args.h @@ -29,6 +29,9 @@ uint64_t getZOptionValue(llvm::opt::InputArgList &Args, int Id, StringRef Key, uint64_t Default); std::vector<StringRef> getLines(MemoryBufferRef MB); + +StringRef FilenameWithoutExe(StringRef Path); + } // namespace args } // namespace lld diff --git a/lld/lib/Driver/DarwinLdDriver.cpp b/lld/lib/Driver/DarwinLdDriver.cpp index ad22845207e..ef494670124 100644 --- a/lld/lib/Driver/DarwinLdDriver.cpp +++ b/lld/lib/Driver/DarwinLdDriver.cpp @@ -1143,7 +1143,7 @@ static void createFiles(MachOLinkingContext &ctx, bool Implicit) { /// This is where the link is actually performed. bool link(llvm::ArrayRef<const char *> args, bool CanExitEarly, raw_ostream &Error) { - errorHandler().LogName = llvm::sys::path::filename(args[0]); + errorHandler().LogName = args::FilenameWithoutExe(args[0]); errorHandler().ErrorLimitExceededMsg = "too many errors emitted, stopping now (use " "'-error-limit 0' to see all errors)"; diff --git a/lld/test/ELF/lto-plugin-ignore.s b/lld/test/ELF/lto-plugin-ignore.s index 65230f1567e..d107408a0c6 100644 --- a/lld/test/ELF/lto-plugin-ignore.s +++ b/lld/test/ELF/lto-plugin-ignore.s @@ -6,5 +6,5 @@ # RUN: -plugin-opt=-data-sections -plugin-opt=thinlto -o /dev/null # RUN: not ld.lld %t -plugin-opt=-abc -plugin-opt=-xyz 2>&1 | FileCheck %s -# CHECK: error: --plugin-opt: ld.lld{{.*}}: Unknown command line argument '-abc' -# CHECK: error: --plugin-opt: ld.lld{{.*}}: Unknown command line argument '-xyz' +# CHECK: error: --plugin-opt: ld.lld: Unknown command line argument '-abc' +# CHECK: error: --plugin-opt: ld.lld: Unknown command line argument '-xyz' diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp index 0f552f76619..b443ee04e23 100644 --- a/lld/wasm/Driver.cpp +++ b/lld/wasm/Driver.cpp @@ -78,7 +78,7 @@ private: bool lld::wasm::link(ArrayRef<const char *> Args, bool CanExitEarly, raw_ostream &Error) { - errorHandler().LogName = sys::path::filename(Args[0]); + errorHandler().LogName = args::FilenameWithoutExe(Args[0]); errorHandler().ErrorOS = &Error; errorHandler().ColorDiagnostics = Error.has_colors(); errorHandler().ErrorLimitExceededMsg = |