* elf32-mep.c (mep_final_link_relocate) [R_MEP_HI16S]: Correctly compensate
authorNick Clifton <nickc@redhat.com>
Wed, 4 Jul 2007 14:23:22 +0000 (14:23 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 4 Jul 2007 14:23:22 +0000 (14:23 +0000)
  for high bit set in R_MEP_LOW16.

bfd/ChangeLog
bfd/elf32-mep.c

index 85656806e975760e93dbb0e620051621f5a95440..7d88606727379499a3a1c451e62db26a5594279e 100644 (file)
@@ -1,3 +1,12 @@
+2007-07-04  Nick Clifton  <nickc@redhat.com>
+
+       Import this patch from an internal tree:
+       
+       2001-07-17  Richard Henderson  <rth@redhat.com>
+
+       * elf32-mep.c (mep_final_link_relocate) [R_MEP_HI16S]: Correctly
+       compensate for high bit set in R_MEP_LOW16.
+
 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
 
        * elf32-arm.c (elf32_arm_merge_eabi_attributes): Copy type from
index 0bba7e5010f7865a87613bd1386c02c4ebcab895..d1ee6a96952c81024bccad8c54aee7120b4d9027 100644 (file)
@@ -333,6 +333,8 @@ mep_final_link_relocate
       byte[3^e2] = ((u >> 16) & 0xff);
       break;
     case R_MEP_HI16S: /* ----------------vutsrqponmlkjihg */
+      if (s & 0x8000)
+       s += 0x10000;
       byte[2^e2] = ((s >> 24) & 0xff);
       byte[3^e2] = ((s >> 16) & 0xff);
       break;