1# RUN: ld64.lld -arch x86_64 %s %p/Inputs/interposing-section.yaml \ 2# RUN: -dylib -o %t %p/Inputs/x86_64/libSystem.yaml 3# RUN: llvm-objdump --private-headers %t | FileCheck %s 4# 5# RUN: ld64.lld -arch x86_64 %s -r -o %t1 6# RUN: llvm-objdump --private-headers %t1 | FileCheck %s 7# 8# Test that interposing section is preserved by linker. 9# 10 11--- !mach-o 12arch: x86_64 13file-type: MH_OBJECT 14flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ] 15sections: 16 - segment: __TEXT 17 section: __text 18 type: S_REGULAR 19 attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ] 20 address: 0x0000000000000000 21 content: [ 0x55, 0x48, 0x89, 0xE5, 0x31, 0xC0, 0x5D, 0xE9, 22 0x00, 0x00, 0x00, 0x00 ] 23 relocations: 24 - offset: 0x00000008 25 type: X86_64_RELOC_BRANCH 26 length: 2 27 pc-rel: true 28 extern: true 29 symbol: 2 30 - segment: __DATA 31 section: __interpose 32 type: S_INTERPOSING 33 attributes: [ ] 34 alignment: 8 35 address: 0x0000000000000010 36 content: [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ] 38 relocations: 39 - offset: 0x00000008 40 type: X86_64_RELOC_UNSIGNED 41 length: 3 42 pc-rel: false 43 extern: true 44 symbol: 2 45 - offset: 0x00000000 46 type: X86_64_RELOC_UNSIGNED 47 length: 3 48 pc-rel: false 49 extern: true 50 symbol: 0 51local-symbols: 52 - name: _my_open 53 type: N_SECT 54 sect: 1 55 value: 0x0000000000000000 56 - name: __interpose_open 57 type: N_SECT 58 sect: 2 59 desc: [ N_NO_DEAD_STRIP ] 60 value: 0x0000000000000010 61undefined-symbols: 62 - name: _open 63 type: N_UNDF 64 scope: [ N_EXT ] 65 value: 0x0000000000000000 66... 67 68 69# CHECK: sectname __interposing 70# CHECK: segname __DATA 71# CHECK: type S_INTERPOSING 72 73