about summary refs log tree commit diff
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.tar.gz
glibc-735095ae9566b2b14e8210e5ed44b3d5b51495f1.tar.xz
glibc-735095ae9566b2b14e8210e5ed44b3d5b51495f1.zip
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 f769019acf..ec69080eb6 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)