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