[lld] r283837 - Revert "Add section header stream to PDB." because it depends on r283823.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 10 18:01:40 PDT 2016
Author: ruiu
Date: Mon Oct 10 20:01:40 2016
New Revision: 283837
URL: http://llvm.org/viewvc/llvm-project?rev=283837&view=rev
Log:
Revert "Add section header stream to PDB." because it depends on r283823.
The change this patch depends on was reverted.
Modified:
lld/trunk/COFF/Driver.cpp
lld/trunk/COFF/PDB.cpp
lld/trunk/COFF/PDB.h
lld/trunk/COFF/Writer.cpp
lld/trunk/COFF/Writer.h
lld/trunk/test/COFF/pdb.test
Modified: lld/trunk/COFF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=283837&r1=283836&r2=283837&view=diff
==============================================================================
--- lld/trunk/COFF/Driver.cpp (original)
+++ lld/trunk/COFF/Driver.cpp Mon Oct 10 20:01:40 2016
@@ -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<c
}
// 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)) {
Modified: lld/trunk/COFF/PDB.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=283837&r1=283836&r2=283837&view=diff
==============================================================================
--- lld/trunk/COFF/PDB.cpp (original)
+++ lld/trunk/COFF/PDB.cpp Mon Oct 10 20:01:40 2016
@@ -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, Arr
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));
}
Modified: lld/trunk/COFF/PDB.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.h?rev=283837&r1=283836&r2=283837&view=diff
==============================================================================
--- lld/trunk/COFF/PDB.h (original)
+++ lld/trunk/COFF/PDB.h Mon Oct 10 20:01:40 2016
@@ -10,12 +10,11 @@
#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);
}
}
Modified: lld/trunk/COFF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Writer.cpp?rev=283837&r1=283836&r2=283837&view=diff
==============================================================================
--- lld/trunk/COFF/Writer.cpp (original)
+++ lld/trunk/COFF/Writer.cpp Mon Oct 10 20:01:40 2016
@@ -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 Writ
Sec->writeHeaderTo(Buf);
Buf += sizeof(coff_section);
}
- SectionTable = ArrayRef<uint8_t>(
- Buf - OutputSections.size() * sizeof(coff_section), Buf);
if (OutputSymtab.empty())
return;
Modified: lld/trunk/COFF/Writer.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Writer.h?rev=283837&r1=283836&r2=283837&view=diff
==============================================================================
--- lld/trunk/COFF/Writer.h (original)
+++ lld/trunk/COFF/Writer.h Mon Oct 10 20:01:40 2016
@@ -14,7 +14,9 @@
namespace lld {
namespace coff {
-class SymbolTable;
+
+class Chunk;
+class OutputSection;
void writeResult(SymbolTable *T);
Modified: lld/trunk/test/COFF/pdb.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb.test?rev=283837&r1=283836&r2=283837&view=diff
==============================================================================
--- lld/trunk/test/COFF/pdb.test (original)
+++ lld/trunk/test/COFF/pdb.test Mon Oct 10 20:01:40 2016
@@ -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}'
@@ -43,40 +40,6 @@
# 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
More information about the llvm-commits
mailing list