This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] xtensa: gas: don't keep relocations for constants
- From: Max Filippov <jcmvbkbc at gmail dot com>
- To: binutils at sourceware dot org
- Cc: Sterling Augustine <augustine dot sterling at gmail dot com>, Eric Tsai <erictsai at cadence dot com>, linux-xtensa at linux-xtensa dot org, Romain Naour <romain dot naour at gmail dot com>, Nick Clifton <nickc at redhat dot com>, Max Filippov <jcmvbkbc at gmail dot com>
- Date: Mon, 28 Jan 2019 01:21:37 -0800
- Subject: [PATCH] xtensa: gas: don't keep relocations for constants
xtensa gas chokes on 8/16 bit data entries representing constant symbols
because it leaves BFD_RELOC_8/BFD_RELOC_16 fixups for which xtensa BFD
cannot emit relocations. Resolve fixups for constant symbols in
md_apply_fix.
gas/
2019-01-28 Max Filippov <jcmvbkbc@gmail.com>
* config/tc-xtensa.c (md_apply_fix): Mark fixups for constant
symbols as done in md_apply_fix.
* testsuite/gas/all/forward.d: Don't XFAIL for xtensa.
---
gas/config/tc-xtensa.c | 6 ++++++
gas/testsuite/gas/all/forward.d | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 23bb2d291fc8..3bdbbc931cfc 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -6019,6 +6019,12 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
val = *valP;
fixP->fx_done = 1;
}
+ else if (S_GET_SEGMENT (fixP->fx_addsy) == absolute_section)
+ {
+ val = S_GET_VALUE (fixP->fx_addsy) + fixP->fx_offset;
+ *valP = val;
+ fixP->fx_done = 1;
+ }
/* fall through */
case BFD_RELOC_XTENSA_PLT:
diff --git a/gas/testsuite/gas/all/forward.d b/gas/testsuite/gas/all/forward.d
index 9750133e9efe..5a7f370a17e2 100644
--- a/gas/testsuite/gas/all/forward.d
+++ b/gas/testsuite/gas/all/forward.d
@@ -1,7 +1,7 @@
#objdump: -s -j .data
#name: forward references
# Some targets don't manage to resolve BFD_RELOC_8 for constants.
-#xfail: *c30-*-* *c4x-*-* d10v-*-* d30v-*-* pdp11-*-* xtensa*-*-*
+#xfail: *c30-*-* *c4x-*-* d10v-*-* d30v-*-* pdp11-*-*
.*: .*
--
2.11.0