forked from OSchip/llvm-project
[llvm-objdump/mac] Add support for new load commands
Differential Revision: https://reviews.llvm.org/D113733
This commit is contained in:
parent
78d60094c7
commit
693b02023e
|
@ -0,0 +1,245 @@
|
|||
# RUN: yaml2obj %s -o %t
|
||||
# RUN: llvm-objdump -p %t | FileCheck %s
|
||||
# RUN: llvm-otool -l %t | FileCheck %s
|
||||
#
|
||||
# CHECK: LC_DYLD_CHAINED_FIXUPS
|
||||
# CHECK: LC_DYLD_EXPORTS_TRIE
|
||||
|
||||
--- !mach-o
|
||||
FileHeader:
|
||||
magic: 0xFEEDFACF
|
||||
cputype: 0x100000C
|
||||
cpusubtype: 0x0
|
||||
filetype: 0x2
|
||||
ncmds: 16
|
||||
sizeofcmds: 744
|
||||
flags: 0x200085
|
||||
reserved: 0x0
|
||||
LoadCommands:
|
||||
- cmd: LC_SEGMENT_64
|
||||
cmdsize: 72
|
||||
segname: __PAGEZERO
|
||||
vmaddr: 0
|
||||
vmsize: 4294967296
|
||||
fileoff: 0
|
||||
filesize: 0
|
||||
maxprot: 0
|
||||
initprot: 0
|
||||
nsects: 0
|
||||
flags: 0
|
||||
- cmd: LC_SEGMENT_64
|
||||
cmdsize: 232
|
||||
segname: __TEXT
|
||||
vmaddr: 4294967296
|
||||
vmsize: 16384
|
||||
fileoff: 0
|
||||
filesize: 16384
|
||||
maxprot: 5
|
||||
initprot: 5
|
||||
nsects: 2
|
||||
flags: 0
|
||||
Sections:
|
||||
- sectname: __text
|
||||
segname: __TEXT
|
||||
addr: 0x100003F98
|
||||
size: 24
|
||||
offset: 0x3F98
|
||||
align: 2
|
||||
reloff: 0x0
|
||||
nreloc: 0
|
||||
flags: 0x80000400
|
||||
reserved1: 0x0
|
||||
reserved2: 0x0
|
||||
reserved3: 0x0
|
||||
content: C0035FD6FF4300D100008052FF0F00B9FF430091C0035FD6
|
||||
- sectname: __unwind_info
|
||||
segname: __TEXT
|
||||
addr: 0x100003FB0
|
||||
size: 80
|
||||
offset: 0x3FB0
|
||||
align: 2
|
||||
reloff: 0x0
|
||||
nreloc: 0
|
||||
flags: 0x0
|
||||
reserved1: 0x0
|
||||
reserved2: 0x0
|
||||
reserved3: 0x0
|
||||
content: 010000001C000000000000001C000000000000001C00000002000000983F00003400000034000000B13F00000000000034000000030000000C0002001400020000000001040000000010000200000002
|
||||
- cmd: LC_SEGMENT_64
|
||||
cmdsize: 72
|
||||
segname: __LINKEDIT
|
||||
vmaddr: 4294983680
|
||||
vmsize: 16384
|
||||
fileoff: 16384
|
||||
filesize: 753
|
||||
maxprot: 1
|
||||
initprot: 1
|
||||
nsects: 0
|
||||
flags: 0
|
||||
- cmd: LC_DYLD_CHAINED_FIXUPS
|
||||
cmdsize: 16
|
||||
dataoff: 16384
|
||||
datasize: 56
|
||||
- cmd: LC_DYLD_EXPORTS_TRIE
|
||||
cmdsize: 16
|
||||
dataoff: 16440
|
||||
datasize: 56
|
||||
- cmd: LC_SYMTAB
|
||||
cmdsize: 24
|
||||
symoff: 16504
|
||||
nsyms: 15
|
||||
stroff: 16744
|
||||
strsize: 120
|
||||
- cmd: LC_DYSYMTAB
|
||||
cmdsize: 80
|
||||
ilocalsym: 0
|
||||
nlocalsym: 12
|
||||
iextdefsym: 12
|
||||
nextdefsym: 3
|
||||
iundefsym: 15
|
||||
nundefsym: 0
|
||||
tocoff: 0
|
||||
ntoc: 0
|
||||
modtaboff: 0
|
||||
nmodtab: 0
|
||||
extrefsymoff: 0
|
||||
nextrefsyms: 0
|
||||
indirectsymoff: 0
|
||||
nindirectsyms: 0
|
||||
extreloff: 0
|
||||
nextrel: 0
|
||||
locreloff: 0
|
||||
nlocrel: 0
|
||||
- cmd: LC_LOAD_DYLINKER
|
||||
cmdsize: 32
|
||||
name: 12
|
||||
Content: '/usr/lib/dyld'
|
||||
ZeroPadBytes: 7
|
||||
- cmd: LC_UUID
|
||||
cmdsize: 24
|
||||
uuid: F445529E-643C-3A38-8F59-AB64566BCAFF
|
||||
- cmd: LC_BUILD_VERSION
|
||||
cmdsize: 32
|
||||
platform: 1
|
||||
minos: 786432
|
||||
sdk: 786432
|
||||
ntools: 1
|
||||
Tools:
|
||||
- tool: 3
|
||||
version: 46596096
|
||||
- cmd: LC_SOURCE_VERSION
|
||||
cmdsize: 16
|
||||
version: 0
|
||||
- cmd: LC_MAIN
|
||||
cmdsize: 24
|
||||
entryoff: 16284
|
||||
stacksize: 0
|
||||
- cmd: LC_LOAD_DYLIB
|
||||
cmdsize: 56
|
||||
dylib:
|
||||
name: 24
|
||||
timestamp: 2
|
||||
current_version: 85917696
|
||||
compatibility_version: 65536
|
||||
Content: '/usr/lib/libSystem.B.dylib'
|
||||
ZeroPadBytes: 6
|
||||
- cmd: LC_FUNCTION_STARTS
|
||||
cmdsize: 16
|
||||
dataoff: 16496
|
||||
datasize: 8
|
||||
- cmd: LC_DATA_IN_CODE
|
||||
cmdsize: 16
|
||||
dataoff: 16504
|
||||
datasize: 0
|
||||
- cmd: LC_CODE_SIGNATURE
|
||||
cmdsize: 16
|
||||
dataoff: 16864
|
||||
datasize: 273
|
||||
LinkEditData:
|
||||
NameList:
|
||||
- n_strx: 33
|
||||
n_type: 0x64
|
||||
n_sect: 0
|
||||
n_desc: 0
|
||||
n_value: 0
|
||||
- n_strx: 39
|
||||
n_type: 0x64
|
||||
n_sect: 0
|
||||
n_desc: 0
|
||||
n_value: 0
|
||||
- n_strx: 46
|
||||
n_type: 0x66
|
||||
n_sect: 0
|
||||
n_desc: 1
|
||||
n_value: 1636754403
|
||||
- n_strx: 1
|
||||
n_type: 0x2E
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4294983576
|
||||
- n_strx: 109
|
||||
n_type: 0x24
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4294983576
|
||||
- n_strx: 1
|
||||
n_type: 0x24
|
||||
n_sect: 0
|
||||
n_desc: 0
|
||||
n_value: 4
|
||||
- n_strx: 1
|
||||
n_type: 0x4E
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4
|
||||
- n_strx: 1
|
||||
n_type: 0x2E
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4294983580
|
||||
- n_strx: 114
|
||||
n_type: 0x24
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4294983580
|
||||
- n_strx: 1
|
||||
n_type: 0x24
|
||||
n_sect: 0
|
||||
n_desc: 0
|
||||
n_value: 20
|
||||
- n_strx: 1
|
||||
n_type: 0x4E
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 20
|
||||
- n_strx: 1
|
||||
n_type: 0x64
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 0
|
||||
- n_strx: 2
|
||||
n_type: 0xF
|
||||
n_sect: 1
|
||||
n_desc: 16
|
||||
n_value: 4294967296
|
||||
- n_strx: 22
|
||||
n_type: 0xF
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4294983576
|
||||
- n_strx: 27
|
||||
n_type: 0xF
|
||||
n_sect: 1
|
||||
n_desc: 0
|
||||
n_value: 4294983580
|
||||
StringTable:
|
||||
- ' '
|
||||
- __mh_execute_header
|
||||
- _foo
|
||||
- _main
|
||||
- '/tmp/'
|
||||
- main.c
|
||||
- '/var/folders/gj/wf3swl0x215b2sq1qy84kzkm0000gn/T/main-e32fe7.o'
|
||||
- _foo
|
||||
- _main
|
||||
...
|
|
@ -10053,6 +10053,10 @@ static void PrintLinkEditDataCommand(MachO::linkedit_data_command ld,
|
|||
outs() << " cmd LC_DYLIB_CODE_SIGN_DRS\n";
|
||||
else if (ld.cmd == MachO::LC_LINKER_OPTIMIZATION_HINT)
|
||||
outs() << " cmd LC_LINKER_OPTIMIZATION_HINT\n";
|
||||
else if (ld.cmd == MachO::LC_DYLD_EXPORTS_TRIE)
|
||||
outs() << " cmd LC_DYLD_EXPORTS_TRIE\n";
|
||||
else if (ld.cmd == MachO::LC_DYLD_CHAINED_FIXUPS)
|
||||
outs() << " cmd LC_DYLD_CHAINED_FIXUPS\n";
|
||||
else
|
||||
outs() << " cmd " << ld.cmd << " (?)\n";
|
||||
outs() << " cmdsize " << ld.cmdsize;
|
||||
|
@ -10196,7 +10200,9 @@ static void PrintLoadCommands(const MachOObjectFile *Obj, uint32_t filetype,
|
|||
Command.C.cmd == MachO::LC_FUNCTION_STARTS ||
|
||||
Command.C.cmd == MachO::LC_DATA_IN_CODE ||
|
||||
Command.C.cmd == MachO::LC_DYLIB_CODE_SIGN_DRS ||
|
||||
Command.C.cmd == MachO::LC_LINKER_OPTIMIZATION_HINT) {
|
||||
Command.C.cmd == MachO::LC_LINKER_OPTIMIZATION_HINT ||
|
||||
Command.C.cmd == MachO::LC_DYLD_EXPORTS_TRIE ||
|
||||
Command.C.cmd == MachO::LC_DYLD_CHAINED_FIXUPS) {
|
||||
MachO::linkedit_data_command Ld =
|
||||
Obj->getLinkeditDataLoadCommand(Command);
|
||||
PrintLinkEditDataCommand(Ld, Buf.size());
|
||||
|
|
Loading…
Reference in New Issue