diff options
author | Fangrui Song <i@maskray.me> | 2021-11-09 10:08:41 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2021-11-09 10:08:41 -0800 |
commit | 5f1e509579e49e97c4ad7deb0dd3069393ccd461 (patch) | |
tree | 5aaa256eb5859ebf9662eae188c7fdf9e86a09f6 /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | ee88b8d63e475a75ae525563edfa95f6fcaac83a (diff) | |
download | llvm-5f1e509579e49e97c4ad7deb0dd3069393ccd461.zip llvm-5f1e509579e49e97c4ad7deb0dd3069393ccd461.tar.gz llvm-5f1e509579e49e97c4ad7deb0dd3069393ccd461.tar.bz2 |
[llvm-objdump] -p: Dump PE header for PE/COFF
For a trivial DLL built with `clang --target=x86_64-windows -O2 -c a.c; lld-link -subsystem:console -dll a.o -out:a.dll`,
`objdump -p` vs `llvm-objdump -p`:
```
-a.dll: file format pei-x86-64
-
+a.dll: file format coff-x86-64
Characteristics 0x2022
executable
large address aware
@@ -57,4 +56,4 @@
Entry d 0000000000000000 00000000 Delay Import Directory
Entry e 0000000000000000 00000000 CLR Runtime Header
Entry f 0000000000000000 00000000 Reserved
-
+Export Table:
```
For a Linux image (`vmlinuz-5.10.76-gentoo-r1`) built with `CONFIG_EFI_STUB=y`
```
-vmlinuz-5.10.76-gentoo-r1: file format pei-x86-64
-
-Characteristics 0x20e
+vmlinuz-5.10.76-gentoo-r1: file format coff-x86-64
+Characteristics 0x206
executable
line numbers stripped
- symbols stripped
debugging information removed
Time/Date Wed Dec 31 16:00:00 1969
@@ -55,10 +53,4 @@
Entry d 0000000000000000 00000000 Delay Import Directory
Entry e 0000000000000000 00000000 CLR Runtime Header
Entry f 0000000000000000 00000000 Reserved
-
-
-PE File Base Relocations (interpreted .reloc section contents)
-
-Virtual Address: 000037ca Chunk size 10 (0xa) Number of fixups 1
- reloc 0 offset 0 [37ca] ABSOLUTE
-
+Export Table:
```
`symbols stripped` looks like a GNU objdump problem.
Reviewed By: jhenderson, alexander-shaposhnikov
Differential Revision: https://reviews.llvm.org/D113356
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index ed605e6..6f6f543 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -2245,7 +2245,7 @@ static void printPrivateFileHeaders(const ObjectFile *O, bool OnlyFirst) { return; } if (O->isCOFF()) - return printCOFFFileHeader(O); + return printCOFFFileHeader(cast<object::COFFObjectFile>(*O)); if (O->isWasm()) return printWasmFileHeader(O); if (O->isMachO()) { |