]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Roll back GenFw Change to keep unknown field in RSDS debug entry
authorLiming Gao <liming.gao@intel.com>
Tue, 22 Aug 2017 05:58:57 +0000 (13:58 +0800)
committerLiming Gao <liming.gao@intel.com>
Thu, 24 Aug 2017 03:21:27 +0000 (11:21 +0800)
https://lists.01.org/pipermail/edk2-devel/2017-August/013488.html
These fields are actually a GUID and DWORD respectively: the GUID identifies
the PDB to make it possible to verify that a given PDB matches the PE file,
and the DWORD is the "age" of the PDB which is simply a helper value that is
incremented by 1 by the linker every time the file is remade. Wiping the
GUID will cause PDB parsers (such as the MS DIA SDK that IDA and most other
tools use) to treat the PDB as a mismatch and refuse to load it.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/C/GenFw/GenFw.c

index af60c92763c4c8020559d46972e5f8321c460f00..33ba917fda813d5a203943a1f49ec619c8a5b26d 100644 (file)
@@ -2903,13 +2903,7 @@ Returns:
       }\r
       if (DebugEntry->Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {\r
         RsdsEntry = (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY *) (FileBuffer + DebugEntry->FileOffset);\r
       }\r
       if (DebugEntry->Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {\r
         RsdsEntry = (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY *) (FileBuffer + DebugEntry->FileOffset);\r
-        if (RsdsEntry->Signature == CODEVIEW_SIGNATURE_RSDS) {\r
-          RsdsEntry->Unknown  = 0;\r
-          RsdsEntry->Unknown2 = 0;\r
-          RsdsEntry->Unknown3 = 0;\r
-          RsdsEntry->Unknown4 = 0;\r
-          RsdsEntry->Unknown5 = 0;\r
-        } else if (RsdsEntry->Signature == CODEVIEW_SIGNATURE_MTOC) {\r
+        if (RsdsEntry->Signature == CODEVIEW_SIGNATURE_MTOC) {\r
           // MTOC sets DebugDirectoryEntrySize to size of the .debug section, so fix it.\r
           if (!ZeroDebugFlag) {\r
             if (Optional32Hdr->Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {\r
           // MTOC sets DebugDirectoryEntrySize to size of the .debug section, so fix it.\r
           if (!ZeroDebugFlag) {\r
             if (Optional32Hdr->Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {\r