# Thread-local storage - the check is heavily parameterized.
conftest_s=
-tls_first_major=
-tls_first_minor=
tls_as_opt=
case "$target" in
alpha*-*-*)
ldah $2,foo($29) !tprelhi
lda $3,foo($2) !tprello
lda $4,foo($29) !tprel'
- tls_first_major=2
- tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
arc*-*-*)
conftest_s='
add_s r0,r0, @foo@tpoff'
- tls_first_major=2
- tls_first_minor=23
;;
cris-*-*|crisv32-*-*)
conftest_s='
.text
move.d x:IE,$r10
nop'
- tls_first_major=2
- tls_first_minor=20
tls_as_opt=--fatal-warnings
;;
frv*-*-*)
x: .long 25
.text
call #gettlsoff(x)'
- tls_first_major=2
- tls_first_minor=14
;;
hppa*-*-linux*)
conftest_s='
mfctl %cr27,%t1
addil LR%foo-$tls_leoff$,%t1
ldo RR%foo-$tls_leoff$(%r1),%t2'
- tls_first_major=2
- tls_first_minor=15
tls_as_opt=--fatal-warnings
;;
arm*-*-*)
.word foo(tlsgd)
.word foo(tlsldm)
.word foo(tlsldo)'
- tls_first_major=2
- tls_first_minor=17
;;
i[34567]86-*-* | x86_64-*-*)
case "$target" in
if test x$on_solaris = xyes && test x$gas_flag = xno; then
conftest_s='
.section .tdata,"awt",@progbits'
- tls_first_major=0
- tls_first_minor=0
tls_section_flag=t
$as_echo "#define TLS_SECTION_ASM_FLAG 't'" >>confdefs.h
else
conftest_s='
.section ".tdata","awT",@progbits'
- tls_first_major=2
- tls_first_minor=14
tls_section_flag=T
tls_as_opt="--fatal-warnings"
fi
addl r20 = @tprel(foo#), gp
adds r22 = @tprel(foo#), r13
movl r24 = @tprel(foo#)'
- tls_first_major=2
- tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
microblaze*-*-*)
.text
addik r5,r20,x@TLSGD
addik r5,r20,x@TLSLDM'
- tls_first_major=2
- tls_first_minor=20
tls_as_opt='--fatal-warnings'
;;
mips*-*-*)
lw $4, %gottprel(x)($28)
lui $4, %tprel_hi(x)
addiu $4, $4, %tprel_lo(x)'
- tls_first_major=2
- tls_first_minor=16
tls_as_opt='-32 --fatal-warnings'
;;
m68k-*-*)
move.l x@TLSLDO(%a5),%a0
move.l x@TLSIE(%a5),%a0
move.l x@TLSLE(%a5),%a0'
- tls_first_major=2
- tls_first_minor=19
tls_as_opt='--fatal-warnings'
;;
nios2-*-*)
conftest_s='
.section ".tdata","awT",@progbits'
- tls_first_major=2
- tls_first_minor=23
tls_as_opt="--fatal-warnings"
;;
aarch64*-*-*)
add x0, x0, #:tlsgd_lo12:x
bl __tls_get_addr
nop'
- tls_first_major=2
- tls_first_minor=20
tls_as_opt='--fatal-warnings'
;;
or1k*-*-*)
l.movhi r3, tpoffha(foo)
l.add r3, r3, r10
l.lwz r4, tpofflo(foo)(r3)'
- tls_first_major=2
- tls_first_minor=30
tls_as_opt=--fatal-warnings
;;
powerpc-ibm-aix*)
.csect a[TL],4
a:
.space 4'
- tls_first_major=0
- tls_first_minor=0
;;
powerpc64*-*-*)
conftest_s='
add 9,9,3
bl .__tls_get_addr
nop'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-a64 --fatal-warnings"
;;
powerpc*-*-*)
addi 9,2,x1@tprel
addis 9,2,x2@tprel@ha
addi 9,9,x2@tprel@l'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-a32 --fatal-warnings"
;;
riscv*-*-*)
.text
la.tls.gd a0,x
call __tls_get_addr'
- tls_first_major=2
- tls_first_minor=21
tls_as_opt='--fatal-warnings'
;;
s390-*-*)
l %r1,0(%r1):tls_load:foo
bas %r14,0(%r1,%r13):tls_gdcall:foo
bas %r14,0(%r1,%r13):tls_ldcall:foo'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-m31 --fatal-warnings"
;;
s390x-*-*)
larl %r1,foo@INDNTPOFF
brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
sh-*-* | sh[123456789lbe]*-*-*)
.long foo@DTPOFF
.long foo@GOTTPOFF
.long foo@TPOFF'
- tls_first_major=2
- tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
sparc*-*-*)
if test x$on_solaris = xyes && test x$gas_flag = xno; then
conftest_s='
.section ".tdata",#alloc,#write,#tls'
- tls_first_major=0
- tls_first_minor=0
else
conftest_s='
.section ".tdata","awT",@progbits'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-32 --fatal-warnings"
fi
conftest_s="$conftest_s
addli r0, zero, tls_ie(foo)
auli r0, r0, tls_ie_ha16(foo)
addli r0, r0, tls_ie_lo16(foo)'
- tls_first_major=2
- tls_first_minor=22
tls_as_opt="--fatal-warnings"
;;
tilegx*-*-*)
jal __tls_get_addr
shl16insli r0, zero, hw1_last_tls_ie(foo)
shl16insli r0, r0, hw0_tls_ie(foo)'
- tls_first_major=2
- tls_first_minor=22
tls_as_opt="--fatal-warnings"
;;
xtensa*-*-*)
movi a8, foo@TLSFUNC
movi a10, foo@TLSARG
callx8.tls a8, foo@TLSCALL'
- tls_first_major=2
- tls_first_minor=19
;;
esac
set_have_as_tls=no
: # TLS explicitly disabled.
elif test "x$enable_tls" = xyes ; then
set_have_as_tls=yes # TLS explicitly enabled.
-elif test -z "$tls_first_major"; then
+elif test -z "$conftest_s"; then
: # If we don't have a check, assume no support.
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for thread-local storage support" >&5
# Thread-local storage - the check is heavily parameterized.
conftest_s=
-tls_first_major=
-tls_first_minor=
tls_as_opt=
case "$target" in
changequote(,)dnl
ldah $2,foo($29) !tprelhi
lda $3,foo($2) !tprello
lda $4,foo($29) !tprel'
- tls_first_major=2
- tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
arc*-*-*)
conftest_s='
add_s r0,r0, @foo@tpoff'
- tls_first_major=2
- tls_first_minor=23
;;
cris-*-*|crisv32-*-*)
conftest_s='
.text
move.d x:IE,$r10
nop'
- tls_first_major=2
- tls_first_minor=20
tls_as_opt=--fatal-warnings
;;
frv*-*-*)
x: .long 25
.text
call #gettlsoff(x)'
- tls_first_major=2
- tls_first_minor=14
;;
hppa*-*-linux*)
conftest_s='
mfctl %cr27,%t1
addil LR%foo-$tls_leoff$,%t1
ldo RR%foo-$tls_leoff$(%r1),%t2'
- tls_first_major=2
- tls_first_minor=15
tls_as_opt=--fatal-warnings
;;
arm*-*-*)
.word foo(tlsgd)
.word foo(tlsldm)
.word foo(tlsldo)'
- tls_first_major=2
- tls_first_minor=17
;;
i[34567]86-*-* | x86_64-*-*)
case "$target" in
if test x$on_solaris = xyes && test x$gas_flag = xno; then
conftest_s='
.section .tdata,"awt",@progbits'
- tls_first_major=0
- tls_first_minor=0
tls_section_flag=t
changequote([,])dnl
AC_DEFINE(TLS_SECTION_ASM_FLAG, 't',
else
conftest_s='
.section ".tdata","awT",@progbits'
- tls_first_major=2
- tls_first_minor=14
tls_section_flag=T
tls_as_opt="--fatal-warnings"
fi
addl r20 = @tprel(foo#), gp
adds r22 = @tprel(foo#), r13
movl r24 = @tprel(foo#)'
- tls_first_major=2
- tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
microblaze*-*-*)
.text
addik r5,r20,x@TLSGD
addik r5,r20,x@TLSLDM'
- tls_first_major=2
- tls_first_minor=20
tls_as_opt='--fatal-warnings'
;;
mips*-*-*)
lw $4, %gottprel(x)($28)
lui $4, %tprel_hi(x)
addiu $4, $4, %tprel_lo(x)'
- tls_first_major=2
- tls_first_minor=16
tls_as_opt='-32 --fatal-warnings'
;;
m68k-*-*)
move.l x@TLSLDO(%a5),%a0
move.l x@TLSIE(%a5),%a0
move.l x@TLSLE(%a5),%a0'
- tls_first_major=2
- tls_first_minor=19
tls_as_opt='--fatal-warnings'
;;
nios2-*-*)
conftest_s='
.section ".tdata","awT",@progbits'
- tls_first_major=2
- tls_first_minor=23
tls_as_opt="--fatal-warnings"
;;
aarch64*-*-*)
add x0, x0, #:tlsgd_lo12:x
bl __tls_get_addr
nop'
- tls_first_major=2
- tls_first_minor=20
tls_as_opt='--fatal-warnings'
;;
or1k*-*-*)
l.movhi r3, tpoffha(foo)
l.add r3, r3, r10
l.lwz r4, tpofflo(foo)(r3)'
- tls_first_major=2
- tls_first_minor=30
tls_as_opt=--fatal-warnings
;;
powerpc-ibm-aix*)
.csect a[TL],4
a:
.space 4'
- tls_first_major=0
- tls_first_minor=0
;;
powerpc64*-*-*)
conftest_s='
add 9,9,3
bl .__tls_get_addr
nop'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-a64 --fatal-warnings"
;;
powerpc*-*-*)
addi 9,2,x1@tprel
addis 9,2,x2@tprel@ha
addi 9,9,x2@tprel@l'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-a32 --fatal-warnings"
;;
riscv*-*-*)
.text
la.tls.gd a0,x
call __tls_get_addr'
- tls_first_major=2
- tls_first_minor=21
tls_as_opt='--fatal-warnings'
;;
s390-*-*)
l %r1,0(%r1):tls_load:foo
bas %r14,0(%r1,%r13):tls_gdcall:foo
bas %r14,0(%r1,%r13):tls_ldcall:foo'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-m31 --fatal-warnings"
;;
s390x-*-*)
larl %r1,foo@INDNTPOFF
brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-m64 -Aesame --fatal-warnings"
;;
sh-*-* | sh[123456789lbe]*-*-*)
.long foo@DTPOFF
.long foo@GOTTPOFF
.long foo@TPOFF'
- tls_first_major=2
- tls_first_minor=13
tls_as_opt=--fatal-warnings
;;
sparc*-*-*)
if test x$on_solaris = xyes && test x$gas_flag = xno; then
conftest_s='
.section ".tdata",#alloc,#write,#tls'
- tls_first_major=0
- tls_first_minor=0
else
conftest_s='
.section ".tdata","awT",@progbits'
- tls_first_major=2
- tls_first_minor=14
tls_as_opt="-32 --fatal-warnings"
fi
conftest_s="$conftest_s
addli r0, zero, tls_ie(foo)
auli r0, r0, tls_ie_ha16(foo)
addli r0, r0, tls_ie_lo16(foo)'
- tls_first_major=2
- tls_first_minor=22
tls_as_opt="--fatal-warnings"
;;
tilegx*-*-*)
jal __tls_get_addr
shl16insli r0, zero, hw1_last_tls_ie(foo)
shl16insli r0, r0, hw0_tls_ie(foo)'
- tls_first_major=2
- tls_first_minor=22
tls_as_opt="--fatal-warnings"
;;
xtensa*-*-*)
movi a8, foo@TLSFUNC
movi a10, foo@TLSARG
callx8.tls a8, foo@TLSCALL'
- tls_first_major=2
- tls_first_minor=19
;;
changequote([,])dnl
esac
: # TLS explicitly disabled.
elif test "x$enable_tls" = xyes ; then
set_have_as_tls=yes # TLS explicitly enabled.
-elif test -z "$tls_first_major"; then
+elif test -z "$conftest_s"; then
: # If we don't have a check, assume no support.
else
gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,