diff options
Diffstat (limited to 'test/mach-o/interposing-section.yaml')
-rw-r--r-- | test/mach-o/interposing-section.yaml | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/test/mach-o/interposing-section.yaml b/test/mach-o/interposing-section.yaml new file mode 100644 index 0000000000000..856d4b91f3d28 --- /dev/null +++ b/test/mach-o/interposing-section.yaml @@ -0,0 +1,79 @@ +# RUN: lld -flavor darwin -arch x86_64 %s -dylib -o %t %p/Inputs/libSystem.yaml +# RUN: llvm-objdump -private-headers %t | FileCheck %s +# +# RUN: lld -flavor darwin -arch x86_64 %s -r -o %t1 +# RUN: llvm-objdump -private-headers %t1 | FileCheck %s +# +# Test that interposing section is preserved by linker. +# + +--- !mach-o +arch: x86_64 +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 ] + address: 0x0000000000000000 + content: [ 0x55, 0x48, 0x89, 0xE5, 0x31, 0xC0, 0x5D, 0xE9, + 0x00, 0x00, 0x00, 0x00 ] + relocations: + - offset: 0x00000008 + type: X86_64_RELOC_BRANCH + length: 2 + pc-rel: true + extern: true + symbol: 2 + - segment: __DATA + section: __interpose + type: S_INTERPOSING + attributes: [ ] + alignment: 3 + address: 0x0000000000000010 + content: [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ] + relocations: + - offset: 0x00000008 + type: X86_64_RELOC_UNSIGNED + length: 3 + pc-rel: false + extern: true + symbol: 2 + - offset: 0x00000000 + type: X86_64_RELOC_UNSIGNED + length: 3 + pc-rel: false + extern: true + symbol: 0 +local-symbols: + - name: _my_open + type: N_SECT + sect: 1 + value: 0x0000000000000000 + - name: __interpose_open + type: N_SECT + sect: 2 + desc: [ N_NO_DEAD_STRIP ] + value: 0x0000000000000010 +undefined-symbols: + - name: _open + type: N_UNDF + scope: [ N_EXT ] + value: 0x0000000000000000 + +--- !mach-o +arch: x86_64 +file-type: MH_DYLIB +install-name: /usr/lib/libSystem.B.dylib +exports: + - name: _open + +... + + +# CHECK: sectname __interposing +# CHECK: segname __DATA +# CHECK: type S_INTERPOSING + |