blob: 2c872afacb9070163be8faab30a7865f9f114c28 (
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 10100121 f_lo_iu
1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu_du_dc
10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_du_ic_dc
10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_du_dc
10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100151 f_lo_iu_dc
1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_iu_du_ic
10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_du_ic
10200024 [^ ]+ R_MIPS_JUMP_SLOT 1010015d f_iu_dc
10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100169 f_lo_iu_ic
1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100175 f_lo_ic
10200030 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_dc
10200034 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_du
10200038 [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_du_ic_dc
1020003c [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_du_ic
10200040 [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_iu_du_dc
10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001a5 f_lo_dc
10200048 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_iu_du
1020004c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_lo_iu_du
10200050 [^ ]+ R_MIPS_JUMP_SLOT 101001b1 f_dc
10200054 [^ ]+ R_MIPS_JUMP_SLOT 101001bd f_ic_dc
10200058 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_lo_du
1020005c [^ ]+ R_MIPS_JUMP_SLOT 101001c9 f_iu_ic_dc
10200060 [^ ]+ R_MIPS_JUMP_SLOT 101000f0 f_iu_du_ic_dc
10200064 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_iu_ic_dc
10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du_ic
1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_iu_du_ic_dc
10200070 [^ ]+ R_MIPS_JUMP_SLOT 101001f9 f_lo_ic_dc
10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100205 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 MIPS (as opposed to microMIPS) PLT should be used as the symbol value
# if and only if the function has a direct MIPS caller (du).
.*: 10100121 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
.*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
#...
.*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
.*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_dc
.*: 10100151 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
.*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic
.*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
.*: 1010015d 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_dc
.*: 10100169 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
.*: 10100175 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
.*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
.*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du
.*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic_dc
.*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic
.*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_dc
.*: 101001a5 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
.*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du
.*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
.*: 101001b1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_dc
.*: 101001bd 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_ic_dc
.*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
.*: 101001c9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_ic_dc
.*: 101000f0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic_dc
#...
.*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
.*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
.*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
.*: 101001f9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
.*: 10100205 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) (101001b1|b1011010) (00000000|00000000) (101001bd|bd011010) .*
0x10201010 (10100080|80001010) (10100040|40001010) (101000a0|a0001010) (10100090|90001010) .*
0x10201020 (00000000|00000000) (1010015d|5d011010) (00000000|00000000) (101001c9|c9011010) .*
0x10201030 (101000c0|c0001010) (101000b0|b0001010) (10100050|50001010) (101000f0|f0001010) .*
0x10201040 (10100205|05021010) (101001a5|a5011010) (10100175|75011010) (101001f9|f9011010) .*
0x10201050 (101000e0|e0001010) (10100070|70001010) (10100060|60001010) (10100030|30001010) .*
0x10201060 (10100121|21011010) (10100151|51011010) (10100169|69011010) (101001e1|e1011010) .*
0x10201070 (101000d0|d0001010) (10100020|20001010) (10100100|00011010) (10100110|10011010) .*
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\) 101001bd
1020200c -32740\(gp\) 101000a0
10202010 -32736\(gp\) 10100090
10202014 -32732\(gp\) 101001c9
10202018 -32728\(gp\) 10100050
1020201c -32724\(gp\) 101000f0
10202020 -32720\(gp\) 10100175
10202024 -32716\(gp\) 101001f9
10202028 -32712\(gp\) 10100060
1020202c -32708\(gp\) 10100030
10202030 -32704\(gp\) 10100169
10202034 -32700\(gp\) 101001e1
10202038 -32696\(gp\) 10100100
1020203c -32692\(gp\) 10100110
10202040 -32688\(gp\) 1010015d
10202044 -32684\(gp\) 101000c0
10202048 -32680\(gp\) 101000b0
1020204c -32676\(gp\) 10100121
10202050 -32672\(gp\) 10100151
10202054 -32668\(gp\) 101000d0
10202058 -32664\(gp\) 10100020
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 10100121 FUNC UND f_lo_iu
1020000c 10100000 10100020 FUNC UND f_lo_iu_du_dc
10200010 10100000 10100030 FUNC UND f_lo_du_ic_dc
10200014 10100000 10100040 FUNC UND f_du_dc
10200018 10100000 10100151 FUNC UND f_lo_iu_dc
1020001c 10100000 10100050 FUNC UND f_iu_du_ic
10200020 10100000 10100060 FUNC UND f_lo_du_ic
10200024 10100000 1010015d FUNC UND f_iu_dc
10200028 10100000 10100169 FUNC UND f_lo_iu_ic
1020002c 10100000 10100175 FUNC UND f_lo_ic
10200030 10100000 10100070 FUNC UND f_lo_du_dc
10200034 10100000 10100080 FUNC UND f_du
10200038 10100000 10100090 FUNC UND f_du_ic_dc
1020003c 10100000 101000a0 FUNC UND f_du_ic
10200040 10100000 101000b0 FUNC UND f_iu_du_dc
10200044 10100000 101001a5 FUNC UND f_lo_dc
10200048 10100000 101000c0 FUNC UND f_iu_du
1020004c 10100000 101000d0 FUNC UND f_lo_iu_du
10200050 10100000 101001b1 FUNC UND f_dc
10200054 10100000 101001bd FUNC UND f_ic_dc
10200058 10100000 101000e0 FUNC UND f_lo_du
1020005c 10100000 101001c9 FUNC UND f_iu_ic_dc
10200060 10100000 101000f0 FUNC UND f_iu_du_ic_dc
10200064 10100000 101001e1 FUNC UND f_lo_iu_ic_dc
10200068 10100000 10100100 FUNC UND f_lo_iu_du_ic
1020006c 10100000 10100110 FUNC UND f_lo_iu_du_ic_dc
10200070 10100000 101001f9 FUNC UND f_lo_ic_dc
10200074 10100000 10100205 FUNC UND f_lo
|