blob: 3ddec9bc4947b2ad4ba5345e39c101136774ca14 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
Dynamic section .*
#...
0x00000003 \(PLTGOT\) 0x10202000
#...
0x70000013 \(MIPS_GOTSYM\) 0x1f
0x00000014 \(PLTREL\) REL
0x00000017 \(JMPREL\) 0x10005000
0x00000002 \(PLTRELSZ\) 224 \(bytes\)
0x70000032 \(MIPS_PLTGOT\) 0x10200000
#...
Relocation section '\.rel\.dyn' .*
# All symbols are referenced by a .word in the .data section, so pointer
# equality matters. If a PLT is needed to satisfy a direct call or %lo
# relocation, the symbol should have a nonzero value and there should be
# no dynamic relocations against it. The only relocations here are for
# undefined 0-value symbols. Note that unlike x86, we do not create a PLT
# for the uncalled symbol 'f' in order to maintain backward compatibility
# with pre-PLT ld.sos.
Offset Info Type Sym\.Value Sym\. Name
00000000 00000000 R_MIPS_NONE
10201028 00001f03 R_MIPS_REL32 00000000 f_iu_ic
10201008 00002003 R_MIPS_REL32 00000000 f_ic
10201020 00002103 R_MIPS_REL32 00000000 f_iu
10201000 00002203 R_MIPS_REL32 00000000 f
Relocation section '\.rel\.plt' .*
Offset Info Type Sym\.Value Sym\. Name
10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_iu_du_dc
10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_lo_du_ic_dc
10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_du_dc
10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100191 f_lo_iu_dc
1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_iu_du_ic
10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_ic
10200024 [^ ]+ R_MIPS_JUMP_SLOT 101001a1 f_iu_dc
10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_lo_iu_ic
1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_lo_ic
10200030 [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_lo_du_dc
10200034 [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_du
10200038 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_du_ic_dc
1020003c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_du_ic
10200040 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_iu_du_dc
10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_dc
10200048 [^ ]+ R_MIPS_JUMP_SLOT 101000f0 f_iu_du
1020004c [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du
10200050 [^ ]+ R_MIPS_JUMP_SLOT 101001f1 f_dc
10200054 [^ ]+ R_MIPS_JUMP_SLOT 10100201 f_ic_dc
10200058 [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_du
1020005c [^ ]+ R_MIPS_JUMP_SLOT 10100211 f_iu_ic_dc
10200060 [^ ]+ R_MIPS_JUMP_SLOT 10100120 f_iu_du_ic_dc
10200064 [^ ]+ R_MIPS_JUMP_SLOT 10100231 f_lo_iu_ic_dc
10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100130 f_lo_iu_du_ic
1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100140 f_lo_iu_du_ic_dc
10200070 [^ ]+ R_MIPS_JUMP_SLOT 10100251 f_lo_ic_dc
10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100150 f_lo
Symbol table '\.dynsym' .*
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
# All symbols have their address taken, so PLT symbols need to have a nonzero
# value. They must also have STO_MIPS_PLT in order to distinguish them from
# old-style lazy-binding stubs).
#
# A MIPS16 PLT should only be used as the symbol value if the function has
# a direct MIPS16 caller (dc) and no direct MIPS caller (du).
.*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
.*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
#...
.*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
.*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_dc
.*: 10100191 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
.*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic
.*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
.*: 101001a1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_dc
.*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
.*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
.*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
.*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du
.*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic_dc
.*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic
.*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_dc
.*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
.*: 101000f0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du
.*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
.*: 101001f1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_dc
.*: 10100201 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_ic_dc
.*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
.*: 10100211 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_ic_dc
.*: 10100120 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic_dc
#...
.*: 10100231 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
.*: 10100130 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
.*: 10100140 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
.*: 10100251 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
.*: 10100150 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
# The start of the GOT-mapped area. This should only contain functions that
# are accessed purely via the traditional psABI scheme. Since the functions
# have their addresses taken, they cannot use a lazy-binding stub.
# The symbol values are therefore all zero.
31: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic
32: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic
33: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu
34: 00000000 0 FUNC GLOBAL DEFAULT UND f
Symbol table '\.symtab' .*
#...
Hex dump of section '\.data':
0x10201000 (00000000|00000000) (101001f1|f1011010) (00000000|00000000) (10100201|01021010) .*
0x10201010 (101000b0|b0001010) (10100050|50001010) (101000d0|d0001010) (101000c0|c0001010) .*
0x10201020 (00000000|00000000) (101001a1|a1011010) (00000000|00000000) (10100211|11021010) .*
0x10201030 (101000f0|f0001010) (101000e0|e0001010) (10100060|60001010) (10100120|20011010) .*
0x10201040 (10100150|50011010) (101001e1|e1011010) (10100090|90001010) (10100251|51021010) .*
0x10201050 (10100110|10011010) (101000a0|a0001010) (10100070|70001010) (10100040|40001010) .*
0x10201060 (10100020|20001010) (10100191|91011010) (10100080|80001010) (10100231|31021010) .*
0x10201070 (10100100|00011010) (10100030|30001010) (10100130|30011010) (10100140|40011010) .*
Primary GOT:
Canonical gp value: 10209ff0
Reserved entries:
Address Access Initial Purpose
10202000 -32752\(gp\) 00000000 Lazy resolver
10202004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
# See the disassembly output for the meaning of each entry.
Local entries:
Address Access Initial
10202008 -32744\(gp\) 10100201
1020200c -32740\(gp\) 101000d0
10202010 -32736\(gp\) 101000c0
10202014 -32732\(gp\) 10100211
10202018 -32728\(gp\) 10100060
1020201c -32724\(gp\) 10100120
10202020 -32720\(gp\) 10100090
10202024 -32716\(gp\) 10100251
10202028 -32712\(gp\) 10100070
1020202c -32708\(gp\) 10100040
10202030 -32704\(gp\) 10100080
10202034 -32700\(gp\) 10100231
10202038 -32696\(gp\) 10100130
1020203c -32692\(gp\) 10100140
10202040 -32688\(gp\) 101001a1
10202044 -32684\(gp\) 101000f0
10202048 -32680\(gp\) 101000e0
1020204c -32676\(gp\) 10100020
10202050 -32672\(gp\) 10100191
10202054 -32668\(gp\) 10100100
10202058 -32664\(gp\) 10100030
Global entries:
Address Access Initial Sym\.Val\. Type Ndx Name
1020205c -32660\(gp\) 00000000 00000000 FUNC UND f_iu_ic
10202060 -32656\(gp\) 00000000 00000000 FUNC UND f_ic
10202064 -32652\(gp\) 00000000 00000000 FUNC UND f_iu
10202068 -32648\(gp\) 00000000 00000000 FUNC UND f
PLT GOT:
Reserved entries:
Address Initial Purpose
10200000 00000000 PLT lazy resolver
10200004 00000000 Module pointer
Entries:
Address Initial Sym\.Val\. Type Ndx Name
10200008 10100000 10100020 FUNC UND f_lo_iu
1020000c 10100000 10100030 FUNC UND f_lo_iu_du_dc
10200010 10100000 10100040 FUNC UND f_lo_du_ic_dc
10200014 10100000 10100050 FUNC UND f_du_dc
10200018 10100000 10100191 FUNC UND f_lo_iu_dc
1020001c 10100000 10100060 FUNC UND f_iu_du_ic
10200020 10100000 10100070 FUNC UND f_lo_du_ic
10200024 10100000 101001a1 FUNC UND f_iu_dc
10200028 10100000 10100080 FUNC UND f_lo_iu_ic
1020002c 10100000 10100090 FUNC UND f_lo_ic
10200030 10100000 101000a0 FUNC UND f_lo_du_dc
10200034 10100000 101000b0 FUNC UND f_du
10200038 10100000 101000c0 FUNC UND f_du_ic_dc
1020003c 10100000 101000d0 FUNC UND f_du_ic
10200040 10100000 101000e0 FUNC UND f_iu_du_dc
10200044 10100000 101001e1 FUNC UND f_lo_dc
10200048 10100000 101000f0 FUNC UND f_iu_du
1020004c 10100000 10100100 FUNC UND f_lo_iu_du
10200050 10100000 101001f1 FUNC UND f_dc
10200054 10100000 10100201 FUNC UND f_ic_dc
10200058 10100000 10100110 FUNC UND f_lo_du
1020005c 10100000 10100211 FUNC UND f_iu_ic_dc
10200060 10100000 10100120 FUNC UND f_iu_du_ic_dc
10200064 10100000 10100231 FUNC UND f_lo_iu_ic_dc
10200068 10100000 10100130 FUNC UND f_lo_iu_du_ic
1020006c 10100000 10100140 FUNC UND f_lo_iu_du_ic_dc
10200070 10100000 10100251 FUNC UND f_lo_ic_dc
10200074 10100000 10100150 FUNC UND f_lo
|