1 # Check R_MIPS_COPY relocation emitting
2 # when linking non-shared executable file.
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
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
20 # CHECK: DynamicSymbols [
21 # CHECK-NEXT: Symbol {
22 # CHECK-NEXT: Name: @ (0)
23 # CHECK-NEXT: Value: 0x0
25 # CHECK-NEXT: Binding: Local (0x0)
26 # CHECK-NEXT: Type: None (0x0)
27 # CHECK-NEXT: Other: 0
28 # CHECK-NEXT: Section: Undefined (0x0)
30 # CHECK-NEXT: Symbol {
31 # CHECK-NEXT: Name: D1@ (1)
32 # CHECK-NEXT: Value: 0x402010
34 # CHECK-NEXT: Binding: Global (0x1)
35 # CHECK-NEXT: Type: Object (0x1)
36 # CHECK-NEXT: Other: 0
37 # CHECK-NEXT: Section: .bss (0xA)
39 # CHECK-NEXT: Symbol {
40 # CHECK-NEXT: Name: D3@ (4)
41 # CHECK-NEXT: Value: 0x402018
43 # CHECK-NEXT: Binding: Global (0x1)
44 # CHECK-NEXT: Type: Object (0x1)
45 # CHECK-NEXT: Other: 0
46 # CHECK-NEXT: Section: .bss (0xA)
48 # CHECK-NEXT: Symbol {
49 # CHECK-NEXT: Name: D2@ (7)
50 # CHECK-NEXT: Value: 0x0
52 # CHECK-NEXT: Binding: Global (0x1)
53 # CHECK-NEXT: Type: Object (0x1)
54 # CHECK-NEXT: Other: 0
55 # CHECK-NEXT: Section: Undefined (0x0)
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
72 Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
79 Flags: [SHF_WRITE, SHF_ALLOC]
101 Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
108 Flags: [SHF_WRITE, SHF_ALLOC]
125 Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
132 Flags: [SHF_EXECINSTR, SHF_ALLOC]
138 Flags: [SHF_WRITE, SHF_ALLOC]