Fix generation of RVA relocs
authorNick Clifton <nickc@redhat.com>
Thu, 18 Nov 1999 18:38:18 +0000 (18:38 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 18 Nov 1999 18:38:18 +0000 (18:38 +0000)
gas/ChangeLog
gas/config/tc-mcore.c
gas/config/tc-mcore.h

index 6b998380af0d070230f135cac30e7d6c8875ece1..807af87ebc1a95baa085a9d73492f82fa78006a5 100644 (file)
@@ -1,3 +1,13 @@
+1999-11-18  Nick Clifton  <nickc@cygnus.com>
+
+       * config/tc-mcore.h (TC_FORCE_RELOCATION): Define for Mcore-pe
+       target.
+       
+       * config/tc-mcore.c (tc_gen_reloc): Support generation of RVA
+       relocs.
+       (mcore_force_relocation): Force relocations to be generated for
+       RVA relocs.
+
 1999-11-16  Alan Modra  <alan@spri.levels.unisa.edu.au>
 
        * config/tc-i386.c (i386_immediate): Disallow O_big immediates.
index 5f16f8e3436ad4e78b6e448c1f67e57a0b8947a4..32f3a73f5e1173f59ab35503c8ea9a5d1f31e986 100644 (file)
@@ -2193,6 +2193,7 @@ tc_gen_reloc (section, fixp)
     case BFD_RELOC_MCORE_PCREL_IMM8BY4:
     case BFD_RELOC_MCORE_PCREL_IMM11BY2:
     case BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:
+    case BFD_RELOC_RVA:      
       code = fixp->fx_r_type;
       break;
     
@@ -2246,7 +2247,8 @@ mcore_force_relocation (fix)
      fixS * fix;
 {
   if (   fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT
-      || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
+      || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY
+      || fixP->fx_r_type == BFD_RELOC_RVA)
     return 1;
 
   return 0;
index 2bc2efee7a67420033d184e6787e66369ca6a7d1..eff1322ae09aa267a1436285c1177724b2bb4c12 100644 (file)
@@ -74,6 +74,10 @@ struct mcore_tc_sy
 
 #define TC_SYMFIELD_TYPE struct mcore_tc_sy
 
+# if defined TE_PE
+#  define TC_FORCE_RELOCATION(x) ((x)->fx_r_type == BFD_RELOC_RVA)
+# endif
+
 #endif /* OBJ_COFF */