This is what other linkers and clang driver do.
Differential Revision: https://reviews.llvm.org/D25780
llvm-svn: 284634
bool elf::link(ArrayRef<const char *> Args, raw_ostream &Error) {
HasError = false;
ErrorOS = &Error;
+ Argv0 = Args[0];
Configuration C;
LinkerDriver D;
bool elf::HasError;
raw_ostream *elf::ErrorOS;
+StringRef elf::Argv0;
void elf::log(const Twine &Msg) {
if (Config->Verbose)
- outs() << Msg << "\n";
+ outs() << Argv0 << ": " << Msg << "\n";
}
void elf::warn(const Twine &Msg) {
if (Config->FatalWarnings)
error(Msg);
else
- *ErrorOS << "warning: " << Msg << "\n";
+ *ErrorOS << Argv0 << ": warning: " << Msg << "\n";
}
void elf::error(const Twine &Msg) {
- *ErrorOS << "error: " << Msg << "\n";
+ *ErrorOS << Argv0 << ": error: " << Msg << "\n";
HasError = true;
}
}
void elf::fatal(const Twine &Msg) {
- *ErrorOS << "error: " << Msg << "\n";
+ *ErrorOS << Argv0 << ": error: " << Msg << "\n";
exit(1);
}
extern bool HasError;
extern llvm::raw_ostream *ErrorOS;
+extern llvm::StringRef Argv0;
void log(const Twine &Msg);
void warn(const Twine &Msg);
# RUN: not ld.lld -o %t2 2>&1 | \
# RUN: FileCheck --check-prefix=NO_INPUT %s
-# NO_INPUT: no input files
+# NO_INPUT: ld.lld{{.*}}: no input files
# RUN: not ld.lld %t.no.such.file -o %t2 2>&1 | \
# RUN: FileCheck --check-prefix=CANNOT_OPEN %s
// RUN: llvm-mc %s -o %t.o -filetype=obj -triple=x86_64-pc-linux
// RUN: llvm-mc %p/Inputs/copy-rel-corrupted.s -o %t2.o -filetype=obj -triple=x86_64-pc-linux
// RUN: ld.lld %t2.o -o %t2.so -shared
-// RUN: not ld.lld %t.o %t2.so -o %t.exe 2>&1 | FileCheck %s --match-full-lines
+// RUN: not ld.lld %t.o %t2.so -o %t.exe 2>&1 | FileCheck %s
// CHECK: error: cannot create a copy relocation for symbol x
# RUN: ld.lld -e foobar %t1 -o %t2 2>&1 | FileCheck -check-prefix=WARN %s
# RUN: llvm-readobj -file-headers %t2 | FileCheck -check-prefix=NOENTRY %s
-# RUN: ld.lld %t1 -o %t2 2>&1 | FileCheck -check-prefix=WARN2 %s --match-full-lines
+# RUN: ld.lld %t1 -o %t2 2>&1 | FileCheck -check-prefix=WARN2 %s
-# RUN: ld.lld -shared -e foobar %t1 -o %t2 2>&1 | FileCheck -check-prefix=WARN --match-full-lines %s
+# RUN: ld.lld -shared -e foobar %t1 -o %t2 2>&1 | FileCheck -check-prefix=WARN %s
# RUN: ld.lld -shared --fatal-warnings -e entry %t1 -o %t2
# RUN: ld.lld -shared --fatal-warnings %t1 -o %t2
# RUN: FileCheck -check-prefix=ERR6 %s < %t.log
# ERR6: line 1:
# ERR6-NEXT: UNKNOWN_TAG {
-# RUN: grep '^error: ^' %t.log
+# RUN: grep 'error: ^' %t.log
## One more check that text of lines and pointer to 'bad' token are working ok.
# RUN: echo "SECTIONS {" > %t.script
# RUN: FileCheck -check-prefix=ERR7 %s < %t.log
# ERR7: line 4: malformed number: .temp
# ERR7-NEXT: boom .temp : { *(.temp) } }
-# RUN: grep '^error: ^' %t.log
+# RUN: grep 'error: ^' %t.log