Correct incremental relocation offset
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 28 Jan 2012 00:23:31 +0000 (00:23 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 28 Jan 2012 00:23:31 +0000 (00:23 +0000)
2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>

* incremental.cc (write_info_blocks): Correct relocation offset.

gold/ChangeLog
gold/incremental.cc

index beb6d34..4ef4cad 100644 (file)
@@ -1,5 +1,9 @@
 2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * incremental.cc (write_info_blocks): Correct relocation offset.
+
+2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>
+
        * x86_64.cc (Relocate::tls_gd_to_ie): Support x32.
        (Relocate::tls_gd_to_le): Likewise.
 
index 39bad37..2a26573 100644 (file)
@@ -1632,7 +1632,8 @@ Output_section_incremental_inputs<size, big_endian>::write_info_blocks(
                Swap32::writeval(pov + 4, shndx);
                Swap32::writeval(pov + 8, chain);
                Swap32::writeval(pov + 12, nrelocs);
-               Swap32::writeval(pov + 16, first_reloc * 3 * sizeof_addr);
+               Swap32::writeval(pov + 16,
+                                first_reloc * (8 + 2 * sizeof_addr));
                pov += 20;
              }