]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/startstop.s
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / ELF / startstop.s
1 // REQUIRES: x86
2 // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
3 // RUN: ld.lld --hash-style=sysv %t -o %tout -shared
4 // RUN: llvm-objdump -d %tout | FileCheck -check-prefix=DISASM %s
5 // RUN: llvm-readobj -symbols -r %tout | FileCheck -check-prefix=SYMBOL %s
6
7 // DISASM: _start:
8 // DISASM:    1000:       {{.*}}  callq   10
9 // DISASM:    1005:       {{.*}}  callq   8
10 // DISASM:    100a:       {{.*}}  callq   3
11 // DISASM: Disassembly of section foo:
12 // DISASM: __start_foo:
13 // DISASM:    100f:       90      nop
14 // DISASM:    1010:       90      nop
15 // DISASM:    1011:       90      nop
16 // DISASM: Disassembly of section bar:
17 // DISASM: __start_bar:
18 // DISASM:    1012:       90      nop
19 // DISASM:    1013:       90      nop
20 // DISASM:    1014:       90      nop
21
22 // SYMBOL:      Relocations [
23 // SYMBOL-NEXT:   Section ({{.*}}) .rela.dyn {
24 // SYMBOL-NEXT:     R_X86_64_RELATIVE
25 // SYMBOL-NEXT:     R_X86_64_RELATIVE
26 // SYMBOL-NEXT:     R_X86_64_RELATIVE
27 // SYMBOL-NEXT:     R_X86_64_RELATIVE
28 // SYMBOL-NEXT:   }
29 // SYMBOL-NEXT: ]
30
31 // SYMBOL: Symbol {
32 // SYMBOL:   Name: __start_bar
33 // SYMBOL:   Value: 0x1012
34 // SYMBOL:   STV_HIDDEN
35 // SYMBOL:   Section: bar
36 // SYMBOL: }
37 // SYMBOL-NOT:   Section: __stop_bar
38 // SYMBOL: Symbol {
39 // SYMBOL:   Name: __start_foo
40 // SYMBOL:   Value: 0x100F
41 // SYMBOL:   STV_HIDDEN
42 // SYMBOL:   Section: foo
43 // SYMBOL: }
44 // SYMBOL: Symbol {
45 // SYMBOL:   Name: __stop_foo
46 // SYMBOL:   Value: 0x1012
47 // SYMBOL:   STV_HIDDEN
48 // SYMBOL:   Section: foo
49 // SYMBOL: }
50
51 // SYMBOL: Symbol {
52 // SYMBOL:   Name: __stop_zed1
53 // SYMBOL:   Value: 0x2010
54 // SYMBOL:   STV_PROTECTED
55 // SYMBOL:   Section: zed1
56 // SYMBOL: }
57 // SYMBOL: Symbol {
58 // SYMBOL:   Name: __stop_zed2
59 // SYMBOL:   Value: 0x2020
60 // SYMBOL:   STV_PROTECTED
61 // SYMBOL:   Section: zed2
62 // SYMBOL: }
63
64 .hidden __start_foo
65 .hidden __stop_foo
66 .hidden __start_bar
67 .global _start
68 .text
69 _start:
70         call __start_foo
71         call __stop_foo
72         call __start_bar
73
74 .section foo,"ax"
75         nop
76         nop
77         nop
78
79 .section bar,"ax"
80         nop
81         nop
82         nop
83
84 .section zed1, "aw"
85         .quad __stop_zed2
86         .quad __stop_zed2 + 1
87
88 .section zed2, "aw"
89         .quad __stop_zed1
90         .quad __stop_zed1 + 1