# RUN: ld64.lld -arch arm64 %s %p/Inputs/hello-world-arm64.yaml -o %t # RUN: obj2yaml %t | FileCheck %s # --- !mach-o arch: arm64 file-type: MH_OBJECT flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ] sections: - segment: __TEXT section: __text type: S_REGULAR attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ] alignment: 2 address: 0x0000000000000000 content: [ 0xFD, 0x7B, 0xBF, 0xA9, 0xFD, 0x03, 0x00, 0x91, 0x08, 0x00, 0x00, 0x90, 0x08, 0x01, 0x40, 0xF9, 0x00, 0x01, 0x40, 0xF9, 0x01, 0x00, 0x00, 0x90, 0x21, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x80, 0x52, 0xFD, 0x7B, 0xC1, 0xA8, 0xC0, 0x03, 0x5F, 0xD6 ] relocations: - offset: 0x0000001C type: ARM64_RELOC_BRANCH26 length: 2 pc-rel: true extern: true symbol: 5 - offset: 0x00000018 type: ARM64_RELOC_PAGEOFF12 length: 2 pc-rel: false extern: true symbol: 1 - offset: 0x00000014 type: ARM64_RELOC_PAGE21 length: 2 pc-rel: true extern: true symbol: 1 - offset: 0x0000000C type: ARM64_RELOC_GOT_LOAD_PAGEOFF12 length: 2 pc-rel: false extern: true symbol: 4 - offset: 0x00000008 type: ARM64_RELOC_GOT_LOAD_PAGE21 length: 2 pc-rel: true extern: true symbol: 4 - segment: __TEXT section: __cstring type: S_CSTRING_LITERALS attributes: [ ] address: 0x000000000000002C content: [ 0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x00 ] local-symbols: - name: ltmp0 type: N_SECT sect: 1 value: 0x0000000000000000 - name: l_.str type: N_SECT sect: 2 value: 0x000000000000002C - name: ltmp1 type: N_SECT sect: 2 value: 0x000000000000002C global-symbols: - name: _main type: N_SECT scope: [ N_EXT ] sect: 1 value: 0x0000000000000000 undefined-symbols: - name: ___stdoutp type: N_UNDF scope: [ N_EXT ] value: 0x0000000000000000 - name: _fprintf type: N_UNDF scope: [ N_EXT ] value: 0x0000000000000000 ... # CHECK: BindOpcodes: # CHECK: - Opcode: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM # CHECK: Imm: 1 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM # CHECK: Imm: 0 # CHECK: Symbol: dyld_stub_binder # CHECK: - Opcode: BIND_OPCODE_SET_TYPE_IMM # CHECK: Imm: 1 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB # CHECK: Imm: 2 # CHECK: ULEBExtraData: # CHECK: - 0x0000000000000000 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_DO_BIND # CHECK: Imm: 0 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM # CHECK: Imm: 0 # CHECK: Symbol: ___stdoutp # CHECK: - Opcode: BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB # CHECK: Imm: 2 # CHECK: ULEBExtraData: # CHECK: - 0x0000000000000010 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_DO_BIND # CHECK: Imm: 0 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_DONE # CHECK: Imm: 0 # CHECK: Symbol: '' # CHECK: LazyBindOpcodes: # CHECK: - Opcode: BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB # CHECK: Imm: 2 # CHECK: ULEBExtraData: # CHECK: - 0x0000000000000018 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_SET_DYLIB_ORDINAL_IMM # CHECK: Imm: 1 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM # CHECK: Imm: 0 # CHECK: Symbol: _fprintf # CHECK: - Opcode: BIND_OPCODE_DO_BIND # CHECK: Imm: 0 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_DONE # CHECK: Imm: 0 # CHECK: Symbol: '' # CHECK: - Opcode: BIND_OPCODE_DONE # CHECK: Imm: 0 # CHECK: Symbol: ''