]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/relocation-non-alloc.s
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / ELF / relocation-non-alloc.s
1 // REQUIRES: x86
2
3 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
4 // RUN: ld.lld %t -o %t2 -shared --apply-dynamic-relocs
5 // RUN: llvm-readobj -s -section-data -r %t2 | FileCheck -check-prefix CHECK -check-prefix APPLYDYNREL %s
6
7 // RUN: ld.lld %t -o %t2 -shared
8 // RUN: llvm-readobj -s -section-data -r %t2 | FileCheck -check-prefix CHECK -check-prefix NOAPPLYDYNREL %s
9 // RUN: ld.lld %t -o %t2 -shared --no-apply-dynamic-relocs
10 // RUN: llvm-readobj -s -section-data -r %t2 | FileCheck -check-prefix CHECK -check-prefix NOAPPLYDYNREL %s
11
12 // APPLYDYNREL:      Name: .data
13 // APPLYDYNREL-NEXT: Type: SHT_PROGBITS
14 // APPLYDYNREL-NEXT: Flags [
15 // APPLYDYNREL-NEXT:   SHF_ALLOC
16 // APPLYDYNREL-NEXT:   SHF_WRITE
17 // APPLYDYNREL-NEXT: ]
18 // APPLYDYNREL-NEXT: Address: 0x1000
19 // APPLYDYNREL-NEXT: Offset: 0x1000
20 // APPLYDYNREL-NEXT: Size: 16
21 // APPLYDYNREL-NEXT: Link: 0
22 // APPLYDYNREL-NEXT: Info: 0
23 // APPLYDYNREL-NEXT: AddressAlignment: 1
24 // APPLYDYNREL-NEXT: EntrySize: 0
25 // APPLYDYNREL-NEXT: SectionData (
26 // APPLYDYNREL-NEXT:   0000: 00100000 00000000 00000000 00000000
27 // APPLYDYNREL-NEXT: )
28
29 // NOAPPLYDYNREL:      Name: .data
30 // NOAPPLYDYNREL-NEXT: Type: SHT_PROGBITS
31 // NOAPPLYDYNREL-NEXT: Flags [
32 // NOAPPLYDYNREL-NEXT:   SHF_ALLOC
33 // NOAPPLYDYNREL-NEXT:   SHF_WRITE
34 // NOAPPLYDYNREL-NEXT: ]
35 // NOAPPLYDYNREL-NEXT: Address: 0x1000
36 // NOAPPLYDYNREL-NEXT: Offset: 0x1000
37 // NOAPPLYDYNREL-NEXT: Size: 16
38 // NOAPPLYDYNREL-NEXT: Link: 0
39 // NOAPPLYDYNREL-NEXT: Info: 0
40 // NOAPPLYDYNREL-NEXT: AddressAlignment: 1
41 // NOAPPLYDYNREL-NEXT: EntrySize: 0
42 // NOAPPLYDYNREL-NEXT: SectionData (
43 // NOAPPLYDYNREL-NEXT:   0000: 00000000 00000000 00000000 00000000
44 // NOAPPLYDYNREL-NEXT: )
45
46 // CHECK:      Name: foo
47 // CHECK-NEXT: Type: SHT_PROGBITS
48 // CHECK-NEXT:    Flags [
49 // CHECK-NEXT: ]
50 // CHECK-NEXT: Address: 0x0
51 // CHECK-NEXT: Offset:
52 // CHECK-NEXT: Size: 32
53 // CHECK-NEXT: Link: 0
54 // CHECK-NEXT: Info: 0
55 // CHECK-NEXT: AddressAlignment: 1
56 // CHECK-NEXT: EntrySize: 0
57 // CHECK-NEXT: SectionData (
58 // CHECK-NEXT:   0000: 00100000 00000000 00100000 00000000
59 // CHECK-NEXT:   0010: 00100000 00000000 00100000 00000000
60 // CHECK-NEXT: )
61
62 // CHECK:      Relocations [
63 // CHECK-NEXT:   Section ({{.}}) .rela.dyn {
64 // CHECK-NEXT:     0x1000 R_X86_64_RELATIVE - 0x1000
65 // CHECK-NEXT:     0x1008 R_X86_64_64 zed 0x0
66 // CHECK-NEXT:   }
67 // CHECK-NEXT: ]
68
69 .data
70         .global zed
71 zed:
72 bar:
73         .quad bar
74         .quad zed
75
76         .section foo
77         .quad bar
78         .quad zed
79
80         .section foo
81         .quad bar
82         .quad zed