]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/elf/Mips/rel-copy-pc.test
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / elf / Mips / rel-copy-pc.test
1 # Check R_MIPS_COPY relocation emitting caused by R_MIPS_PCHI16 / R_MIPS_PCLO16
2 # relocations when linking non-shared executable file.
3 #
4 # RUN: yaml2obj -format=elf -docnum 1 %s > %t-so.o
5 # RUN: lld -flavor gnu -target mipsel -shared -o %t.so %t-so.o
6 # RUN: yaml2obj -format=elf -docnum 2 %s > %t-o.o
7 # RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe %t-o.o %t.so
8 # RUN: llvm-readobj -dt -r -dynamic-table %t.exe | FileCheck %s
9
10 # CHECK:      Relocations [
11 # CHECK-NEXT:   Section (5) .rel.dyn {
12 # CHECK-NEXT:     0x402008 R_MIPS_COPY D1 0x0
13 # CHECK-NEXT:   }
14 # CHECK-NEXT: ]
15
16 # CHECK:      DynamicSymbols [
17 # CHECK-NEXT:   Symbol {
18 # CHECK-NEXT:     Name: @ (0)
19 # CHECK-NEXT:     Value: 0x0
20 # CHECK-NEXT:     Size: 0
21 # CHECK-NEXT:     Binding: Local (0x0)
22 # CHECK-NEXT:     Type: None (0x0)
23 # CHECK-NEXT:     Other: 0
24 # CHECK-NEXT:     Section: Undefined (0x0)
25 # CHECK-NEXT:   }
26 # CHECK-NEXT:   Symbol {
27 # CHECK-NEXT:     Name: D1@ (1)
28 # CHECK-NEXT:     Value: 0x402008
29 # CHECK-NEXT:     Size: 4
30 # CHECK-NEXT:     Binding: Global (0x1)
31 # CHECK-NEXT:     Type: Object (0x1)
32 # CHECK-NEXT:     Other: 0
33 # CHECK-NEXT:     Section: .bss (0xA)
34 # CHECK-NEXT:   }
35 # CHECK-NEXT: ]
36
37 # CHECK:      DynamicSection [ ({{.*}} entries)
38 # CHECK:        0x00000001 NEEDED  SharedLibrary (rel-copy-pc.test.tmp.so)
39 # CHECK-NEXT:   0x00000000 NULL    0x0
40 # CHECK-NEXT: ]
41
42 # so.o
43 ---
44 FileHeader:
45   Class:   ELFCLASS32
46   Data:    ELFDATA2LSB
47   Type:    ET_REL
48   Machine: EM_MIPS
49   Flags:   [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6]
50
51 Sections:
52 - Name:         .data
53   Type:         SHT_PROGBITS
54   Size:         4
55   AddressAlign: 16
56   Flags:        [SHF_WRITE, SHF_ALLOC]
57
58 Symbols:
59   Global:
60     - Name:    D1
61       Section: .data
62       Type:    STT_OBJECT
63       Value:   0
64       Size:    4
65
66 # o.o
67 ---
68 FileHeader:
69   Class:   ELFCLASS32
70   Data:    ELFDATA2LSB
71   Type:    ET_REL
72   Machine: EM_MIPS
73   Flags:   [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6]
74
75 Sections:
76 - Name:         .text
77   Type:         SHT_PROGBITS
78   Size:         4
79   AddressAlign: 16
80   Flags:        [SHF_EXECINSTR, SHF_ALLOC]
81
82 - Name:         .data
83   Type:         SHT_PROGBITS
84   Size:         4
85   AddressAlign: 16
86   Flags:        [SHF_WRITE, SHF_ALLOC]
87
88 - Name:         .rel.data
89   Type:         SHT_REL
90   Info:         .data
91   AddressAlign: 4
92   Relocations:
93     - Offset: 0
94       Symbol: D1
95       Type:   R_MIPS_PCHI16
96     - Offset: 0
97       Symbol: D1
98       Type:   R_MIPS_PCLO16
99
100 Symbols:
101   Global:
102     - Name:    T0
103       Section: .text
104       Type:    STT_FUNC
105       Value:   0
106       Size:    4
107     - Name:    D0
108       Section: .data
109       Type:    STT_OBJECT
110       Value:   0
111       Size:    4
112     - Name:    D1
113 ...