aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-tls.c5
-rwxr-xr-xsysdeps/i386/elf/configure6
-rw-r--r--sysdeps/i386/elf/configure.in2
3 files changed, 11 insertions, 2 deletions
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c
index 557a023..729adf0 100644
--- a/sysdeps/generic/dl-tls.c
+++ b/sysdeps/generic/dl-tls.c
@@ -19,6 +19,7 @@
#include <assert.h>
+#include <tls.h>
#include <dl-tls.h>
#include <ldsodefs.h>
@@ -99,6 +100,10 @@ _dl_determine_tlsoffset (struct link_map *firstp)
runp->l_tls_offset = offset;
}
while ((runp = runp->l_tls_nextimage) != firstp);
+
+ /* The thread descriptor (pointed to by the thread pointer) has its
+ own alignment requirement. Adjust the static TLS size
+ appropriately. */
# elif TLS_DTV_AT_TP
struct link_map *lastp;
diff --git a/sysdeps/i386/elf/configure b/sysdeps/i386/elf/configure
index ca7f567..1033f78 100755
--- a/sysdeps/i386/elf/configure
+++ b/sysdeps/i386/elf/configure
@@ -1,9 +1,10 @@
# Local configure fragment for sysdeps/unix/sysv/linux.
+if test "$usetls" != no; then
# Check for support of thread-local storage handling in assembler and
# linker.
echo $ac_n "checking for i386 TLS support""... $ac_c" 1>&6
-echo "configure:7: checking for i386 TLS support" >&5
+echo "configure:8: checking for i386 TLS support" >&5
if eval "test \"`echo '$''{'libc_cv_386_tls'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -20,7 +21,7 @@ baz: leal bar@TLSLDM(%ebx), %eax
subl foo@GOTTPOFF(%edx), %eax
subl $bar@TPOFF, %eax
EOF
-if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:24: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:25: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_386_tls=yes
else
libc_cv_386_tls=no
@@ -35,3 +36,4 @@ if test $libc_cv_386_tls = yes; then
EOF
fi
+fi
diff --git a/sysdeps/i386/elf/configure.in b/sysdeps/i386/elf/configure.in
index 6352e69..96e9b2c 100644
--- a/sysdeps/i386/elf/configure.in
+++ b/sysdeps/i386/elf/configure.in
@@ -2,6 +2,7 @@ sinclude(./aclocal.m4)dnl Autoconf lossage
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux.
+if test "$usetls" != no; then
# Check for support of thread-local storage handling in assembler and
# linker.
AC_CACHE_CHECK(for i386 TLS support, libc_cv_386_tls, [dnl
@@ -28,3 +29,4 @@ rm -f conftest*])
if test $libc_cv_386_tls = yes; then
AC_DEFINE(HAVE_TLS_SUPPORT)
fi
+fi