Allow ADRL relocs to be adjusted in arm-coff
authorNick Clifton <nickc@redhat.com>
Thu, 11 Jan 2001 01:40:18 +0000 (01:40 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 11 Jan 2001 01:40:18 +0000 (01:40 +0000)
gas/ChangeLog
gas/config/tc-arm.c
gas/config/tc-arm.h

index 3555324e6ef39e7633b64fc929733cdf00462b43..e1d14bddc5e9f7a4f6707c8044e6ca20f9f4b125 100644 (file)
@@ -1,3 +1,8 @@
+2001-01-10  Nick Clifton  <nickc@redhat.com>
+
+       * config/tc-arm.c (arm_fix_adjustable): Define for OBJ_COFF.
+       * config/tc-arm.h (obj_fix_adjustable): Define for OBJ_COFF
+
 2001-01-10  Nick Clifton  <nickc@redhat.com>
 
        * symbols.c (DOLLAR_LABEL_CHAR): New constant - the magic
index f23cb0907b32415e8c4639b58557b6a32d16e6e8..80318fa365a4aaa1a0044b7cf18920e8c9024fc4 100644 (file)
@@ -8537,6 +8537,22 @@ arm_validate_fix (fixP)
   return false;
 }
 
+#ifdef OBJ_COFF
+/* This is a little hack to help the gas/arm/adrl.s test.  It prevents
+   local labels from being added to the output symbol table when they
+   are used with the ADRL pseudo op.  The ADRL relocation should always
+   be resolved before the binbary is emitted, so it is safe to say that
+   it is adjustable.  */
+
+boolean
+arm_fix_adjustable (fixP)
+   fixS * fixP;
+{
+  if (fixP->fx_r_type == BFD_RELOC_ARM_ADRL_IMMEDIATE)
+    return 1;
+  return 0;
+}
+#endif
 #ifdef OBJ_ELF
 /* Relocations against Thumb function names must be left unadjusted,
    so that the linker can use this information to correctly set the
index 365591ccaba0160b6c74cd692e81910e672aaae0..0a823dda738ee8e1f9d8987ef8eead868eac128a 100644 (file)
 #define TC_FIX_TYPE PTR
 #define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL)
 
-#ifdef OBJ_ELF
+#if defined OBJ_ELF || defined OBJ_COFF
 #include "write.h"        /* For definition of fixS */
 #define obj_fix_adjustable(fixP) arm_fix_adjustable (fixP)
 boolean arm_fix_adjustable PARAMS ((fixS *));