* config/tc-sh.h (TC_FIX_ADJUSTABLE): Disable adjusting if
authorJoern Rennecke <joern.rennecke@embecosm.com>
Tue, 9 Apr 2002 16:48:03 +0000 (16:48 +0000)
committerJoern Rennecke <joern.rennecke@embecosm.com>
Tue, 9 Apr 2002 16:48:03 +0000 (16:48 +0000)
symbol_used_in_reloc_p is true.

gas/ChangeLog
gas/config/tc-sh.h

index 2cad825453b66127da4f05fd2cd28e72bb92e06f..94abdd966129d02581d27871b98515b2651cf42a 100644 (file)
@@ -1,4 +1,7 @@
-Tue Apr  9 15:17:53 2002  J"orn Rennecke <joern.rennecke@superh.com>
+Tue Apr  9 16:45:48 2002  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * config/tc-sh.h (TC_FIX_ADJUSTABLE): Disable adjusting if
+       symbol_used_in_reloc_p is true.
 
        * config/tc-sh.c (md_apply_fix3): Don't zero relocations on big
        endian hosts.
index 7d9214a76ec476e154623fdd1963dae2de55dfef..313ac88c1b09f1ab83eb36415a0f0e74afa74b67 100644 (file)
@@ -68,7 +68,12 @@ extern boolean sh_fix_adjustable PARAMS ((struct fix *));
 
 /* This arranges for gas/write.c to not apply a relocation if
    obj_fix_adjustable() says it is not adjustable.  */
-#define TC_FIX_ADJUSTABLE(fixP) obj_fix_adjustable (fixP)
+/* ??? fixups with symbols in SEC_MERGE sections are marked with
+   obj_fix_adjustable and have a non-section symbol, as in
+   "vwxyz"+1 in execute/string-opt-6.c .  Maybe the test of
+   (symbol_used_in_reloc_p should be done in the machine-independent code.  */
+#define TC_FIX_ADJUSTABLE(fixP) \
+  (! symbol_used_in_reloc_p (fixP->fx_addsy) && obj_fix_adjustable (fixP))
 #endif
 
 #define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)