aboutsummaryrefslogtreecommitdiff
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
glibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.tar.gz
glibc-1e3cdfda7486316198ec0587a8aa96f50e88b3bc.tar.bz2
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)