Add support for DT_MIPS_RLD_MAP_REL.
authorMatthew Fortune <matthew.fortune@imgtec.com>
Thu, 11 Jun 2015 09:16:19 +0000 (10:16 +0100)
committerMatthew Fortune <matthew.fortune@imgtec.com>
Fri, 26 Jun 2015 10:53:33 +0000 (11:53 +0100)
This tag makes it possible to access the debug map when debugging position
independent executables.

bfd/

* elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Use executable
instead of !shared to indicate an application vs shared library.
(_bfd_mips_elf_size_dynamic_sections): Likewise.
(_bfd_mips_elf_finish_dynamic_sections): Handle DT_MIPS_RLD_MAP_REL.
(_bfd_mips_elf_get_target_dtag): Likewise.

binutils/

* readelf.c (get_mips_dynamic_type): Handle DT_MIPS_RLD_MAP_REL.

include/

* elf/mips.h (DT_MIPS_RLD_MAP_REL): New macro.

ld/testsuite/

* ld-mips-elf/pic-and-nonpic-3b.ad: Adjust for extra dynamic tag.
* ld-mips-elf/pic-and-nonpic-4b.ad: Likewise.
* ld-mips-elf/pic-and-nonpic-5b.ad: Likewise.
* ld-mips-elf/pic-and-nonpic-6-n32.ad: Likewise.
* ld-mips-elf/pic-and-nonpic-6-n64.ad: Likewise.
* ld-mips-elf/pic-and-nonpic-6-o32.ad: Likewise.
* ld-mips-elf/tlsdyn-o32-1.d: Likewise.
* ld-mips-elf/tlsdyn-o32-1.got: Likewise.
* ld-mips-elf/tlsdyn-o32-2.d: Likewise.
* ld-mips-elf/tlsdyn-o32-2.got: Likewise.
* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
* ld-mips-elf/tlsdyn-o32-3.got: Likewise.
* ld-mips-elf/tlsdyn-o32.d: Likewise.
* ld-mips-elf/tlsdyn-o32.got: Likewise.
* ld-mips-elf/pie-n32.d: New file.
* ld-mips-elf/pie-n64.d: Likewise.
* ld-mips-elf/pie-o32.d: Likewise.
* ld-mips-elf/pie.s: Likewise.
* ld-mips-elf/mips-elf.exp: Add new tests.

26 files changed:
bfd/ChangeLog
bfd/elfxx-mips.c
binutils/ChangeLog
binutils/readelf.c
include/ChangeLog
include/elf/mips.h
ld/testsuite/ChangeLog
ld/testsuite/ld-mips-elf/mips-elf.exp
ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ad
ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ad
ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ad
ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad
ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad
ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad
ld/testsuite/ld-mips-elf/pie-n32.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/pie-n64.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/pie-o32.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/pie.s [new file with mode: 0644]
ld/testsuite/ld-mips-elf/tlsdyn-o32-1.d
ld/testsuite/ld-mips-elf/tlsdyn-o32-1.got
ld/testsuite/ld-mips-elf/tlsdyn-o32-2.d
ld/testsuite/ld-mips-elf/tlsdyn-o32-2.got
ld/testsuite/ld-mips-elf/tlsdyn-o32-3.d
ld/testsuite/ld-mips-elf/tlsdyn-o32-3.got
ld/testsuite/ld-mips-elf/tlsdyn-o32.d
ld/testsuite/ld-mips-elf/tlsdyn-o32.got

index 955e926..89a6a0c 100644 (file)
@@ -1,3 +1,11 @@
+2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Use executable
+       instead of !shared to indicate an application vs shared library.
+       (_bfd_mips_elf_size_dynamic_sections): Likewise.
+       (_bfd_mips_elf_finish_dynamic_sections): Handle DT_MIPS_RLD_MAP_REL.
+       (_bfd_mips_elf_get_target_dtag): Likewise.
+
 2015-06-25  DJ Delorie  <dj@redhat.com>
 
        * elf32-msp430.c (msp430_final_link_relocate): Fix comments.  Fix
index a5e6453..9932453 100644 (file)
@@ -7614,7 +7614,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
   htab->sstubs = s;
 
   if (!mips_elf_hash_table (info)->use_rld_obj_head
-      && !info->shared
+      && info->executable
       && bfd_get_linker_section (abfd, ".rld_map") == NULL)
     {
       s = bfd_make_section_anyway_with_flags (abfd, ".rld_map",
@@ -7678,7 +7678,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
        (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd));
     }
 
-  if (!info->shared)
+  if (info->executable)
     {
       const char *name;
 
@@ -9719,7 +9719,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
              info->combreloc = 0;
            }
        }
-      else if (! info->shared
+      else if (info->executable
               && ! mips_elf_hash_table (info)->use_rld_obj_head
               && CONST_STRNEQ (name, ".rld_map"))
        {
@@ -9782,6 +9782,10 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
          && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP, 0))
        return FALSE;
 
+      if (info->executable
+         && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP_REL, 0))
+       return FALSE;
+
       /* The DT_DEBUG entry may be filled in by the dynamic linker and
         used by the debugger.  */
       if (info->executable
@@ -11487,11 +11491,37 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd,
                    break;
                  }
                s = h->root.u.def.section;
+
+               /* The MIPS_RLD_MAP tag stores the absolute address of the
+                  debug pointer.  */
                dyn.d_un.d_ptr = (s->output_section->vma + s->output_offset
                                  + h->root.u.def.value);
              }
              break;
 
+           case DT_MIPS_RLD_MAP_REL:
+             {
+               struct elf_link_hash_entry *h;
+               bfd_vma dt_addr, rld_addr;
+               h = mips_elf_hash_table (info)->rld_symbol;
+               if (!h)
+                 {
+                   dyn_to_skip = MIPS_ELF_DYN_SIZE (dynobj);
+                   swap_out_p = FALSE;
+                   break;
+                 }
+               s = h->root.u.def.section;
+
+               /* The MIPS_RLD_MAP_REL tag stores the offset to the debug
+                  pointer, relative to the address of the tag.  */
+               dt_addr = (sdyn->output_section->vma + sdyn->output_offset
+                          + b - sdyn->contents);
+               rld_addr = (s->output_section->vma + s->output_offset
+                           + h->root.u.def.value);
+               dyn.d_un.d_ptr = rld_addr - dt_addr;
+             }
+             break;
+
            case DT_MIPS_OPTIONS:
              s = (bfd_get_section_by_name
                   (output_bfd, MIPS_ELF_OPTIONS_SECTION_NAME (output_bfd)));
@@ -15421,6 +15451,8 @@ _bfd_mips_elf_get_target_dtag (bfd_vma dtag)
       return "MIPS_HIPAGENO";
     case DT_MIPS_RLD_MAP:
       return "MIPS_RLD_MAP";
+    case DT_MIPS_RLD_MAP_REL:
+      return "MIPS_RLD_MAP_REL";
     case DT_MIPS_DELTA_CLASS:
       return "MIPS_DELTA_CLASS";
     case DT_MIPS_DELTA_CLASS_NO:
index c44146d..ab36fd9 100644 (file)
@@ -1,3 +1,7 @@
+2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * readelf.c (get_mips_dynamic_type): Handle DT_MIPS_RLD_MAP_REL.
+
 2015-06-22  Nick Clifton  <nickc@redhat.com>
 
        * objdump.c (disassemble_bytes): Set the stop_vma field in the
index a0c20a3..398a165 100644 (file)
@@ -1695,6 +1695,7 @@ get_mips_dynamic_type (unsigned long type)
     case DT_MIPS_GOTSYM: return "MIPS_GOTSYM";
     case DT_MIPS_HIPAGENO: return "MIPS_HIPAGENO";
     case DT_MIPS_RLD_MAP: return "MIPS_RLD_MAP";
+    case DT_MIPS_RLD_MAP_REL: return "MIPS_RLD_MAP_REL";
     case DT_MIPS_DELTA_CLASS: return "MIPS_DELTA_CLASS";
     case DT_MIPS_DELTA_CLASS_NO: return "MIPS_DELTA_CLASS_NO";
     case DT_MIPS_DELTA_INSTANCE: return "MIPS_DELTA_INSTANCE";
index 89b4bbe..d85a1b0 100644 (file)
@@ -1,3 +1,7 @@
+2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * elf/mips.h (DT_MIPS_RLD_MAP_REL): New macro.
+
 2015-06-22  Nick Clifton  <nickc@redhat.com>
 
        * dis-asm.h (struct disassemble_info): Add stop_vma field.
index 23c21e2..3926380 100644 (file)
@@ -748,6 +748,9 @@ extern void bfd_mips_elf32_swap_reginfo_out
 
 /* Points to the base of a writable PLT.  */
 #define DT_MIPS_RWPLT          0x70000034
+
+/* Relative offset of run time loader map, used for debugging.  */
+#define DT_MIPS_RLD_MAP_REL    0x70000035
 \f
 /* Flags which may appear in a DT_MIPS_FLAGS entry.  */
 
index 8a6121e..63f1b7b 100644 (file)
@@ -1,3 +1,25 @@
+2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * ld-mips-elf/pic-and-nonpic-3b.ad: Adjust for extra dynamic tag.
+       * ld-mips-elf/pic-and-nonpic-4b.ad: Likewise.
+       * ld-mips-elf/pic-and-nonpic-5b.ad: Likewise.
+       * ld-mips-elf/pic-and-nonpic-6-n32.ad: Likewise.
+       * ld-mips-elf/pic-and-nonpic-6-n64.ad: Likewise.
+       * ld-mips-elf/pic-and-nonpic-6-o32.ad: Likewise.
+       * ld-mips-elf/tlsdyn-o32-1.d: Likewise.
+       * ld-mips-elf/tlsdyn-o32-1.got: Likewise.
+       * ld-mips-elf/tlsdyn-o32-2.d: Likewise.
+       * ld-mips-elf/tlsdyn-o32-2.got: Likewise.
+       * ld-mips-elf/tlsdyn-o32-3.d: Likewise.
+       * ld-mips-elf/tlsdyn-o32-3.got: Likewise.
+       * ld-mips-elf/tlsdyn-o32.d: Likewise.
+       * ld-mips-elf/tlsdyn-o32.got: Likewise.
+       * ld-mips-elf/pie-n32.d: New file.
+       * ld-mips-elf/pie-n64.d: Likewise.
+       * ld-mips-elf/pie-o32.d: Likewise.
+       * ld-mips-elf/pie.s: Likewise.
+       * ld-mips-elf/mips-elf.exp: Add new tests.
+
 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ld-elf/strtab.d: Only run on *-*-linux* and *-*-gnu* targets.
index 7057e2f..923d8df 100644 (file)
@@ -186,6 +186,15 @@ if { $linux_gnu } {
     }
 }
 
+# Test PIE debug dynamic tags
+if { $linux_gnu } {
+    run_dump_test "pie-o32"
+    if { $has_newabi } {
+       run_dump_test "pie-n32"
+       run_dump_test "pie-n64"
+    }
+}
+
 if $has_newabi {
     if { $embedded_elf } {
        run_dump_test "elf-rel-got-n32-embed" \
index 227d15d..9f5ca90 100644 (file)
@@ -8,6 +8,7 @@ Dynamic section at offset .* contains .*:
  0x0000000a \(STRSZ\) .*
  0x0000000b \(SYMENT\) .*
  0x70000016 \(MIPS_RLD_MAP\) * 0x80000
+ 0x70000035 \(MIPS_RLD_MAP_REL\) .*
  0x00000015 \(DEBUG\) * 0x0
  0x00000003 \(PLTGOT\) * 0xa0000
  0x70000001 \(MIPS_RLD_VERSION\) * 1
index e14a2d3..1bea044 100644 (file)
@@ -8,6 +8,7 @@ Dynamic section at offset .* contains .*:
  0x0000000a \(STRSZ\) .*
  0x0000000b \(SYMENT\) .*
  0x70000016 \(MIPS_RLD_MAP\) * 0x80000
+ 0x70000035 \(MIPS_RLD_MAP_REL\) .*
  0x00000015 \(DEBUG\) * 0x0
  0x00000003 \(PLTGOT\) * 0xa0000
  0x00000011 \(REL\) * 0x43000
index d7a672f..972ace1 100644 (file)
@@ -9,6 +9,7 @@ Dynamic section at offset .* contains .*:
  0x0000000a \(STRSZ\) .*
  0x0000000b \(SYMENT\) .*
  0x70000016 \(MIPS_RLD_MAP\) * 0x80000
+ 0x70000035 \(MIPS_RLD_MAP_REL\) .*
  0x00000015 \(DEBUG\) * 0x0
  0x00000016 \(TEXTREL\) * 0x0
  0x00000003 \(PLTGOT\) * 0xa0000
index 5df3c6c..28ee34a 100644 (file)
@@ -8,6 +8,7 @@ Dynamic section at offset .* contains .*:
  0x0000000a \(STRSZ\) .*
  0x0000000b \(SYMENT\) .*
  0x70000016 \(MIPS_RLD_MAP\) * 0x80000
+ 0x70000035 \(MIPS_RLD_MAP_REL\) .*
  0x00000015 \(DEBUG\) * 0x0
  0x00000003 \(PLTGOT\) * 0xa0000
  0x00000011 \(REL\) * 0x43000
index d8fc300..7b2ce4c 100644 (file)
@@ -8,6 +8,7 @@ Dynamic section at offset .* contains .*:
  0x0+0000000a \(STRSZ\) .*
  0x0+0000000b \(SYMENT\) .*
  0x0+70000016 \(MIPS_RLD_MAP\) * 0x80000
+ 0x0+70000035 \(MIPS_RLD_MAP_REL\) .*
  0x0+00000015 \(DEBUG\) * 0x0
  0x0+00000003 \(PLTGOT\) * 0xa0000
  0x0+00000011 \(REL\) * 0x43000
index 5df3c6c..28ee34a 100644 (file)
@@ -8,6 +8,7 @@ Dynamic section at offset .* contains .*:
  0x0000000a \(STRSZ\) .*
  0x0000000b \(SYMENT\) .*
  0x70000016 \(MIPS_RLD_MAP\) * 0x80000
+ 0x70000035 \(MIPS_RLD_MAP_REL\) .*
  0x00000015 \(DEBUG\) * 0x0
  0x00000003 \(PLTGOT\) * 0xa0000
  0x00000011 \(REL\) * 0x43000
diff --git a/ld/testsuite/ld-mips-elf/pie-n32.d b/ld/testsuite/ld-mips-elf/pie-n32.d
new file mode 100644 (file)
index 0000000..bcfbcd2
--- /dev/null
@@ -0,0 +1,23 @@
+#source: pie.s
+#as: -march=from-abi -mabi=n32 -EB
+#ld: -melf32btsmipn32 -pie
+#readelf: -d
+
+Dynamic section at offset 0x180 contains 16 entries:
+  Tag * Type * Name/Value
+ 0x00000004 \(HASH\) * 0x228
+ 0x00000005 \(STRTAB\) * 0x304
+ 0x00000006 \(SYMTAB\) * 0x264
+ 0x0000000a \(STRSZ\) * 72 \(bytes\)
+ 0x0000000b \(SYMENT\) * 16 \(bytes\)
+ 0x70000035 \(MIPS_RLD_MAP_REL\) * 0x101b8
+ 0x00000015 \(DEBUG\) * 0x0
+ 0x00000003 \(PLTGOT\) * 0x10370
+ 0x70000001 \(MIPS_RLD_VERSION\) * 1
+ 0x70000005 \(MIPS_FLAGS\) * NOTPOT
+ 0x70000006 \(MIPS_BASE_ADDRESS\) * 0x0
+ 0x7000000a \(MIPS_LOCAL_GOTNO\) * 2
+ 0x70000011 \(MIPS_SYMTABNO\) * 10
+ 0x70000012 \(MIPS_UNREFEXTNO\) * 13
+ 0x70000013 \(MIPS_GOTSYM\) * 0xa
+ 0x00000000 \(NULL\) * 0x0
diff --git a/ld/testsuite/ld-mips-elf/pie-n64.d b/ld/testsuite/ld-mips-elf/pie-n64.d
new file mode 100644 (file)
index 0000000..bf2238c
--- /dev/null
@@ -0,0 +1,23 @@
+#source: pie.s
+#as: -march=from-abi -mabi=64 -EB
+#ld: -melf64btsmip -pie
+#readelf: -d
+
+Dynamic section at offset 0x208 contains 16 entries:
+  Tag * Type * Name/Value
+ 0x0+00000004 \(HASH\) * 0x358
+ 0x0+00000005 \(STRTAB\) * 0x488
+ 0x0+00000006 \(SYMTAB\) * 0x398
+ 0x0+0000000a \(STRSZ\) * 72 \(bytes\)
+ 0x0+0000000b \(SYMENT\) * 24 \(bytes\)
+ 0x0+70000035 \(MIPS_RLD_MAP_REL\) * 0x102a8
+ 0x0+00000015 \(DEBUG\) * 0x0
+ 0x0+00000003 \(PLTGOT\) * 0x10510
+ 0x0+70000001 \(MIPS_RLD_VERSION\) * 1
+ 0x0+70000005 \(MIPS_FLAGS\) * NOTPOT
+ 0x0+70000006 \(MIPS_BASE_ADDRESS\) * 0x0
+ 0x0+7000000a \(MIPS_LOCAL_GOTNO\) * 2
+ 0x0+70000011 \(MIPS_SYMTABNO\) * 10
+ 0x0+70000012 \(MIPS_UNREFEXTNO\) * 13
+ 0x0+70000013 \(MIPS_GOTSYM\) * 0xa
+ 0x0+00000000 \(NULL\) * 0x0
diff --git a/ld/testsuite/ld-mips-elf/pie-o32.d b/ld/testsuite/ld-mips-elf/pie-o32.d
new file mode 100644 (file)
index 0000000..5a9a308
--- /dev/null
@@ -0,0 +1,23 @@
+#source: pie.s
+#as: -mabi=32 -EB
+#ld: -melf32btsmip -pie
+#readelf: -d
+
+Dynamic section at offset 0x178 contains 16 entries:
+  Tag * Type * Name/Value
+ 0x00000004 \(HASH\) * 0x220
+ 0x00000005 \(STRTAB\) * 0x2fc
+ 0x00000006 \(SYMTAB\) * 0x25c
+ 0x0000000a \(STRSZ\) * 72 \(bytes\)
+ 0x0000000b \(SYMENT\) * 16 \(bytes\)
+ 0x70000035 \(MIPS_RLD_MAP_REL\) * 0x101c0
+ 0x00000015 \(DEBUG\) * 0x0
+ 0x00000003 \(PLTGOT\) * 0x10370
+ 0x70000001 \(MIPS_RLD_VERSION\) * 1
+ 0x70000005 \(MIPS_FLAGS\) * NOTPOT
+ 0x70000006 \(MIPS_BASE_ADDRESS\) * 0x0
+ 0x7000000a \(MIPS_LOCAL_GOTNO\) * 2
+ 0x70000011 \(MIPS_SYMTABNO\) * 10
+ 0x70000012 \(MIPS_UNREFEXTNO\) * 13
+ 0x70000013 \(MIPS_GOTSYM\) * 0xa
+ 0x00000000 \(NULL\) * 0x0
diff --git a/ld/testsuite/ld-mips-elf/pie.s b/ld/testsuite/ld-mips-elf/pie.s
new file mode 100644 (file)
index 0000000..c7f2b20
--- /dev/null
@@ -0,0 +1,6 @@
+       .abicalls
+       .global __start
+       .ent    __start
+__start:
+       jr $31
+       .end    __start
index ca52d8b..6b8f96c 100644 (file)
@@ -5,7 +5,7 @@ Disassembly of section .text:
 
 .* <__start>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7c40        addiu   gp,gp,31808
+  .*:  279c7c30        addiu   gp,gp,31792
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
@@ -55,7 +55,7 @@ Disassembly of section .text:
 
 .* <other>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7b80        addiu   gp,gp,31616
+  .*:  279c7b70        addiu   gp,gp,31600
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
index 163aeb5..1dbcab4 100644 (file)
@@ -13,6 +13,6 @@ OFFSET   TYPE              VALUE
 
 
 Contents of section .got:
- 10000020 00000000 80000000 0040047c 00000000  ................
+ 10000020 00000000 80000000 0040048c 00000000  .........@......
  10000030 00000000 00000000 00000000 00000000  ................
  10000040 00000000 00000001 00000000           ............    
index ca52d8b..6b8f96c 100644 (file)
@@ -5,7 +5,7 @@ Disassembly of section .text:
 
 .* <__start>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7c40        addiu   gp,gp,31808
+  .*:  279c7c30        addiu   gp,gp,31792
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
@@ -55,7 +55,7 @@ Disassembly of section .text:
 
 .* <other>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7b80        addiu   gp,gp,31616
+  .*:  279c7b70        addiu   gp,gp,31600
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
index 80e9148..fb50635 100644 (file)
@@ -13,6 +13,6 @@ OFFSET   TYPE              VALUE
 
 
 Contents of section .got:
- 10000020 00000000 80000000 0040047c 00000000  .*
+ 10000020 00000000 80000000 0040048c 00000000  .*
  10000030 00000000 00000000 00000000 00000000  .*
  10000040 00000000 00000001 00000000           .*
index 78eb882..758a4f2 100644 (file)
@@ -5,7 +5,7 @@ Disassembly of section .text:
 
 .* <other>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7c40        addiu   gp,gp,31808
+  .*:  279c7c30        addiu   gp,gp,31792
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
@@ -51,7 +51,7 @@ Disassembly of section .text:
 
 .* <__start>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7b90        addiu   gp,gp,31632
+  .*:  279c7b80        addiu   gp,gp,31616
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
index a1191e7..4a97099 100644 (file)
@@ -13,6 +13,6 @@ OFFSET   TYPE              VALUE
 
 
 Contents of section .got:
- 10000020 00000000 80000000 0040052c 00000000  .*
+ 10000020 00000000 80000000 0040053c 00000000  .*
  10000030 00000000 00000000 00000000 00000000  .*
  10000040 00000000 00000001 00000000           .*
index 699035b..ea50960 100644 (file)
@@ -5,7 +5,7 @@ Disassembly of section .text:
 
 .* <__start>:
   .*:  3c1c0fc0        lui     gp,0xfc0
-  .*:  279c7bf0        addiu   gp,gp,31728
+  .*:  279c7be0        addiu   gp,gp,31712
   .*:  0399e021        addu    gp,gp,t9
   .*:  27bdfff0        addiu   sp,sp,-16
   .*:  afbe0008        sw      s8,8\(sp\)
index a1587a6..7942188 100644 (file)
@@ -13,6 +13,6 @@ OFFSET   TYPE              VALUE
 
 
 Contents of section .got:
- 10000020 00000000 80000000 004004cc 00000000  ................
+ 10000020 00000000 80000000 004004dc 00000000  .........@......
  10000030 00000000 00000000 00000001 00000000  ................
  10000040 00000000 00000000 00000000           ............