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