1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/test/ObjectYAML/MachO/symtab.yaml
Chris Bieneman 45ad72aa8e [obj2yaml] [yaml2obj] Support for MachO nlist and string table
This commit adds round tripping for MachO symbol data. Symbols are entries in the name list, that contain offsets into the string table which is at the end of the __LINKEDIT segment.

llvm-svn: 271604
2016-06-02 22:54:06 +00:00

512 lines
16 KiB
YAML

# RUN: yaml2obj -format=macho %s | obj2yaml | FileCheck %s
--- !mach-o
FileHeader:
magic: 0xFEEDFACF
cputype: 0x01000007
cpusubtype: 0x80000003
filetype: 0x00000002
ncmds: 16
sizeofcmds: 1408
flags: 0x00218085
reserved: 0x00000000
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: 552
segname: __TEXT
vmaddr: 4294967296
vmsize: 8192
fileoff: 0
filesize: 8192
maxprot: 7
initprot: 5
nsects: 6
flags: 0
Sections:
- cmd: LC_SEGMENT_64
cmdsize: 312
segname: __DATA
vmaddr: 4294975488
vmsize: 4096
fileoff: 8192
filesize: 4096
maxprot: 7
initprot: 3
nsects: 3
flags: 0
Sections:
- cmd: LC_SEGMENT_64
cmdsize: 72
segname: __LINKEDIT
vmaddr: 4294979584
vmsize: 4096
fileoff: 12288
filesize: 2508
maxprot: 7
initprot: 1
nsects: 0
flags: 0
- cmd: LC_DYLD_INFO_ONLY
cmdsize: 48
rebase_off: 12288
rebase_size: 8
bind_off: 12296
bind_size: 96
weak_bind_off: 0
weak_bind_size: 0
lazy_bind_off: 12392
lazy_bind_size: 624
export_off: 13016
export_size: 48
- cmd: LC_SYMTAB
cmdsize: 24
symoff: 13080
nsyms: 30
stroff: 13700
strsize: 1096
- cmd: LC_DYSYMTAB
cmdsize: 80
ilocalsym: 0
nlocalsym: 9
iextdefsym: 9
nextdefsym: 2
iundefsym: 11
nundefsym: 19
tocoff: 0
ntoc: 0
modtaboff: 0
nmodtab: 0
extrefsymoff: 0
nextrefsyms: 0
indirectsymoff: 13560
nindirectsyms: 35
extreloff: 0
nextrel: 0
locreloff: 0
nlocrel: 0
- cmd: LC_LOAD_DYLINKER
cmdsize: 32
name: 12
PayloadString: /usr/lib/dyld
ZeroPadBytes: 7
- cmd: LC_UUID
cmdsize: 24
uuid: 461A1B28-822F-3F38-B670-645419E636F5
- cmd: LC_VERSION_MIN_MACOSX
cmdsize: 16
version: 658176
sdk: 658176
- cmd: LC_SOURCE_VERSION
cmdsize: 16
version: 0
- cmd: LC_MAIN
cmdsize: 24
entryoff: 4448
stacksize: 0
- cmd: LC_LOAD_DYLIB
cmdsize: 48
dylib:
name: 24
timestamp: 2
current_version: 7864576
compatibility_version: 65536
PayloadString: '/usr/lib/libc++.1.dylib'
ZeroPadBytes: 1
- cmd: LC_LOAD_DYLIB
cmdsize: 56
dylib:
name: 24
timestamp: 2
current_version: 80349697
compatibility_version: 65536
PayloadString: /usr/lib/libSystem.B.dylib
ZeroPadBytes: 6
- cmd: LC_FUNCTION_STARTS
cmdsize: 16
dataoff: 13064
datasize: 16
- cmd: LC_DATA_IN_CODE
cmdsize: 16
dataoff: 13080
datasize: 0
LinkEditData:
NameList:
- n_strx: 2
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294971808
- n_strx: 69
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294971888
- n_strx: 166
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294973024
- n_strx: 204
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294973056
- n_strx: 320
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294974784
- n_strx: 344
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294974800
- n_strx: 387
n_type: 30
n_sect: 1
n_desc: 128
n_value: 4294974832
- n_strx: 420
n_type: 14
n_sect: 4
n_desc: 0
n_value: 4294975104
- n_strx: 438
n_type: 14
n_sect: 4
n_desc: 0
n_value: 4294975280
- n_strx: 456
n_type: 15
n_sect: 1
n_desc: 16
n_value: 4294967296
- n_strx: 476
n_type: 15
n_sect: 1
n_desc: 0
n_value: 4294971744
- n_strx: 482
n_type: 1
n_sect: 0
n_desc: 512
n_value: 0
- n_strx: 498
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 537
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 567
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 642
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 711
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 774
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 834
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 851
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 875
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 897
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 954
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 982
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 999
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 1018
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 1035
n_type: 1
n_sect: 0
n_desc: 256
n_value: 0
- n_strx: 1057
n_type: 1
n_sect: 0
n_desc: 512
n_value: 0
- n_strx: 1065
n_type: 1
n_sect: 0
n_desc: 512
n_value: 0
- n_strx: 1073
n_type: 1
n_sect: 0
n_desc: 512
n_value: 0
StringTable:
- ' '
- __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc
- __ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m
- __ZNSt3__111char_traitsIcE6lengthEPKc
- __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
- ___clang_call_terminate
- __ZNSt3__111char_traitsIcE11eq_int_typeEii
- __ZNSt3__111char_traitsIcE3eofEv
- GCC_except_table2
- GCC_except_table4
- __mh_execute_header
- _main
- __Unwind_Resume
- __ZNKSt3__16locale9use_facetERNS0_2idE
- __ZNKSt3__18ios_base6getlocEv
- __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEmc
- __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
- __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3_
- __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev
- __ZNSt3__14coutE
- __ZNSt3__15ctypeIcE2idE
- __ZNSt3__16localeD1Ev
- __ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv
- __ZNSt3__18ios_base5clearEj
- __ZSt9terminatev
- ___cxa_begin_catch
- ___cxa_end_catch
- ___gxx_personality_v0
- _memset
- _strlen
- dyld_stub_binder
...
#CHECK: NameList:
#CHECK: - n_strx: 2
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294971808
#CHECK: - n_strx: 69
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294971888
#CHECK: - n_strx: 166
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294973024
#CHECK: - n_strx: 204
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294973056
#CHECK: - n_strx: 320
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294974784
#CHECK: - n_strx: 344
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294974800
#CHECK: - n_strx: 387
#CHECK: n_type: 30
#CHECK: n_sect: 1
#CHECK: n_desc: 128
#CHECK: n_value: 4294974832
#CHECK: - n_strx: 420
#CHECK: n_type: 14
#CHECK: n_sect: 4
#CHECK: n_desc: 0
#CHECK: n_value: 4294975104
#CHECK: - n_strx: 438
#CHECK: n_type: 14
#CHECK: n_sect: 4
#CHECK: n_desc: 0
#CHECK: n_value: 4294975280
#CHECK: - n_strx: 456
#CHECK: n_type: 15
#CHECK: n_sect: 1
#CHECK: n_desc: 16
#CHECK: n_value: 4294967296
#CHECK: - n_strx: 476
#CHECK: n_type: 15
#CHECK: n_sect: 1
#CHECK: n_desc: 0
#CHECK: n_value: 4294971744
#CHECK: - n_strx: 482
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 512
#CHECK: n_value: 0
#CHECK: - n_strx: 498
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 537
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 567
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 642
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 711
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 774
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 834
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 851
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 875
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 897
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 954
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 982
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 999
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 1018
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 1035
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 256
#CHECK: n_value: 0
#CHECK: - n_strx: 1057
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 512
#CHECK: n_value: 0
#CHECK: - n_strx: 1065
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 512
#CHECK: n_value: 0
#CHECK: - n_strx: 1073
#CHECK: n_type: 1
#CHECK: n_sect: 0
#CHECK: n_desc: 512
#CHECK: n_value: 0
#CHECK: StringTable:
#CHECK: - ' '
#CHECK: - __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc
#CHECK: - __ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m
#CHECK: - __ZNSt3__111char_traitsIcE6lengthEPKc
#CHECK: - __ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
#CHECK: - ___clang_call_terminate
#CHECK: - __ZNSt3__111char_traitsIcE11eq_int_typeEii
#CHECK: - __ZNSt3__111char_traitsIcE3eofEv
#CHECK: - GCC_except_table2
#CHECK: - GCC_except_table4
#CHECK: - __mh_execute_header
#CHECK: - _main
#CHECK: - __Unwind_Resume
#CHECK: - __ZNKSt3__16locale9use_facetERNS0_2idE
#CHECK: - __ZNKSt3__18ios_base6getlocEv
#CHECK: - __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEmc
#CHECK: - __ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
#CHECK: - __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3_
#CHECK: - __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev
#CHECK: - __ZNSt3__14coutE
#CHECK: - __ZNSt3__15ctypeIcE2idE
#CHECK: - __ZNSt3__16localeD1Ev
#CHECK: - __ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv
#CHECK: - __ZNSt3__18ios_base5clearEj
#CHECK: - __ZSt9terminatev
#CHECK: - ___cxa_begin_catch
#CHECK: - ___cxa_end_catch
#CHECK: - ___gxx_personality_v0
#CHECK: - _memset
#CHECK: - _strlen
#CHECK: - dyld_stub_binder