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 3555324..e1d14bd 100644 (file)
@@ -1,5 +1,10 @@
 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
        character used to dollar local symbols.
        (LOCAL_LABEL_CHAR): New constant - the magic character used to
index f23cb09..80318fa 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 365591c..0a823dd 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 *));