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-27 21:35:36 +0200
committerAndreas Jaeger <aj@suse.de>2012-03-27 21:35:36 +0200
commit1e3cdfda7486316198ec0587a8aa96f50e88b3bc (patch)
tree4badfb248f3392b95be5b86d747c98331409dca7 /sysdeps/i386/configure.in
parentc876e002a2484d53c797140c005f3630e6abec72 (diff)
parentd6373f9ce3972a1891e4d09479a98e0dbc7e3d73 (diff)
downloadglibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.tar.gz
glibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.tar.xz
glibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.zip
Merge branch 'elf-move'
Conflicts:
	debug/backtracesymsfd.c
	sysdeps/generic/elf/backtracesymsfd.c
	sysdeps/i386/configure.in
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 7b4879d54a..b9e6f9eef4 100644
--- a/sysdeps/i386/configure.in
+++ b/sysdeps/i386/configure.in
@@ -85,3 +85,37 @@ LIBC_TRY_CC_OPTION([-mno-vzeroupper],
 		   [libc_cv_cc_novzeroupper=yes],
 		   [libc_cv_cc_novzeroupper=no])
 ])
+
+# 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)