aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-sh.h
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2002-04-09 16:48:03 +0000
committerJoern Rennecke <joern.rennecke@embecosm.com>2002-04-09 16:48:03 +0000
commit5bcd00a60aef50165fe80e709b9ddfaea87ffaaa (patch)
treec6ae43ea932582a82af8d9d6f8fe124b2f247330 /gas/config/tc-sh.h
parent05793179d738977110d19fda9fd1b336ad4950e9 (diff)
downloadfsf-binutils-gdb-5bcd00a60aef50165fe80e709b9ddfaea87ffaaa.zip
fsf-binutils-gdb-5bcd00a60aef50165fe80e709b9ddfaea87ffaaa.tar.gz
fsf-binutils-gdb-5bcd00a60aef50165fe80e709b9ddfaea87ffaaa.tar.bz2
* config/tc-sh.h (TC_FIX_ADJUSTABLE): Disable adjusting if
symbol_used_in_reloc_p is true.
Diffstat (limited to 'gas/config/tc-sh.h')
-rw-r--r--gas/config/tc-sh.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/gas/config/tc-sh.h b/gas/config/tc-sh.h
index 7d9214a..313ac88 100644
--- a/gas/config/tc-sh.h
+++ b/gas/config/tc-sh.h
@@ -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)