1 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
2 # Local configure fragment for sysdeps/alpha.
4 # Check for support of thread-local storage handling in assembler and linker.
5 AC_CACHE_CHECK(for Alpha TLS support, libc_cv_alpha_tls, [dnl
6 cat > conftest.s <<\EOF
7 .section ".tdata", "awT", @progbits
10 .section ".tbss", "awT", @nobits
16 ldq $27, __tls_get_addr($29) !literal!1
17 ldq $16, a($29) !tlsgd!1
18 jsr $26, ($27), __tls_get_addr !lituse_tlsgd!1
20 jsr $26, ($27), __tls_get_addr !lituse_tlsldm!2
21 ldq $27, __tls_get_addr($29) !literal!2
22 ldq $16, b($29) !tlsldm!2
24 ldq $16, c($29) !tlsgd
25 ldq $16, d($29) !tlsldm
27 ldq $16, e($29) !tlsgd!3
28 ldq $16, f($29) !tlsldm!4
30 ldq $16, g($29) !gotdtprel
31 ldah $16, h($31) !dtprelhi
32 lda $16, i($16) !dtprello
33 lda $16, j($31) !dtprel
35 ldq $16, k($29) !gottprel
36 ldah $16, l($31) !tprelhi
37 lda $16, m($16) !tprello
38 lda $16, n($31) !tprel
41 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
47 if test $libc_cv_alpha_tls = no; then
48 AC_MSG_ERROR([the assembler must support TLS])
51 AC_CACHE_CHECK(for GP relative module local relocs, libc_cv_alpha_hidden_gprel, [dnl
52 cat > conftest.c <<\EOF
53 static volatile int bar;
54 int baz __attribute__((visibility("hidden")));
55 int f(void) { return bar + baz; }
59 libc_cv_alpha_hidden_gprel=no
60 if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS -O2 -fpic conftest.c 1>&AS_MESSAGE_LOG_FD); then
61 if grep -q 'bar.*!gprel' conftest.s \
62 && grep -q 'baz.*!gprel' conftest.s \
63 && ! grep -q 'bar.*!literal' conftest.s \
64 && ! grep -q 'baz.*!literal' conftest.s; then
65 libc_cv_alpha_hidden_gprel=yes
69 if test $libc_cv_alpha_hidden_gprel = yes; then
70 AC_DEFINE(PI_STATIC_AND_HIDDEN)