Skip to content
Permalink
1ee598e6cd
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
62 lines (60 sloc) 1.83 KB
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/sparc/sparc32/elf.
if test "$usetls" != no; then
# Check for support of thread-local storage handling in assembler and linker.
AC_CACHE_CHECK(for sparc32 TLS support, libc_cv_sparc32_tls, [dnl
changequote(,)dnl
cat > conftest.s <<\EOF
.section ".tdata", "awT", @progbits
.globl foo
foo: .word 1
.section ".tbss", "awT", @nobits
.globl bar
bar: .skip 4
.text
baz: sethi %tgd_hi22(foo), %l1
add %l1, %tgd_lo10(foo), %l1
add %l7, %l1, %o0, %tgd_add(foo)
call __tls_get_addr, %tgd_call(foo)
sethi %tldm_hi22(bar), %l1
add %l1, %tldm_lo10(bar), %l1
add %l7, %l1, %o0, %tldm_add(bar)
call __tls_get_addr, %tldm_call(bar)
sethi %tldo_hix22(bar), %l1
xor %l1, %tldo_lox10(bar), %l1
add %o0, %l1, %l1, %tldo_add(bar)
sethi %tie_hi22(foo), %l1
add %l1, %tie_lo10(foo), %l1
ld [%l7 + %l1], %l1, %tie_ld(foo)
add %g7, %l1, %l1, %tie_add(foo)
sethi %tle_hix22(foo), %l1
xor %l1, %tle_lox10(foo), %l1
EOF
changequote([,])dnl
dnl
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
libc_cv_sparc32_tls=yes
else
libc_cv_sparc32_tls=no
fi
rm -f conftest*])
if test $libc_cv_sparc32_tls = yes; then
AC_DEFINE(HAVE_TLS_SUPPORT)
fi
fi
# Check for broken WDISP22 in the linker.
AC_CACHE_CHECK(for sparc32 ld WDISP22 handling, libc_cv_sparc32_wdisp22, [dnl
echo 'bne foo; nop' > conftest1.s
echo '.globl foo; .hidden foo; foo: nop' > conftest2.s
libc_cv_sparc32_wdisp22=unknown
if AC_TRY_COMMAND(${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 1>&AS_MESSAGE_LOG_FD); then
if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then
libc_cv_sparc32_wdisp22=broken
else
libc_cv_sparc32_wdisp22=ok
fi
fi
rm -f conftest*])
if test $libc_cv_sparc32_wdisp22 != ok; then
AC_DEFINE(BROKEN_SPARC_WDISP22)
fi