Index: ELF/Driver.cpp =================================================================== --- ELF/Driver.cpp +++ ELF/Driver.cpp @@ -41,6 +41,7 @@ bool elf::link(ArrayRef Args, raw_ostream &Error) { HasError = false; ErrorOS = &Error; + Argv0 = Args[0]; Configuration C; LinkerDriver D; Index: ELF/Error.h =================================================================== --- ELF/Error.h +++ ELF/Error.h @@ -33,6 +33,7 @@ extern bool HasError; extern llvm::raw_ostream *ErrorOS; +extern llvm::StringRef Argv0; void log(const Twine &Msg); void warn(const Twine &Msg); Index: ELF/Error.cpp =================================================================== --- ELF/Error.cpp +++ ELF/Error.cpp @@ -20,21 +20,22 @@ 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; } @@ -43,7 +44,7 @@ } void elf::fatal(const Twine &Msg) { - *ErrorOS << "error: " << Msg << "\n"; + *ErrorOS << Argv0 << ": error: " << Msg << "\n"; exit(1); } Index: test/ELF/copy-rel-corrupted.s =================================================================== --- test/ELF/copy-rel-corrupted.s +++ test/ELF/copy-rel-corrupted.s @@ -1,7 +1,7 @@ // 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 Index: test/ELF/driver.test =================================================================== --- test/ELF/driver.test +++ test/ELF/driver.test @@ -52,6 +52,9 @@ # RUN: not ld.lld %t -output=/no/such/file 2>&1 | FileCheck -check-prefix=ERR8 %s # ERR8: failed to open utput=/no/such/file +# RUN: not ld.lld 2>&1 | FileCheck -check-prefix=ERR9 %s +# ERR9: ld.lld{{.*}}: error: no input files + .globl _start _start: nop Index: test/ELF/entry.s =================================================================== --- test/ELF/entry.s +++ test/ELF/entry.s @@ -2,9 +2,9 @@ # 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 Index: test/ELF/linkerscript/diagnostic.s =================================================================== --- test/ELF/linkerscript/diagnostic.s +++ test/ELF/linkerscript/diagnostic.s @@ -52,7 +52,7 @@ # 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 @@ -63,4 +63,4 @@ # 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