1# RUN: ld64.lld -arch x86_64 -dylib %p/Inputs/bar.yaml \
2# RUN:     -install_name /usr/lib/libbar.dylib %p/Inputs/x86_64/libSystem.yaml -o %t1.dylib
3# RUN: ld64.lld -arch x86_64 -dylib %s -upward_library  %t1.dylib \
4# RUN:      -install_name /usr/lib/libfoo.dylib %p/Inputs/x86_64/libSystem.yaml -o %t
5# RUN: llvm-objdump --private-headers %t | FileCheck %s
6#
7#
8# Test upward linking: 1) build libbar.dylib, 2) build libfoo.dylib and upward
9# like with libbar.dylib, 3) dump load commands of libfoo and verify upward link.
10#
11
12--- !mach-o
13arch:            x86_64
14file-type:       MH_OBJECT
15flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
16sections:
17  - segment:         __TEXT
18    section:         __text
19    type:            S_REGULAR
20    attributes:      [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
21    address:         0x0000000000000000
22    content:         [ 0x55, 0x48, 0x89, 0xE5, 0x31, 0xC0, 0x5D, 0xE9,
23                       0x00, 0x00, 0x00, 0x00 ]
24    relocations:
25      - offset:          0x00000008
26        type:            X86_64_RELOC_BRANCH
27        length:          2
28        pc-rel:          true
29        extern:          true
30        symbol:          1
31global-symbols:
32  - name:            _foo
33    type:            N_SECT
34    scope:           [ N_EXT ]
35    sect:            1
36    value:           0x0000000000000000
37undefined-symbols:
38  - name:            _bar
39    type:            N_UNDF
40    scope:           [ N_EXT ]
41    value:           0x0000000000000000
42
43...
44
45
46# CHECK:	              cmd LC_LOAD_UPWARD_DYLIB
47# CHECK-NEXT:	      cmdsize 48
48# CHECK-NEXT:	         name /usr/lib/libbar.dylib (offset 24)
49