aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/configure.in
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2012-03-19 21:00:15 +0100
committerAndreas Jaeger <aj@suse.de>2012-03-19 21:02:40 +0100
commit735095ae9566b2b14e8210e5ed44b3d5b51495f1 (patch)
tree2ef0d289cd9e056fdd421c174269496c329415d6 /sysdeps/i386/configure.in
parent1221efbda91179b78dfb469ab03be063daaf8cd0 (diff)
downloadglibc-735095ae9566b2b14e8210e5ed44b3d5b51495f1.zip
glibc-735095ae9566b2b14e8210e5ed44b3d5b51495f1.tar.gz
glibc-735095ae9566b2b14e8210e5ed44b3d5b51495f1.tar.bz2
Merge sysdeps/i386/elf/Versions into sysdeps/i386/Versions.
Move sysdeps/i386/elf/start.S to sysdeps/i386/ Merge sysdeps/i386/elf/configure.in into sysdeps/i386/configure.in Delete merged files sysdeps/i386/elf/configure.in, sysdeps/i386/elf/Versions and sysdeps/i386/elf/configure.
Diffstat (limited to 'sysdeps/i386/configure.in')
-rw-r--r--sysdeps/i386/configure.in34
1 files changed, 34 insertions, 0 deletions
diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in
index f769019..ec69080 100644
--- a/sysdeps/i386/configure.in
+++ b/sysdeps/i386/configure.in
@@ -97,3 +97,37 @@ if AC_TRY_COMMAND([${CC-cc} -mno-vzeroupper -xc /dev/null -S -o /dev/null]); the
else
libc_cv_cc_novzeroupper=no
fi])
+
+# Check for support of thread-local storage handling in assembler and
+# linker.
+AC_CACHE_CHECK(for i386 TLS support, libc_cv_386_tls, [dnl
+cat > conftest.s <<\EOF
+ .section ".tdata", "awT", @progbits
+ .globl foo
+foo: .long 1
+ .section ".tbss", "awT", @nobits
+ .globl bar
+bar: .skip 4
+ .text
+baz: leal bar@TLSLDM(%ebx), %eax
+ leal bar@DTPOFF(%eax), %edx
+ subl foo@GOTTPOFF(%edx), %eax
+ subl $bar@TPOFF, %eax
+ movl foo@GOTNTPOFF(%edx), %ecx
+ movl %gs:(%ecx), %eax
+ movl %gs:bar@NTPOFF, %eax
+EOF
+dnl
+if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
+ libc_cv_386_tls=yes
+else
+ libc_cv_386_tls=no
+fi
+rm -f conftest*])
+if test $libc_cv_386_tls = no; then
+ AC_MSG_ERROR([the assembler must support TLS])
+fi
+
+dnl It is always possible to access static and hidden symbols in an
+dnl position independent way.
+AC_DEFINE(PI_STATIC_AND_HIDDEN)