<div dir="ltr"><a href="https://reviews.llvm.org/rL307823" rel="noreferrer" target="_blank" style="font-size:16px">https://reviews.llvm.org/<wbr>rL307823</a><br><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 12, 2017 at 10:33 AM, Adrian McCarthy <span dir="ltr"><<a href="mailto:amccarth@google.com" target="_blank">amccarth@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I can take care of this.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 11, 2017 at 7:42 PM, Zachary Turner via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm on vacation at the moment, and while I will be committing sporadically, it will be at least a few days until I can get the fix for this upstreamed.  I believe you can fix it by deleting the last 4 characters on line 209 of the test.  If that works, can you upstream it for me to get the bots green?</div><div class="m_-8632553823753251627HOEnZb"><div class="m_-8632553823753251627h5"><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 11, 2017 at 7:28 PM Galina Kistanova <<a href="mailto:gkistanova@gmail.com" target="_blank">gkistanova@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello Zachary,<br><br>Some of your resent commits broke one of our builders:<br><a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/11043" target="_blank">http://lab.llvm.org:8011/build<wbr>ers/llvm-clang-lld-x86_64-<wbr>scei-ps4-windows10pro-fast/bui<wbr>lds/11043</a><br><br>Failing Tests (1):<br>    lld :: COFF/pdb-diff.test<br><br>Please have a look?<br><br>Thanks</div><div dir="ltr"><br><br>Galina<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 10, 2017 at 2:01 PM, Zachary Turner via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: zturner<br>
Date: Mon Jul 10 14:01:37 2017<br>
New Revision: 307590<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=307590&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=307590&view=rev</a><br>
Log:<br>
[lld/pdb] Add some basic linker module symbols.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D35152" rel="noreferrer" target="_blank">https://reviews.llvm.org/D3515<wbr>2</a><br>
<br>
Added:<br>
    lld/trunk/test/COFF/pdb-linker<wbr>-module.test<br>
Modified:<br>
    lld/trunk/COFF/Config.h<br>
    lld/trunk/COFF/Driver.cpp<br>
    lld/trunk/COFF/Error.cpp<br>
    lld/trunk/COFF/Error.h<br>
    lld/trunk/COFF/PDB.cpp<br>
    lld/trunk/COFF/PDB.h<br>
    lld/trunk/COFF/Writer.cpp<br>
    lld/trunk/ELF/Config.h<br>
    lld/trunk/ELF/Driver.cpp<br>
    lld/trunk/ELF/Error.cpp<br>
    lld/trunk/ELF/Error.h<br>
<br>
Modified: lld/trunk/COFF/Config.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Config.h?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/Config.h?<wbr>rev=307590&r1=307589&r2=307590<wbr>&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/Config.h (original)<br>
+++ lld/trunk/COFF/Config.h Mon Jul 10 14:01:37 2017<br>
@@ -92,6 +92,7 @@ struct Configuration {<br>
   bool WriteSymtab = true;<br>
   unsigned DebugTypes = static_cast<unsigned>(DebugTyp<wbr>e::None);<br>
   llvm::SmallString<128> PDBPath;<br>
+  std::vector<llvm::StringRef> Argv;<br>
<br>
   // Symbols in this set are considered as live by the garbage collector.<br>
   std::set<SymbolBody *> GCRoot;<br>
<br>
Modified: lld/trunk/COFF/Driver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/Driver.cp<wbr>p?rev=307590&r1=307589&r2=3075<wbr>90&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/Driver.cpp (original)<br>
+++ lld/trunk/COFF/Driver.cpp Mon Jul 10 14:01:37 2017<br>
@@ -55,8 +55,8 @@ std::vector<SpecificAllocBase *> Specifi<br>
 bool link(ArrayRef<const char *> Args, raw_ostream &Diag) {<br>
   ErrorCount = 0;<br>
   ErrorOS = &Diag;<br>
-  Argv0 = Args[0];<br>
   Config = make<Configuration>();<br>
+  Config->Argv = {Args.begin(), Args.end()};<br>
   Config->ColorDiagnostics =<br>
       (ErrorOS == &llvm::errs() && Process::StandardErrHasColors(<wbr>));<br>
   Driver = make<LinkerDriver>();<br>
<br>
Modified: lld/trunk/COFF/Error.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Error.cpp?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/Error.cpp<wbr>?rev=307590&r1=307589&r2=30759<wbr>0&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/Error.cpp (original)<br>
+++ lld/trunk/COFF/Error.cpp Mon Jul 10 14:01:37 2017<br>
@@ -29,7 +29,6 @@ namespace lld {<br>
 static std::mutex Mu;<br>
<br>
 namespace coff {<br>
-StringRef Argv0;<br>
 uint64_t ErrorCount;<br>
 raw_ostream *ErrorOS;<br>
<br>
@@ -45,7 +44,7 @@ static LLVM_ATTRIBUTE_NORETURN void exit<br>
 }<br>
<br>
 static void print(StringRef S, raw_ostream::Colors C) {<br>
-  *ErrorOS << Argv0 + ": ";<br>
+  *ErrorOS << Config->Argv[0] << ": ";<br>
   if (Config->ColorDiagnostics) {<br>
     ErrorOS->changeColor(C, true);<br>
     *ErrorOS << S;<br>
@@ -58,7 +57,7 @@ static void print(StringRef S, raw_ostre<br>
 void log(const Twine &Msg) {<br>
   if (Config->Verbose) {<br>
     std::lock_guard<std::mutex> Lock(Mu);<br>
-    outs() << Argv0 << ": " << Msg << "\n";<br>
+    outs() << Config->Argv[0] << ": " << Msg << "\n";<br>
     outs().flush();<br>
   }<br>
 }<br>
<br>
Modified: lld/trunk/COFF/Error.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Error.h?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/Error.h?<wbr>rev=307590&r1=307589&r2=307590<wbr>&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/Error.h (original)<br>
+++ lld/trunk/COFF/Error.h Mon Jul 10 14:01:37 2017<br>
@@ -18,7 +18,6 @@ namespace coff {<br>
<br>
 extern uint64_t ErrorCount;<br>
 extern llvm::raw_ostream *ErrorOS;<br>
-extern llvm::StringRef Argv0;<br>
<br>
 void log(const Twine &Msg);<br>
 void message(const Twine &Msg);<br>
<br>
Modified: lld/trunk/COFF/PDB.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/PDB.cpp?<wbr>rev=307590&r1=307589&r2=307590<wbr>&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/PDB.cpp (original)<br>
+++ lld/trunk/COFF/PDB.cpp Mon Jul 10 14:01:37 2017<br>
@@ -18,19 +18,20 @@<br>
 #include "llvm/DebugInfo/CodeView/Debug<wbr>SubsectionRecord.h"<br>
 #include "llvm/DebugInfo/CodeView/Debug<wbr>SubsectionVisitor.h"<br>
 #include "llvm/DebugInfo/CodeView/LazyR<wbr>andomTypeCollection.h"<br>
+#include "llvm/DebugInfo/CodeView/Symbo<wbr>lSerializer.h"<br>
 #include "llvm/DebugInfo/CodeView/TypeD<wbr>umpVisitor.h"<br>
 #include "llvm/DebugInfo/CodeView/TypeI<wbr>ndexDiscovery.h"<br>
 #include "llvm/DebugInfo/CodeView/TypeS<wbr>treamMerger.h"<br>
 #include "llvm/DebugInfo/CodeView/TypeT<wbr>ableBuilder.h"<br>
 #include "llvm/DebugInfo/MSF/MSFBuilder<wbr>.h"<br>
 #include "llvm/DebugInfo/MSF/MSFCommon.<wbr>h"<br>
+#include "llvm/DebugInfo/PDB/Native/Dbi<wbr>ModuleDescriptorBuilder.h"<br>
 #include "llvm/DebugInfo/PDB/Native/Dbi<wbr>Stream.h"<br>
 #include "llvm/DebugInfo/PDB/Native/Dbi<wbr>StreamBuilder.h"<br>
 #include "llvm/DebugInfo/PDB/Native/Inf<wbr>oStream.h"<br>
 #include "llvm/DebugInfo/PDB/Native/Inf<wbr>oStreamBuilder.h"<br>
 #include "llvm/DebugInfo/PDB/Native/PDB<wbr>File.h"<br>
 #include "llvm/DebugInfo/PDB/Native/PDB<wbr>FileBuilder.h"<br>
-#include "llvm/DebugInfo/PDB/Native/Dbi<wbr>ModuleDescriptorBuilder.h"<br>
 #include "llvm/DebugInfo/PDB/Native/PDB<wbr>StringTableBuilder.h"<br>
 #include "llvm/DebugInfo/PDB/Native/PDB<wbr>TypeServerHandler.h"<br>
 #include "llvm/DebugInfo/PDB/Native/Tpi<wbr>Stream.h"<br>
@@ -396,9 +397,54 @@ static void addObjectsToPDB(BumpPtrAlloc<br>
   addTypeInfo(Builder.getIpiBui<wbr>lder(), IDTable);<br>
 }<br>
<br>
+static void addLinkerModuleSymbols(StringR<wbr>ef Path,<br>
+                                   pdb::DbiModuleDescriptorBuild<wbr>er &Mod,<br>
+                                   BumpPtrAllocator &Allocator) {<br>
+  codeview::SymbolSerializer Serializer(Allocator, CodeViewContainer::Pdb);<br>
+  codeview::ObjNameSym ONS(SymbolRecordKind::ObjNameS<wbr>ym);<br>
+  codeview::Compile3Sym CS(SymbolRecordKind::Compile3S<wbr>ym);<br>
+  codeview::EnvBlockSym EBS(SymbolRecordKind::EnvBlock<wbr>Sym);<br>
+<br>
+  ONS.Name = "* Linker *";<br>
+  ONS.Signature = 0;<br>
+<br>
+  CS.Machine = Config->is64() ? CPUType::X64 : CPUType::Intel80386;<br>
+  CS.Flags = CompileSym3Flags::None;<br>
+  CS.VersionBackendBuild = 0;<br>
+  CS.VersionBackendMajor = 0;<br>
+  CS.VersionBackendMinor = 0;<br>
+  CS.VersionBackendQFE = 0;<br>
+  CS.VersionFrontendBuild = 0;<br>
+  CS.VersionFrontendMajor = 0;<br>
+  CS.VersionFrontendMinor = 0;<br>
+  CS.VersionFrontendQFE = 0;<br>
+  CS.Version = "LLVM Linker";<br>
+  CS.setLanguage(SourceLanguage:<wbr>:Link);<br>
+<br>
+  ArrayRef<StringRef> Args = makeArrayRef(Config->Argv).dro<wbr>p_front();<br>
+  std::string ArgStr = llvm::join(Args, " ");<br>
+  EBS.Fields.push_back("cwd");<br>
+  SmallString<64> cwd;<br>
+  llvm::sys::fs::current_path(cw<wbr>d);<br>
+  EBS.Fields.push_back(cwd);<br>
+  EBS.Fields.push_back("exe");<br>
+  std::string Exe =<br>
+      llvm::sys::fs::getMainExecutab<wbr>le(Config->Argv[0].data(), nullptr);<br>
+  EBS.Fields.push_back(Exe);<br>
+  EBS.Fields.push_back("pdb");<br>
+  EBS.Fields.push_back(Path);<br>
+  EBS.Fields.push_back("cmd");<br>
+  EBS.Fields.push_back(ArgStr);<br>
+  Mod.addSymbol(codeview::Symbol<wbr>Serializer::writeOneSymbol(<br>
+      ONS, Allocator, CodeViewContainer::Pdb));<br>
+  Mod.addSymbol(codeview::Symbol<wbr>Serializer::writeOneSymbol(<br>
+      CS, Allocator, CodeViewContainer::Pdb));<br>
+  Mod.addSymbol(codeview::Symbol<wbr>Serializer::writeOneSymbol(<br>
+      EBS, Allocator, CodeViewContainer::Pdb));<br>
+}<br>
+<br>
 // Creates a PDB file.<br>
-void coff::createPDB(StringRef Path, SymbolTable *Symtab,<br>
-                     ArrayRef<uint8_t> SectionTable,<br>
+void coff::createPDB(SymbolTable *Symtab, ArrayRef<uint8_t> SectionTable,<br>
                      const llvm::codeview::DebugInfo *DI) {<br>
   BumpPtrAllocator Alloc;<br>
   pdb::PDBFileBuilder Builder(Alloc);<br>
@@ -413,7 +459,8 @@ void coff::createPDB(StringRef Path, Sym<br>
   auto &InfoBuilder = Builder.getInfoBuilder();<br>
   InfoBuilder.setAge(DI ? DI->PDB70.Age : 0);<br>
<br>
-  llvm::SmallString<128> NativePath(Path.begin(), Path.end());<br>
+  llvm::SmallString<128> NativePath(Config->PDBPath.beg<wbr>in(),<br>
+                                    Config->PDBPath.end());<br>
   llvm::sys::fs::make_absolute(<wbr>NativePath);<br>
   llvm::sys::path::native(Nativ<wbr>ePath, llvm::sys::path::Style::window<wbr>s);<br>
<br>
@@ -449,11 +496,12 @@ void coff::createPDB(StringRef Path, Sym<br>
<br>
   auto &LinkerModule = ExitOnErr(DbiBuilder.addModule<wbr>Info("* Linker *"));<br>
   LinkerModule.setPdbFilePathNI<wbr>(PdbFilePathNI);<br>
+  addLinkerModuleSymbols(NativeP<wbr>ath, LinkerModule, Alloc);<br>
<br>
   // Add COFF section header stream.<br>
   ExitOnErr(<br>
       DbiBuilder.addDbgStream(pdb::<wbr>DbgHeaderType::SectionHdr, SectionTable));<br>
<br>
   // Write to a file.<br>
-  ExitOnErr(Builder.commit(Path)<wbr>);<br>
+  ExitOnErr(Builder.commit(Confi<wbr>g->PDBPath));<br>
 }<br>
<br>
Modified: lld/trunk/COFF/PDB.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.h?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/PDB.h?rev<wbr>=307590&r1=307589&r2=307590&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/PDB.h (original)<br>
+++ lld/trunk/COFF/PDB.h Mon Jul 10 14:01:37 2017<br>
@@ -23,8 +23,7 @@ namespace lld {<br>
 namespace coff {<br>
 class SymbolTable;<br>
<br>
-void createPDB(llvm::StringRef Path, SymbolTable *Symtab,<br>
-               llvm::ArrayRef<uint8_t> SectionTable,<br>
+void createPDB(SymbolTable *Symtab, llvm::ArrayRef<uint8_t> SectionTable,<br>
                const llvm::codeview::DebugInfo *DI);<br>
 }<br>
 }<br>
<br>
Modified: lld/trunk/COFF/Writer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Writer.cpp?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/COFF/Writer.cp<wbr>p?rev=307590&r1=307589&r2=3075<wbr>90&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/COFF/Writer.cpp (original)<br>
+++ lld/trunk/COFF/Writer.cpp Mon Jul 10 14:01:37 2017<br>
@@ -239,7 +239,7 @@ void Writer::run() {<br>
     const llvm::codeview::DebugInfo *DI = nullptr;<br>
     if (Config->DebugTypes & static_cast<unsigned>(coff::De<wbr>bugType::CV))<br>
       DI = BuildId->DI;<br>
-    createPDB(Config->PDBPath, Symtab, SectionTable, DI);<br>
+    createPDB(Symtab, SectionTable, DI);<br>
   }<br>
<br>
   writeMapFile(OutputSections);<br>
<br>
Modified: lld/trunk/ELF/Config.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Config.h?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/ELF/Config.h?<wbr>rev=307590&r1=307589&r2=307590<wbr>&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Config.h (original)<br>
+++ lld/trunk/ELF/Config.h Mon Jul 10 14:01:37 2017<br>
@@ -97,6 +97,7 @@ struct Configuration {<br>
   llvm::StringRef ThinLTOCacheDir;<br>
   std::string Rpath;<br>
   std::vector<VersionDefinition<wbr>> VersionDefinitions;<br>
+  std::vector<llvm::StringRef> Argv;<br>
   std::vector<llvm::StringRef> AuxiliaryList;<br>
   std::vector<llvm::StringRef> SearchPaths;<br>
   std::vector<llvm::StringRef> SymbolOrderingFile;<br>
<br>
Modified: lld/trunk/ELF/Driver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/ELF/Driver.cpp<wbr>?rev=307590&r1=307589&r2=30759<wbr>0&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Driver.cpp (original)<br>
+++ lld/trunk/ELF/Driver.cpp Mon Jul 10 14:01:37 2017<br>
@@ -74,13 +74,13 @@ bool elf::link(ArrayRef<const char *> Ar<br>
                raw_ostream &Error) {<br>
   ErrorCount = 0;<br>
   ErrorOS = &Error;<br>
-  Argv0 = Args[0];<br>
   InputSections.clear();<br>
   Tar = nullptr;<br>
<br>
   Config = make<Configuration>();<br>
   Driver = make<LinkerDriver>();<br>
   Script = make<LinkerScript>();<br>
+  Config->Argv = {Args.begin(), Args.end()};<br>
<br>
   Driver->main(Args, CanExitEarly);<br>
   freeArena();<br>
<br>
Modified: lld/trunk/ELF/Error.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Error.cpp?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/ELF/Error.cpp?<wbr>rev=307590&r1=307589&r2=307590<wbr>&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Error.cpp (original)<br>
+++ lld/trunk/ELF/Error.cpp Mon Jul 10 14:01:37 2017<br>
@@ -27,7 +27,6 @@ using namespace lld::elf;<br>
<br>
 uint64_t elf::ErrorCount;<br>
 raw_ostream *elf::ErrorOS;<br>
-StringRef elf::Argv0;<br>
<br>
 // The functions defined in this file can be called from multiple threads,<br>
 // but outs() or errs() are not thread-safe. We protect them using a mutex.<br>
@@ -46,7 +45,7 @@ static void newline(const Twine &Msg) {<br>
 }<br>
<br>
 static void print(StringRef S, raw_ostream::Colors C) {<br>
-  *ErrorOS << Argv0 + ": ";<br>
+  *ErrorOS << Config->Argv[0] << ": ";<br>
   if (Config->ColorDiagnostics) {<br>
     ErrorOS->changeColor(C, true);<br>
     *ErrorOS << S;<br>
@@ -59,7 +58,7 @@ static void print(StringRef S, raw_ostre<br>
 void elf::log(const Twine &Msg) {<br>
   if (Config->Verbose) {<br>
     std::lock_guard<std::mutex> Lock(Mu);<br>
-    outs() << Argv0 << ": " << Msg << "\n";<br>
+    outs() << Config->Argv[0] << ": " << Msg << "\n";<br>
     outs().flush();<br>
   }<br>
 }<br>
<br>
Modified: lld/trunk/ELF/Error.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Error.h?rev=307590&r1=307589&r2=307590&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/ELF/Error.h?re<wbr>v=307590&r1=307589&r2=307590&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/ELF/Error.h (original)<br>
+++ lld/trunk/ELF/Error.h Mon Jul 10 14:01:37 2017<br>
@@ -37,7 +37,6 @@ namespace elf {<br>
<br>
 extern uint64_t ErrorCount;<br>
 extern llvm::raw_ostream *ErrorOS;<br>
-extern llvm::StringRef Argv0;<br>
<br>
 void log(const Twine &Msg);<br>
 void message(const Twine &Msg);<br>
<br>
Added: lld/trunk/test/COFF/pdb-linker<wbr>-module.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-linker-module.test?rev=307590&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/lld/trunk/test/COFF/pdb-<wbr>linker-module.test?rev=307590&<wbr>view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- lld/trunk/test/COFF/pdb-linker<wbr>-module.test (added)<br>
+++ lld/trunk/test/COFF/pdb-linker<wbr>-module.test Mon Jul 10 14:01:37 2017<br>
@@ -0,0 +1,18 @@<br>
+RUN: lld-link /debug /pdb:%t.pdb /nodefaultlib /entry:main %S/Inputs/pdb-diff.obj<br>
+RUN: llvm-pdbutil dump -modules -symbols %t.pdb | FileCheck %s<br>
+<br>
+CHECK:      Mod 0001 | `* Linker *`:<br>
+CHECK-NEXT:  4 | S_OBJNAME [size = 20] sig=0, `* Linker *`<br>
+CHECK-NEXT: 24 | S_COMPILE3 [size = 40]<br>
+CHECK-NEXT:      machine = intel 80386, Ver = LLVM Linker, language = link<br>
+CHECK-NEXT:      frontend = 0.0.0.0, backend = 0.0.0.0<br>
+CHECK-NEXT:      flags = none<br>
+CHECK-NEXT: 64 | S_ENVBLOCK<br>
+CHECK-NEXT: - cwd<br>
+CHECK-NEXT: -<br>
+CHECK-NEXT: - exe<br>
+CHECK-NEXT: - {{.*}}lld-link<br>
+CHECK-NEXT: - pdb<br>
+CHECK-NEXT: - {{.*}}pdb-linker-module{{.*}}p<wbr>db<br>
+CHECK-NEXT: - cmd<br>
+CHECK-NEXT: - /debug /pdb:{{.*}}pdb-linker-module{{<wbr>.*}}pdb /nodefaultlib /entry:main {{.*}}pdb-diff.obj<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>
</blockquote></div>
</div></div><br>______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>