]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/mach-o/dylib-install-names.yaml
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / mach-o / dylib-install-names.yaml
1 # Check we accept -install_name correctly:
2 # RUN: ld64.lld -arch x86_64 -install_name libwibble.dylib -dylib \
3 # RUN:     -compatibility_version 2.0 -current_version 5.3 \
4 # RUN:     %p/Inputs/x86_64/libSystem.yaml %s -o %t.dylib
5 # RUN: llvm-objdump -private-headers %t.dylib | FileCheck %s --check-prefix=CHECK-BINARY-WRITE
6
7 # Check we read LC_ID_DYLIB correctly:
8 # RUN: ld64.lld -arch x86_64 %p/Inputs/use-dylib-install-names.yaml \
9 # RUN:      %p/Inputs/x86_64/libSystem.yaml %t.dylib -dylib -o %t2.dylib
10 # RUN: llvm-objdump -private-headers %t2.dylib | FileCheck %s --check-prefix=CHECK-BINARY-READ
11
12 # Check we default the install-name to the output file:
13 # RUN: ld64.lld -arch x86_64 -dylib %s -o libwibble.dylib \
14 # RUN:     -compatibility_version 2.0 -current_version 5.3 \
15 # RUN:     %p/Inputs/x86_64/libSystem.yaml
16 # RUN: llvm-objdump -private-headers libwibble.dylib | FileCheck %s --check-prefix=CHECK-BINARY-WRITE
17 # RUN: rm -f libwibble.dylib
18
19 # Check -single_module does nothing
20 # RUN: ld64.lld -arch x86_64 -dylib %s -install_name libwibble.dylib \
21 # RUN:     -compatibility_version 2.0 -current_version 5.3 \
22 # RUN:     -single_module -o %t2.dylib %p/Inputs/x86_64/libSystem.yaml
23 # RUN: llvm-objdump -private-headers %t2.dylib | FileCheck %s --check-prefix=CHECK-BINARY-WRITE
24
25 --- !mach-o
26 arch:            x86_64
27 file-type:       MH_OBJECT
28 flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
29 has-UUID:        false
30 OS:              unknown
31 sections:
32   - segment:         __TEXT
33     section:         __text
34     type:            S_REGULAR
35     attributes:      [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
36     alignment:       4
37     address:         0x0000000000000000
38     content:         [ 0xCC, 0xC3, 0x90, 0xC3, 0x90, 0x90, 0xC3, 0x90,
39                        0x90, 0x90, 0xC3, 0x90, 0x90, 0x90, 0x90, 0xC3,
40                        0x31, 0xC0, 0xC3 ]
41 local-symbols:
42   - name:            _myStatic
43     type:            N_SECT
44     sect:            1
45     value:           0x000000000000000B
46 global-symbols:
47   - name:            _myGlobal
48     type:            N_SECT
49     scope:           [ N_EXT ]
50     sect:            1
51     value:           0x0000000000000001
52 ...
53
54
55 # CHECK-BINARY-WRITE: cmd LC_ID_DYLIB
56 # CHECK-BINARY-WRITE-NEXT: cmdsize 40
57 # CHECK-BINARY-WRITE-NEXT:  name libwibble.dylib (offset 24)
58 # CHECK-BINARY-WRITE-NEXT:  time stamp 1
59 # CHECK-BINARY-WRITE-NEXT:  current version 5.3.0
60 # CHECK-BINARY-WRITE-NEXT:  compatibility version 2.0.0
61
62 # CHECK-BINARY-READ: cmd LC_LOAD_DYLIB
63 # CHECK-BINARY-READ-NEXT: cmdsize 56
64 # CHECK-BINARY-READ-NEXT:  name /usr/lib/libSystem.B.dylib (offset 24)
65 # CHECK-BINARY-READ-NEXT:  time stamp 2
66 # CHECK-BINARY-READ-NEXT:  current version 1.0.0
67 # CHECK-BINARY-READ-NEXT:  compatibility version 1.0.0
68
69 # CHECK-BINARY-READ: cmd LC_LOAD_DYLIB
70 # CHECK-BINARY-READ-NEXT: cmdsize 40
71 # CHECK-BINARY-READ-NEXT:  name libwibble.dylib (offset 24)
72 # CHECK-BINARY-READ-NEXT:  time stamp 2
73 # CHECK-BINARY-READ-NEXT:  current version 5.3.0
74 # CHECK-BINARY-READ-NEXT:  compatibility version 2.0.0