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.
This commit is contained in:
Max Filippov 2019-01-25 18:52:32 -08:00
parent 7054e2fff6
commit 75c1c97184
3 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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.
2019-01-28 Nick Clifton <nickc@redhat.com>
* po/fr.po: Updated French translation.

View File

@ -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:

View File

@ -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-*-*
.*: .*