* elf32-mips.c (mips_elf_calculate_relocation): Divide R_MIPS_PC16
authorIan Lance Taylor <ian@airs.com>
Fri, 3 Dec 1999 06:51:54 +0000 (06:51 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 3 Dec 1999 06:51:54 +0000 (06:51 +0000)
value by 4 before storing it back in the field.  From
Koundinya. K <kk@ddeorg.soft.net>.

bfd/ChangeLog
bfd/elf32-mips.c

index f7d3ffa9a1730d016a0c07b46b61a201aac524b8..7ec6946c1499b4abc9e511d8d92eaea9bc0df43f 100644 (file)
@@ -1,3 +1,9 @@
+1999-12-03  Ian Lance Taylor  <ian@zembu.com>
+
+       * elf32-mips.c (mips_elf_calculate_relocation): Divide R_MIPS_PC16
+       value by 4 before storing it back in the field.  From
+       Koundinya. K <kk@ddeorg.soft.net>.
+
 Tue Nov 30 22:41:14 1999  Jeffrey A Law  (law@cygnus.com)
 
        * archures.c (bfd_mach_am33): Define.
index fe8686264174bbdfcdf8ccdc1c7f973620d76ef3..6db9c239e73e55a36346ae8ec73903110a80ff68 100644 (file)
@@ -6103,6 +6103,7 @@ mips_elf_calculate_relocation (abfd,
 
     case R_MIPS_PC16:
       value = mips_elf_sign_extend (addend, 16) + symbol - p;
+      value = (bfd_vma) ((bfd_signed_vma) value / 4);
       overflowed_p = mips_elf_overflow_p (value, 16);
       break;