summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2019-01-25 18:52:32 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2019-01-29 11:21:50 -0800
commit0b404f6e52938b3ca2139658a6ae6755277c9258 (patch)
treefa6c956b4d925f78263f1057f8380ebcf8d8f282
parent0d2871acb7eeb542ccd3e9336cddccc62148f5de (diff)
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-29 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.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-xtensa.c6
-rw-r--r--gas/testsuite/gas/all/forward.d2
3 files changed, 13 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1bf6616f2e..58cc787515 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2019-01-29 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.
+
2019-01-28 Alan Modra <amodra@gmail.com>
* configure.ac (ac_checking): Set from bfd/development.sh
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index 23bb2d291f..3bdbbc931c 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 9750133e9e..5a7f370a17 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-*-*
.*: .*