]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/elf/Mips/rel-copy.test
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / elf / Mips / rel-copy.test
1 # Check R_MIPS_COPY relocation emitting
2 # when linking non-shared executable file.
3 #
4 # RUN: yaml2obj -format=elf -docnum 1 %s > %t-so1.o
5 # RUN: lld -flavor gnu -target mipsel -shared -o %t1.so %t-so1.o
6 # RUN: yaml2obj -format=elf -docnum 2 %s > %t-so2.o
7 # RUN: lld -flavor gnu -target mipsel -shared -o %t2.so %t-so2.o
8 # RUN: yaml2obj -format=elf -docnum 3 %s > %t-o.o
9 # RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t1.so %t2.so
10 # RUN: llvm-readobj -dt -r -dynamic-table %t.exe | FileCheck %s
11
12 # CHECK:      Relocations [
13 # CHECK-NEXT:   Section (5) .rel.dyn {
14 # CHECK-NEXT:     0x402004 R_MIPS_REL32 D2 0x0
15 # CHECK-NEXT:     0x402010 R_MIPS_COPY D1 0x0
16 # CHECK-NEXT:     0x402018 R_MIPS_COPY D3 0x0
17 # CHECK-NEXT:   }
18 # CHECK-NEXT: ]
19
20 # CHECK:      DynamicSymbols [
21 # CHECK-NEXT:   Symbol {
22 # CHECK-NEXT:     Name: @ (0)
23 # CHECK-NEXT:     Value: 0x0
24 # CHECK-NEXT:     Size: 0
25 # CHECK-NEXT:     Binding: Local (0x0)
26 # CHECK-NEXT:     Type: None (0x0)
27 # CHECK-NEXT:     Other: 0
28 # CHECK-NEXT:     Section: Undefined (0x0)
29 # CHECK-NEXT:   }
30 # CHECK-NEXT:   Symbol {
31 # CHECK-NEXT:     Name: D1@ (1)
32 # CHECK-NEXT:     Value: 0x402010
33 # CHECK-NEXT:     Size: 4
34 # CHECK-NEXT:     Binding: Global (0x1)
35 # CHECK-NEXT:     Type: Object (0x1)
36 # CHECK-NEXT:     Other: 0
37 # CHECK-NEXT:     Section: .bss (0xA)
38 # CHECK-NEXT:   }
39 # CHECK-NEXT:   Symbol {
40 # CHECK-NEXT:     Name: D3@ (4)
41 # CHECK-NEXT:     Value: 0x402018
42 # CHECK-NEXT:     Size: 4
43 # CHECK-NEXT:     Binding: Global (0x1)
44 # CHECK-NEXT:     Type: Object (0x1)
45 # CHECK-NEXT:     Other: 0
46 # CHECK-NEXT:     Section: .bss (0xA)
47 # CHECK-NEXT:   }
48 # CHECK-NEXT:   Symbol {
49 # CHECK-NEXT:     Name: D2@ (7)
50 # CHECK-NEXT:     Value: 0x0
51 # CHECK-NEXT:     Size: 4
52 # CHECK-NEXT:     Binding: Global (0x1)
53 # CHECK-NEXT:     Type: Object (0x1)
54 # CHECK-NEXT:     Other: 0
55 # CHECK-NEXT:     Section: Undefined (0x0)
56 # CHECK-NEXT:   }
57 # CHECK-NEXT: ]
58
59 # CHECK:      DynamicSection [ ({{.*}} entries)
60 # CHECK:        0x00000001 NEEDED  SharedLibrary (rel-copy.test.tmp1.so)
61 # CHECK:        0x00000001 NEEDED  SharedLibrary (rel-copy.test.tmp2.so)
62 # CHECK-NEXT:   0x00000000 NULL    0x0
63 # CHECK-NEXT: ]
64
65 # so1.o
66 ---
67 FileHeader:
68   Class:   ELFCLASS32
69   Data:    ELFDATA2LSB
70   Type:    ET_REL
71   Machine: EM_MIPS
72   Flags:   [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
73
74 Sections:
75 - Name:         .data
76   Type:         SHT_PROGBITS
77   Size:         0x08
78   AddressAlign: 16
79   Flags:        [SHF_WRITE, SHF_ALLOC]
80
81 Symbols:
82   Global:
83     - Name: D1
84       Section: .data
85       Type: STT_OBJECT
86       Value: 0x0
87       Size: 4
88     - Name: D2
89       Section: .data
90       Type: STT_OBJECT
91       Value: 0x4
92       Size: 4
93
94 # so2.o
95 ---
96 FileHeader:
97   Class:   ELFCLASS32
98   Data:    ELFDATA2LSB
99   Type:    ET_REL
100   Machine: EM_MIPS
101   Flags:   [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
102
103 Sections:
104 - Name:         .data
105   Type:         SHT_PROGBITS
106   Size:         0x04
107   AddressAlign: 16
108   Flags:        [SHF_WRITE, SHF_ALLOC]
109
110 Symbols:
111   Global:
112     - Name: D3
113       Section: .data
114       Type: STT_OBJECT
115       Value: 0x0
116       Size: 4
117
118 # o.o
119 ---
120 FileHeader:
121   Class:   ELFCLASS32
122   Data:    ELFDATA2LSB
123   Type:    ET_REL
124   Machine: EM_MIPS
125   Flags:   [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
126
127 Sections:
128 - Name:         .text
129   Type:         SHT_PROGBITS
130   Size:         0x08
131   AddressAlign: 16
132   Flags:        [SHF_EXECINSTR, SHF_ALLOC]
133
134 - Name:         .data
135   Type:         SHT_PROGBITS
136   Size:         0x0C
137   AddressAlign: 16
138   Flags:        [SHF_WRITE, SHF_ALLOC]
139
140 - Name: .rel.data
141   Type: SHT_REL
142   Info: .data
143   AddressAlign: 4
144   Relocations:
145     - Offset: 0x00
146       Symbol: D1
147       Type: R_MIPS_HI16
148     - Offset: 0x00
149       Symbol: D1
150       Type: R_MIPS_LO16
151     - Offset: 0x04
152       Symbol: D2
153       Type: R_MIPS_32
154     - Offset: 0x08
155       Symbol: D3
156       Type: R_MIPS_HI16
157     - Offset: 0x08
158       Symbol: D3
159       Type: R_MIPS_LO16
160
161 Symbols:
162   Global:
163     - Name: T0
164       Section: .text
165       Type: STT_FUNC
166       Value: 0x0
167       Size: 8
168     - Name: D0
169       Section: .data
170       Type: STT_OBJECT
171       Value: 0x0
172       Size: 8
173     - Name: D1
174       Type: STT_OBJECT
175     - Name: D2
176     - Name: D3
177 ...