]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/elf/Mips/dynsym-table-1.test
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / elf / Mips / dynsym-table-1.test
1 # Check that LLD does not populate an executable file dynamic symbol table
2 # by unnecessary symbols.
3 #   1. bar.so defines T2
4 #   2. foo.so defines T1 and references T2
5 #   3. main.o reference T1
6 #   4. a.out dynamic table should contain T1 entry only
7
8 # RUN: yaml2obj -format=elf -docnum 1 %s > %t-bar.o
9 # RUN: yaml2obj -format=elf -docnum 2 %s > %t-foo.o
10 # RUN: yaml2obj -format=elf -docnum 3 %s > %t-main.o
11 # RUN: lld -flavor gnu -target mipsel -shared -o %t-bar.so %t-bar.o
12 # RUN: lld -flavor gnu -target mipsel -shared -o %t-foo.so %t-foo.o %t-bar.so
13 # RUN: lld -flavor gnu -target mipsel -e T0 -o %t.exe --as-needed \
14 # RUN:     %t-main.o %t-foo.so %t-bar.so
15 # RUN: llvm-readobj -dt -dynamic-table %t.exe | FileCheck %s
16
17 # CHECK:      DynamicSymbols [
18 # CHECK-NEXT:   Symbol {
19 # CHECK-NEXT:     Name: @ (0)
20 # CHECK-NEXT:     Value: 0x0
21 # CHECK-NEXT:     Size: 0
22 # CHECK-NEXT:     Binding: Local (0x0)
23 # CHECK-NEXT:     Type: None (0x0)
24 # CHECK-NEXT:     Other: 0
25 # CHECK-NEXT:     Section: Undefined (0x0)
26 # CHECK-NEXT:   }
27 # CHECK-NEXT:   Symbol {
28 # CHECK-NEXT:     Name: T1@ ({{.*}})
29 # CHECK-NEXT:     Value: {{.*}}
30 # CHECK-NEXT:     Size: 0
31 # CHECK-NEXT:     Binding: Global (0x1)
32 # CHECK-NEXT:     Type: Function (0x2)
33 # CHECK-NEXT:     Other: 8
34 # CHECK-NEXT:     Section: Undefined (0x0)
35 # CHECK-NEXT:   }
36 # CHECK-NEXT: ]
37
38 # CHECK:      0x00000003 PLTGOT 0x401000
39 # CHECK-NEXT: 0x00000001 NEEDED SharedLibrary (dynsym-table-1.test.tmp-foo.so)
40 # CHECK-NEXT: 0x00000000 NULL   0x0
41
42 # bar.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_ABI_O32, EF_MIPS_ARCH_32]
50
51 Sections:
52   - Name:            .text
53     Type:            SHT_PROGBITS
54     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
55     AddressAlign:    0x04
56     Size:            0x08
57 Symbols:
58   Global:
59     - Name:            T2
60       Type:            STT_FUNC
61       Section:         .text
62       Size:            0x08
63
64 # foo.o
65 ---
66 FileHeader:
67   Class:           ELFCLASS32
68   Data:            ELFDATA2LSB
69   Type:            ET_REL
70   Machine:         EM_MIPS
71   Flags:           [EF_MIPS_PIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
72
73 Sections:
74   - Name:            .text
75     Type:            SHT_PROGBITS
76     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
77     AddressAlign:    0x04
78     Size:            0x08
79   - Name:            .rel.text
80     Type:            SHT_REL
81     Link:            .symtab
82     AddressAlign:    0x08
83     Info:            .text
84     Relocations:
85       - Offset:          0
86         Symbol:          T2
87         Type:            R_MIPS_CALL16
88 Symbols:
89   Global:
90     - Name:            T1
91       Type:            STT_FUNC
92       Section:         .text
93       Size:            0x08
94     - Name:            T2
95
96 # main.o
97 ---
98 FileHeader:
99   Class:           ELFCLASS32
100   Data:            ELFDATA2LSB
101   Type:            ET_REL
102   Machine:         EM_MIPS
103   Flags:           [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
104
105 Sections:
106   - Name:            .text
107     Type:            SHT_PROGBITS
108     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
109     AddressAlign:    0x04
110     Size:            0x08
111   - Name:            .rel.text
112     Type:            SHT_REL
113     Link:            .symtab
114     AddressAlign:    0x08
115     Info:            .text
116     Relocations:
117       - Offset:          0
118         Symbol:          T1
119         Type:            R_MIPS_32
120 Symbols:
121   Global:
122     - Name:            T0
123       Type:            STT_FUNC
124       Section:         .text
125       Size:            0x08
126     - Name:            T1
127 ...