1*56bb7041Schristos
2*56bb7041SchristosDynamic section .*
3*56bb7041Schristos#...
4*56bb7041Schristos 0x00000003 \(PLTGOT\)                     0x10201000
5*56bb7041Schristos#...
6*56bb7041Schristos 0x70000013 \(MIPS_GOTSYM\)                0x9
7*56bb7041Schristos 0x00000014 \(PLTREL\)                     REL
8*56bb7041Schristos 0x00000017 \(JMPREL\)                     0x10004000
9*56bb7041Schristos 0x00000002 \(PLTRELSZ\)                   48 \(bytes\)
10*56bb7041Schristos 0x70000032 \(MIPS_PLTGOT\)                0x10200000
11*56bb7041Schristos#...
12*56bb7041SchristosRelocation section '\.rel\.plt' .*
13*56bb7041Schristos Offset     Info    Type            Sym\.Value  Sym\. Name
14*56bb7041Schristos10200008  [^ ]+ R_MIPS_JUMP_SLOT  10100020   f_lo_ic
15*56bb7041Schristos1020000c  [^ ]+ R_MIPS_JUMP_SLOT  10100041   f_lo_dc
16*56bb7041Schristos10200010  [^ ]+ R_MIPS_JUMP_SLOT  00000000   f_dc
17*56bb7041Schristos10200014  [^ ]+ R_MIPS_JUMP_SLOT  00000000   f_ic_dc
18*56bb7041Schristos10200018  [^ ]+ R_MIPS_JUMP_SLOT  10100071   f_lo_ic_dc
19*56bb7041Schristos1020001c  [^ ]+ R_MIPS_JUMP_SLOT  10100030   f_lo
20*56bb7041Schristos
21*56bb7041SchristosSymbol table '\.dynsym' .*
22*56bb7041Schristos   Num:    Value  Size Type    Bind   Vis      Ndx Name
23*56bb7041Schristos     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
24*56bb7041Schristos# _lo symbols have their address taken, so their PLT symbols need to have
25*56bb7041Schristos# a nonzero value.  They must also have STO_MIPS_PLT in order to distinguish
26*56bb7041Schristos# them from old-style lazy-binding stubs.  Non-_lo symbols are only called,
27*56bb7041Schristos# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
28*56bb7041Schristos#
29*56bb7041Schristos# A MIPS16 PLT should only be used as the symbol value if the function has
30*56bb7041Schristos# a direct MIPS16 caller (dc) and no direct MIPS caller (du).
31*56bb7041Schristos#...
32*56bb7041Schristos    .*: 10100020     0 FUNC    GLOBAL DEFAULT \[MIPS PLT\]   UND f_lo_ic
33*56bb7041Schristos    .*: 10100041     0 FUNC    GLOBAL DEFAULT \[MIPS PLT\]   UND f_lo_dc
34*56bb7041Schristos    .*: 00000000     0 FUNC    GLOBAL DEFAULT  UND f_dc
35*56bb7041Schristos    .*: 00000000     0 FUNC    GLOBAL DEFAULT  UND f_ic_dc
36*56bb7041Schristos#...
37*56bb7041Schristos    .*: 10100071     0 FUNC    GLOBAL DEFAULT \[MIPS PLT\]   UND f_lo_ic_dc
38*56bb7041Schristos    .*: 10100030     0 FUNC    GLOBAL DEFAULT \[MIPS PLT\]   UND f_lo
39*56bb7041Schristos# The start of the GOT-mapped area.  This should only contain functions that
40*56bb7041Schristos# are accessed purely via the traditional psABI scheme.  The symbol value
41*56bb7041Schristos# is the address of the lazy-binding stub.
42*56bb7041Schristos     9: 10101000     0 FUNC    GLOBAL DEFAULT  UND f_ic
43*56bb7041Schristos
44*56bb7041SchristosSymbol table '\.symtab' .*
45*56bb7041Schristos#...
46*56bb7041SchristosPrimary GOT:
47*56bb7041Schristos Canonical gp value: 10208ff0
48*56bb7041Schristos
49*56bb7041Schristos Reserved entries:
50*56bb7041Schristos   Address     Access  Initial Purpose
51*56bb7041Schristos  10201000 -32752\(gp\) 00000000 Lazy resolver
52*56bb7041Schristos  10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
53*56bb7041Schristos
54*56bb7041Schristos# See the disassembly output for the meaning of each entry.
55*56bb7041Schristos Local entries:
56*56bb7041Schristos   Address     Access  Initial
57*56bb7041Schristos  10201008 -32744\(gp\) 10100061
58*56bb7041Schristos  1020100c -32740\(gp\) 10100020
59*56bb7041Schristos  10201010 -32736\(gp\) 10100071
60*56bb7041Schristos
61*56bb7041Schristos Global entries:
62*56bb7041Schristos   Address     Access  Initial Sym\.Val\. Type    Ndx Name
63*56bb7041Schristos  10201014 -32732\(gp\) 10101000 10101000 FUNC    UND f_ic
64*56bb7041Schristos
65*56bb7041Schristos
66*56bb7041SchristosPLT GOT:
67*56bb7041Schristos
68*56bb7041Schristos Reserved entries:
69*56bb7041Schristos   Address  Initial Purpose
70*56bb7041Schristos  10200000 00000000 PLT lazy resolver
71*56bb7041Schristos  10200004 00000000 Module pointer
72*56bb7041Schristos
73*56bb7041Schristos Entries:
74*56bb7041Schristos   Address  Initial Sym\.Val\. Type    Ndx Name
75*56bb7041Schristos  10200008 10100000 10100020 FUNC    UND f_lo_ic
76*56bb7041Schristos  1020000c 10100000 10100041 FUNC    UND f_lo_dc
77*56bb7041Schristos  10200010 10100000 00000000 FUNC    UND f_dc
78*56bb7041Schristos  10200014 10100000 00000000 FUNC    UND f_ic_dc
79*56bb7041Schristos  10200018 10100000 10100071 FUNC    UND f_lo_ic_dc
80*56bb7041Schristos  1020001c 10100000 10100030 FUNC    UND f_lo
81*56bb7041Schristos
82*56bb7041Schristos
83