Revert "Add section header stream to PDB." because it depends on r283823.
authorRui Ueyama <ruiu@google.com>
Tue, 11 Oct 2016 01:01:40 +0000 (01:01 +0000)
committerRui Ueyama <ruiu@google.com>
Tue, 11 Oct 2016 01:01:40 +0000 (01:01 +0000)
The change this patch depends on was reverted.

llvm-svn: 283837

lld/COFF/Driver.cpp
lld/COFF/PDB.cpp
lld/COFF/PDB.h
lld/COFF/Writer.cpp
lld/COFF/Writer.h
lld/test/COFF/pdb.test

index dd797b4..4c7c4d8 100644 (file)
@@ -11,6 +11,7 @@
 #include "Config.h"
 #include "Error.h"
 #include "InputFiles.h"
+#include "PDB.h"
 #include "SymbolTable.h"
 #include "Symbols.h"
 #include "Writer.h"
@@ -373,8 +374,10 @@ void LinkerDriver::link(llvm::ArrayRef<const char *> ArgsArr) {
   }
 
   // Create a dummy PDB file to satisfy build sytem rules.
-  if (auto *Arg = Args.getLastArg(OPT_pdb))
+  if (auto *Arg = Args.getLastArg(OPT_pdb)) {
     Config->PDBPath = Arg->getValue();
+    createPDB(Config->PDBPath);
+  }
 
   // Handle /noentry
   if (Args.hasArg(OPT_noentry)) {
index 53f50f3..bbc8296 100644 (file)
@@ -30,7 +30,7 @@ using namespace llvm::support::endian;
 
 static ExitOnError ExitOnErr;
 
-void coff::createPDB(StringRef Path, ArrayRef<uint8_t> SectionTable) {
+void coff::createPDB(StringRef Path) {
   BumpPtrAllocator Alloc;
   pdb::PDBFileBuilder Builder(Alloc);
   ExitOnErr(Builder.initialize(4096)); // 4096 is blocksize
@@ -63,10 +63,6 @@ void coff::createPDB(StringRef Path, ArrayRef<uint8_t> SectionTable) {
   auto &IpiBuilder = Builder.getIpiBuilder();
   IpiBuilder.setVersionHeader(pdb::PdbTpiV80);
 
-  // Add COFF section header stream.
-  ExitOnErr(
-      DbiBuilder.addDbgStream(pdb::DbgHeaderType::SectionHdr, SectionTable));
-
   // Write to a file.
   ExitOnErr(Builder.commit(Path));
 }
index 3b084b8..97f6935 100644 (file)
 #ifndef LLD_COFF_PDB_H
 #define LLD_COFF_PDB_H
 
-#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 
 namespace lld {
 namespace coff {
-void createPDB(llvm::StringRef Path, llvm::ArrayRef<uint8_t> SectionTable);
+void createPDB(llvm::StringRef Path);
 }
 }
 
index 8fb532e..2b02041 100644 (file)
@@ -7,14 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "Writer.h"
 #include "Config.h"
 #include "DLL.h"
 #include "Error.h"
 #include "InputFiles.h"
-#include "PDB.h"
 #include "SymbolTable.h"
 #include "Symbols.h"
+#include "Writer.h"
 #include "lld/Core/Parallel.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/STLExtras.h"
@@ -148,7 +147,6 @@ private:
   std::unique_ptr<Chunk> DebugDirectory;
   std::vector<std::unique_ptr<Chunk>> DebugRecords;
   CVDebugRecordChunk *BuildId = nullptr;
-  ArrayRef<uint8_t> SectionTable;
 
   uint64_t FileSize;
   uint32_t PointerToSymbolTable = 0;
@@ -303,10 +301,6 @@ void Writer::run() {
   writeSections();
   sortExceptionTable();
   writeBuildId();
-
-  if (!Config->PDBPath.empty())
-    createPDB(Config->PDBPath, SectionTable);
-
   if (auto EC = Buffer->commit())
     fatal(EC, "failed to write the output file");
 }
@@ -725,8 +719,6 @@ template <typename PEHeaderTy> void Writer::writeHeader() {
     Sec->writeHeaderTo(Buf);
     Buf += sizeof(coff_section);
   }
-  SectionTable = ArrayRef<uint8_t>(
-      Buf - OutputSections.size() * sizeof(coff_section), Buf);
 
   if (OutputSymtab.empty())
     return;
index 0d26090..0473315 100644 (file)
@@ -14,7 +14,9 @@
 
 namespace lld {
 namespace coff {
-class SymbolTable;
+
+class Chunk;
+class OutputSection;
 
 void writeResult(SymbolTable *T);
 
index e932686..1bbac22 100644 (file)
@@ -3,28 +3,25 @@
 # RUN: llvm-pdbdump pdb2yaml -stream-metadata -stream-directory -pdb-stream \
 # RUN:   -dbi-stream -ipi-stream %t.pdb | FileCheck %s
 
-# RUN: llvm-pdbdump raw -section-headers %t.pdb | FileCheck -check-prefix RAW %s
-
 # CHECK:      MSF:
 # CHECK-NEXT:   SuperBlock:
 # CHECK-NEXT:     BlockSize:       4096
 # CHECK-NEXT:     FreeBlockMap:
-# CHECK-NEXT:     NumBlocks:       10
-# CHECK-NEXT:     NumDirectoryBytes: 48
+# CHECK-NEXT:     NumBlocks:       9
+# CHECK-NEXT:     NumDirectoryBytes: 40
 # CHECK-NEXT:     Unknown1:        0
 # CHECK-NEXT:     BlockMapAddr:    3
 # CHECK-NEXT:     NumDirectoryBlocks: 1
-# CHECK-NEXT:     DirectoryBlocks: [ 9 ]
-# CHECK-NEXT:     NumStreams:      6
-# CHECK-NEXT:     FileSize:        40960
-# CHECK-NEXT:   StreamSizes:     [ 0, 48, 56, 90, 56, 80 ]
+# CHECK-NEXT:     DirectoryBlocks: [ 8 ]
+# CHECK-NEXT:     NumStreams:      5
+# CHECK-NEXT:     FileSize:        36864
+# CHECK-NEXT:   StreamSizes:     [ 0, 48, 56, 68, 56 ]
 # CHECK-NEXT:   StreamMap:
-# CHECK-NEXT:     - Stream:          [  ]
+# CHECK-NEXT:     - Stream:          [ ]
+# CHECK-NEXT:     - Stream:          [ 4 ]
+# CHECK-NEXT:     - Stream:          [ 6 ]
 # CHECK-NEXT:     - Stream:          [ 5 ]
 # CHECK-NEXT:     - Stream:          [ 7 ]
-# CHECK-NEXT:     - Stream:          [ 6 ]
-# CHECK-NEXT:     - Stream:          [ 8 ]
-# CHECK-NEXT:     - Stream:          [ 4 ]
 # CHECK-NEXT:   PdbStream:
 # CHECK-NEXT:     Age:             1
 # CHECK-NEXT:     Guid:            '{00000000-0000-0000-0000-000000000000}'
 # CHECK-NEXT:     Version:         VC80
 # CHECK-NEXT:     Records:
 
-# RAW:      Section Headers [
-# RAW-NEXT:   {
-# RAW-NEXT:     Name: .text
-# RAW-NEXT:     Virtual Size: 3
-# RAW-NEXT:     Virtual Address: 4096
-# RAW-NEXT:     Size of Raw Data: 512
-# RAW-NEXT:     File Pointer to Raw Data: 512
-# RAW-NEXT:     File Pointer to Relocations: 0
-# RAW-NEXT:     File Pointer to Linenumbers: 0
-# RAW-NEXT:     Number of Relocations: 0
-# RAW-NEXT:     Number of Linenumbers: 0
-# RAW-NEXT:     Characteristics [ (0x60000020)
-# RAW-NEXT:       IMAGE_SCN_CNT_CODE (0x20)
-# RAW-NEXT:       IMAGE_SCN_MEM_EXECUTE (0x20000000)
-# RAW-NEXT:       IMAGE_SCN_MEM_READ (0x40000000)
-# RAW-NEXT:     ]
-# RAW-NEXT:   }
-# RAW-NEXT:   {
-# RAW-NEXT:     Name: .rdata
-# RAW-NEXT:     Virtual Size: 107
-# RAW-NEXT:     Virtual Address: 8192
-# RAW-NEXT:     Size of Raw Data: 512
-# RAW-NEXT:     File Pointer to Raw Data: 1024
-# RAW-NEXT:     File Pointer to Relocations: 0
-# RAW-NEXT:     File Pointer to Linenumbers: 0
-# RAW-NEXT:     Number of Relocations: 0
-# RAW-NEXT:     Number of Linenumbers: 0
-# RAW-NEXT:     Characteristics [ (0x40000040)
-# RAW-NEXT:       IMAGE_SCN_CNT_INITIALIZED_DATA (0x40)
-# RAW-NEXT:       IMAGE_SCN_MEM_READ (0x40000000)
-# RAW-NEXT:     ]
-# RAW-NEXT:   }
-# RAW-NEXT: ]
-
 --- !COFF
 header:
   Machine:         IMAGE_FILE_MACHINE_I386