Fix problematic TLS sequences for the Solaris linker
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 14 Feb 2020 18:21:02 +0000 (19:21 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 14 Feb 2020 18:24:33 +0000 (19:24 +0100)
commit81fc552558f54c6f691e7816da9ab4ad8483f7ef
tree1ff990a0e49d5dffd2b9157fd108360f5e157bbb
parentd8305a03b4f0bb081dd9c88917cc8c48def22a80
Fix problematic TLS sequences for the Solaris linker

This is an old thinko pertaining to the interaction between TLS
sequences and delay slot filling: the compiler knows that it cannot
put instructions with TLS relocations into delay slots with the
original Sun TLS model, but it tests TARGET_SUN_TLS in this context,
which depends only on the assembler.  So if the compiler is configured
with the GNU assembler and the Solaris linker, then TARGET_GNU_TLS is
set instead and the limitation is not enforced.

PR target/93704
* config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD
in conjunction with TARGET_GNU_TLS in early return.
gcc/ChangeLog
gcc/config/sparc/sparc.c