From 75c1c971842f43157c173728e8465e1ce3c1b838 Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Fri, 25 Jan 2019 18:52:32 -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 * 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/ChangeLog | 6 ++++++ gas/config/tc-xtensa.c | 6 ++++++ gas/testsuite/gas/all/forward.d | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index da4154c536d..5e2d8134910 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2019-01-28 Max Filippov + + * 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 Nick Clifton * po/fr.po: Updated French translation. diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 23bb2d291fc..3bdbbc931cf 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 9750133e9ef..5a7f370a17e 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.30.2