From 52c80e3860849c031366e7667ba44626aac5e40f Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Mon, 16 Apr 2018 16:55:41 +0000 Subject: [PATCH] Revert "Fix some incorrect fields in our generated PDBs." There are a couple of failing tests which slipped under my radar so I'm reverting this while I attempt to fix. llvm-svn: 330133 --- lld/COFF/PDB.cpp | 26 +--------------------- .../llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h | 1 - llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp | 10 +-------- 3 files changed, 2 insertions(+), 35 deletions(-) diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp index 9aa4c64..69c0442 100644 --- a/lld/COFF/PDB.cpp +++ b/lld/COFF/PDB.cpp @@ -978,23 +978,6 @@ void PDBLinker::addNatvisFiles() { } } -static codeview::CPUType toCodeViewMachine(COFF::MachineTypes Machine) { - switch (Machine) { - case COFF::IMAGE_FILE_MACHINE_AMD64: - return codeview::CPUType::X64; - case COFF::IMAGE_FILE_MACHINE_ARM: - return codeview::CPUType::ARM7; - case COFF::IMAGE_FILE_MACHINE_ARM64: - return codeview::CPUType::ARM64; - case COFF::IMAGE_FILE_MACHINE_ARMNT: - return codeview::CPUType::ARMNT; - case COFF::IMAGE_FILE_MACHINE_I386: - return codeview::CPUType::Intel80386; - default: - llvm_unreachable("Unsupported CPU Type"); - } -} - static void addCommonLinkerModuleSymbols(StringRef Path, pdb::DbiModuleDescriptorBuilder &Mod, BumpPtrAllocator &Allocator) { @@ -1005,7 +988,7 @@ static void addCommonLinkerModuleSymbols(StringRef Path, ONS.Name = "* Linker *"; ONS.Signature = 0; - CS.Machine = toCodeViewMachine(Config->Machine); + CS.Machine = Config->is64() ? CPUType::X64 : CPUType::Intel80386; // Interestingly, if we set the string to 0.0.0.0, then when trying to view // local variables WinDbg emits an error that private symbols are not present. // By setting this to a valid MSVC linker version string, local variables are @@ -1102,13 +1085,6 @@ void PDBLinker::initialize(const llvm::codeview::DebugInfo &BuildId) { pdb::DbiStreamBuilder &DbiBuilder = Builder.getDbiBuilder(); DbiBuilder.setAge(BuildId.PDB70.Age); DbiBuilder.setVersionHeader(pdb::PdbDbiV70); - DbiBuilder.setMachineType(Config->is64() ? pdb::PDB_Machine::Amd64 - : pdb::PDB_Machine::x86); - // Technically we are not link.exe 14.11, but there are known cases where - // debugging tools on Windows expect Microsoft-specific version numbers or - // they fail to work at all. Since we know we produce PDBs that are - // compatible with LINK 14.11, we set that version number here. - DbiBuilder.setBuildNumber(14, 11); } void PDBLinker::addSectionContrib(pdb::DbiModuleDescriptorBuilder &LinkerModule, diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h index 316be09..daea062 100644 --- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h +++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h @@ -46,7 +46,6 @@ public: void setVersionHeader(PdbRaw_DbiVer V); void setAge(uint32_t A); void setBuildNumber(uint16_t B); - void setBuildNumber(uint8_t Major, uint8_t Minor); void setPdbDllVersion(uint16_t V); void setPdbDllRbld(uint16_t R); void setFlags(uint16_t F); diff --git a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp index 52886d5..f17e081 100644 --- a/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp @@ -37,14 +37,6 @@ void DbiStreamBuilder::setAge(uint32_t A) { Age = A; } void DbiStreamBuilder::setBuildNumber(uint16_t B) { BuildNumber = B; } -void DbiStreamBuilder::setBuildNumber(uint8_t Major, uint8_t Minor) { - BuildNumber = (uint16_t(Major) << DbiBuildNo::BuildMajorShift) & - DbiBuildNo::BuildMajorMask; - BuildNumber |= (uint16_t(Minor) << DbiBuildNo::BuildMinorShift) & - DbiBuildNo::BuildMinorMask; - BuildNumber |= DbiBuildNo::NewVersionFormatMask; -} - void DbiStreamBuilder::setPdbDllVersion(uint16_t V) { PdbDllVersion = V; } void DbiStreamBuilder::setPdbDllRbld(uint16_t R) { PdbDllRbld = R; } @@ -259,7 +251,7 @@ Error DbiStreamBuilder::finalize() { H->TypeServerSize = 0; H->SymRecordStreamIndex = SymRecordStreamIndex; H->PublicSymbolStreamIndex = PublicsStreamIndex; - H->MFCTypeServerIndex = 0; // Not sure what this is, but link.exe writes 0. + H->MFCTypeServerIndex = kInvalidStreamIndex; H->GlobalSymbolStreamIndex = GlobalsStreamIndex; Header = H; -- 2.7.4