summaryrefslogtreecommitdiff
path: root/gas/config/tc-sh.h
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@arc.com>2002-04-09 16:48:03 +0000
committerJoern Rennecke <joern.rennecke@arc.com>2002-04-09 16:48:03 +0000
commit0c73705c2e808c5cfda1a195b86719e22e5ebf34 (patch)
tree52100de70775b8c4623c08f008054513455c2ce8 /gas/config/tc-sh.h
parente1dff24613bafff4561d958373c2b157e1fb13ce (diff)
downloadbinutils-redhat-0c73705c2e808c5cfda1a195b86719e22e5ebf34.tar.gz
* 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 7d9214a76e..313ac88c1b 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)