mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
bda2f27975
This patch adds support to the macho<->yaml tools for preserving endianness in MachO structures and DWARF data. llvm-svn: 290381
475 lines
17 KiB
YAML
475 lines
17 KiB
YAML
# RUN: yaml2obj %s | obj2yaml | FileCheck %s
|
|
|
|
--- !mach-o
|
|
IsLittleEndian: true
|
|
FileHeader:
|
|
magic: 0xFEEDFACF
|
|
cputype: 0x01000007
|
|
cpusubtype: 0x00000003
|
|
filetype: 0x00000001
|
|
ncmds: 4
|
|
sizeofcmds: 1392
|
|
flags: 0x00002000
|
|
reserved: 0x00000000
|
|
LoadCommands:
|
|
- cmd: LC_SEGMENT_64
|
|
cmdsize: 1272
|
|
segname: ''
|
|
vmaddr: 0
|
|
vmsize: 1086
|
|
fileoff: 1424
|
|
filesize: 1086
|
|
maxprot: 7
|
|
initprot: 7
|
|
nsects: 15
|
|
flags: 0
|
|
Sections:
|
|
- sectname: __text
|
|
segname: __TEXT
|
|
addr: 0x0000000000000000
|
|
size: 93
|
|
offset: 0x00000590
|
|
align: 4
|
|
reloff: 0x000009D0
|
|
nreloc: 3
|
|
flags: 0x80000400
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __cstring
|
|
segname: __TEXT
|
|
addr: 0x000000000000005D
|
|
size: 48
|
|
offset: 0x000005ED
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x00000002
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_str
|
|
segname: __DWARF
|
|
addr: 0x000000000000008D
|
|
size: 182
|
|
offset: 0x0000061D
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_loc
|
|
segname: __DWARF
|
|
addr: 0x0000000000000143
|
|
size: 0
|
|
offset: 0x000006D3
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_abbrev
|
|
segname: __DWARF
|
|
addr: 0x0000000000000143
|
|
size: 104
|
|
offset: 0x000006D3
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_info
|
|
segname: __DWARF
|
|
addr: 0x00000000000001AB
|
|
size: 146
|
|
offset: 0x0000073B
|
|
align: 0
|
|
reloff: 0x000009E8
|
|
nreloc: 2
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_ranges
|
|
segname: __DWARF
|
|
addr: 0x000000000000023D
|
|
size: 0
|
|
offset: 0x000007CD
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_macinfo
|
|
segname: __DWARF
|
|
addr: 0x000000000000023D
|
|
size: 1
|
|
offset: 0x000007CD
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __apple_names
|
|
segname: __DWARF
|
|
addr: 0x000000000000023E
|
|
size: 60
|
|
offset: 0x000007CE
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __apple_objc
|
|
segname: __DWARF
|
|
addr: 0x000000000000027A
|
|
size: 36
|
|
offset: 0x0000080A
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __apple_namespac
|
|
segname: __DWARF
|
|
addr: 0x000000000000029E
|
|
size: 36
|
|
offset: 0x0000082E
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __apple_types
|
|
segname: __DWARF
|
|
addr: 0x00000000000002C2
|
|
size: 133
|
|
offset: 0x00000852
|
|
align: 0
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __compact_unwind
|
|
segname: __LD
|
|
addr: 0x0000000000000348
|
|
size: 32
|
|
offset: 0x000008D8
|
|
align: 3
|
|
reloff: 0x000009F8
|
|
nreloc: 1
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __eh_frame
|
|
segname: __TEXT
|
|
addr: 0x0000000000000368
|
|
size: 64
|
|
offset: 0x000008F8
|
|
align: 3
|
|
reloff: 0x00000000
|
|
nreloc: 0
|
|
flags: 0x6800000B
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- sectname: __debug_line
|
|
segname: __DWARF
|
|
addr: 0x00000000000003A8
|
|
size: 150
|
|
offset: 0x00000938
|
|
align: 0
|
|
reloff: 0x00000A00
|
|
nreloc: 1
|
|
flags: 0x02000000
|
|
reserved1: 0x00000000
|
|
reserved2: 0x00000000
|
|
reserved3: 0x00000000
|
|
- cmd: LC_VERSION_MIN_MACOSX
|
|
cmdsize: 16
|
|
version: 658432
|
|
sdk: 0
|
|
- cmd: LC_SYMTAB
|
|
cmdsize: 24
|
|
symoff: 2568
|
|
nsyms: 2
|
|
stroff: 2600
|
|
strsize: 36
|
|
- cmd: LC_DYSYMTAB
|
|
cmdsize: 80
|
|
ilocalsym: 0
|
|
nlocalsym: 0
|
|
iextdefsym: 0
|
|
nextdefsym: 1
|
|
iundefsym: 1
|
|
nundefsym: 1
|
|
tocoff: 0
|
|
ntoc: 0
|
|
modtaboff: 0
|
|
nmodtab: 0
|
|
extrefsymoff: 0
|
|
nextrefsyms: 0
|
|
indirectsymoff: 0
|
|
nindirectsyms: 0
|
|
extreloff: 0
|
|
nextrel: 0
|
|
locreloff: 0
|
|
nlocrel: 0
|
|
LinkEditData:
|
|
NameList:
|
|
- n_strx: 24
|
|
n_type: 0x0F
|
|
n_sect: 1
|
|
n_desc: 0
|
|
n_value: 0
|
|
- n_strx: 1
|
|
n_type: 0x01
|
|
n_sect: 0
|
|
n_desc: 0
|
|
n_value: 0
|
|
StringTable:
|
|
- ''
|
|
- _compilerrt_abort_impl
|
|
- ___absvdi2
|
|
- ''
|
|
DWARF:
|
|
debug_str:
|
|
- 'clang version 4.0.0 (trunk 290181) (llvm/trunk 290209)'
|
|
- ../compiler-rt/lib/builtins/absvdi2.c
|
|
- /Users/cbieneman/dev/open-source/llvm-build-rel
|
|
- int
|
|
- di_int
|
|
- long long int
|
|
- __absvdi2
|
|
- a
|
|
- N
|
|
- t
|
|
debug_abbrev:
|
|
- Code: 0x00000001
|
|
Tag: DW_TAG_compile_unit
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_producer
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_language
|
|
Form: DW_FORM_data2
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_stmt_list
|
|
Form: DW_FORM_sec_offset
|
|
- Attribute: DW_AT_comp_dir
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_low_pc
|
|
Form: DW_FORM_addr
|
|
- Attribute: DW_AT_high_pc
|
|
Form: DW_FORM_data4
|
|
- Code: 0x00000002
|
|
Tag: DW_TAG_base_type
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_encoding
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_byte_size
|
|
Form: DW_FORM_data1
|
|
- Code: 0x00000003
|
|
Tag: DW_TAG_typedef
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_decl_file
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_decl_line
|
|
Form: DW_FORM_data1
|
|
- Code: 0x00000004
|
|
Tag: DW_TAG_subprogram
|
|
Children: DW_CHILDREN_yes
|
|
Attributes:
|
|
- Attribute: DW_AT_low_pc
|
|
Form: DW_FORM_addr
|
|
- Attribute: DW_AT_high_pc
|
|
Form: DW_FORM_data4
|
|
- Attribute: DW_AT_frame_base
|
|
Form: DW_FORM_exprloc
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_decl_file
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_decl_line
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_prototyped
|
|
Form: DW_FORM_flag_present
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Attribute: DW_AT_external
|
|
Form: DW_FORM_flag_present
|
|
- Code: 0x00000005
|
|
Tag: DW_TAG_formal_parameter
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_location
|
|
Form: DW_FORM_exprloc
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_decl_file
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_decl_line
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Code: 0x00000006
|
|
Tag: DW_TAG_variable
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_location
|
|
Form: DW_FORM_exprloc
|
|
- Attribute: DW_AT_name
|
|
Form: DW_FORM_strp
|
|
- Attribute: DW_AT_decl_file
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_decl_line
|
|
Form: DW_FORM_data1
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
- Code: 0x00000007
|
|
Tag: DW_TAG_const_type
|
|
Children: DW_CHILDREN_no
|
|
Attributes:
|
|
- Attribute: DW_AT_type
|
|
Form: DW_FORM_ref4
|
|
...
|
|
|
|
#CHECK: DWARF:
|
|
#CHECK: debug_str:
|
|
#CHECK: - 'clang version 4.0.0 (trunk 290181) (llvm/trunk 290209)'
|
|
#CHECK: - ../compiler-rt/lib/builtins/absvdi2.c
|
|
#CHECK: - /Users/cbieneman/dev/open-source/llvm-build-rel
|
|
#CHECK: - int
|
|
#CHECK: - di_int
|
|
#CHECK: - long long int
|
|
#CHECK: - __absvdi2
|
|
#CHECK: - a
|
|
#CHECK: - N
|
|
#CHECK: - t
|
|
#CHECK: debug_abbrev:
|
|
#CHECK: - Code: 0x00000001
|
|
#CHECK: Tag: DW_TAG_compile_unit
|
|
#CHECK: Children: DW_CHILDREN_yes
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_producer
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_language
|
|
#CHECK: Form: DW_FORM_data2
|
|
#CHECK: - Attribute: DW_AT_name
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_stmt_list
|
|
#CHECK: Form: DW_FORM_sec_offset
|
|
#CHECK: - Attribute: DW_AT_comp_dir
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_low_pc
|
|
#CHECK: Form: DW_FORM_addr
|
|
#CHECK: - Attribute: DW_AT_high_pc
|
|
#CHECK: Form: DW_FORM_data4
|
|
#CHECK: - Code: 0x00000002
|
|
#CHECK: Tag: DW_TAG_base_type
|
|
#CHECK: Children: DW_CHILDREN_no
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_name
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_encoding
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_byte_size
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Code: 0x00000003
|
|
#CHECK: Tag: DW_TAG_typedef
|
|
#CHECK: Children: DW_CHILDREN_no
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_type
|
|
#CHECK: Form: DW_FORM_ref4
|
|
#CHECK: - Attribute: DW_AT_name
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_decl_file
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_decl_line
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Code: 0x00000004
|
|
#CHECK: Tag: DW_TAG_subprogram
|
|
#CHECK: Children: DW_CHILDREN_yes
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_low_pc
|
|
#CHECK: Form: DW_FORM_addr
|
|
#CHECK: - Attribute: DW_AT_high_pc
|
|
#CHECK: Form: DW_FORM_data4
|
|
#CHECK: - Attribute: DW_AT_frame_base
|
|
#CHECK: Form: DW_FORM_exprloc
|
|
#CHECK: - Attribute: DW_AT_name
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_decl_file
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_decl_line
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_prototyped
|
|
#CHECK: Form: DW_FORM_flag_present
|
|
#CHECK: - Attribute: DW_AT_type
|
|
#CHECK: Form: DW_FORM_ref4
|
|
#CHECK: - Attribute: DW_AT_external
|
|
#CHECK: Form: DW_FORM_flag_present
|
|
#CHECK: - Code: 0x00000005
|
|
#CHECK: Tag: DW_TAG_formal_parameter
|
|
#CHECK: Children: DW_CHILDREN_no
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_location
|
|
#CHECK: Form: DW_FORM_exprloc
|
|
#CHECK: - Attribute: DW_AT_name
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_decl_file
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_decl_line
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_type
|
|
#CHECK: Form: DW_FORM_ref4
|
|
#CHECK: - Code: 0x00000006
|
|
#CHECK: Tag: DW_TAG_variable
|
|
#CHECK: Children: DW_CHILDREN_no
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_location
|
|
#CHECK: Form: DW_FORM_exprloc
|
|
#CHECK: - Attribute: DW_AT_name
|
|
#CHECK: Form: DW_FORM_strp
|
|
#CHECK: - Attribute: DW_AT_decl_file
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_decl_line
|
|
#CHECK: Form: DW_FORM_data1
|
|
#CHECK: - Attribute: DW_AT_type
|
|
#CHECK: Form: DW_FORM_ref4
|
|
#CHECK: - Code: 0x00000007
|
|
#CHECK: Tag: DW_TAG_const_type
|
|
#CHECK: Children: DW_CHILDREN_no
|
|
#CHECK: Attributes:
|
|
#CHECK: - Attribute: DW_AT_type
|
|
#CHECK: Form: DW_FORM_ref4
|
|
#CHECK: ...
|