From 6136cdd6dd1558bffd067b8e766d1cdf35323a69 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 13 Sep 2011 15:52:57 +0000 Subject: [PATCH] Remove HAVE_TLS_SUPPORT conditionals for ARM. --- ChangeLog.arm | 9 +++ sysdeps/arm/elf/configure | 109 ++++++++++++++++++++++++---- sysdeps/arm/elf/configure.in | 6 +- sysdeps/arm/nptl/tls.h | 5 -- sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 4 - 5 files changed, 104 insertions(+), 29 deletions(-) diff --git a/ChangeLog.arm b/ChangeLog.arm index 93eee30..51e477c 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,3 +1,12 @@ +2011-09-13 Joseph Myers + + * sysdeps/arm/elf/configure.in: Always test for TLS support and + error out in case it is missing. + * sysdeps/arm/elf/configure: Regenerate. + * sysdeps/arm/nptl/tls.h, + sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S: Remove tests for + HAVE_TLS_SUPPORT. + 2011-09-11 Joseph Myers * sysdeps/arm/dl-machine.h, sysdeps/arm/dl-tlsdesc.S, diff --git a/sysdeps/arm/elf/configure b/sysdeps/arm/elf/configure index 234fc20..49d57a4 100644 --- a/sysdeps/arm/elf/configure +++ b/sysdeps/arm/elf/configure @@ -1,13 +1,94 @@ + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/arm/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -echo "$as_me:$LINENO: checking for ARM TLS support" >&5 -echo $ECHO_N "checking for ARM TLS support... $ECHO_C" >&6 -if test "${libc_cv_arm_tls+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM TLS support" >&5 +$as_echo_n "checking for ARM TLS support... " >&6; } +if ${libc_cv_arm_tls+:} false; then : + $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF .section ".tdata", "awT", %progbits @@ -21,25 +102,21 @@ bar: .skip 4 .word foo(tlsgd) EOF if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then libc_cv_arm_tls=yes else libc_cv_arm_tls=no fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $libc_cv_arm_tls" >&5 -echo "${ECHO_T}$libc_cv_arm_tls" >&6 -if test $libc_cv_arm_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_tls" >&5 +$as_echo "$libc_cv_arm_tls" >&6; } +if test $libc_cv_arm_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi #AC_DEFINE(PI_STATIC_AND_HIDDEN) diff --git a/sysdeps/arm/elf/configure.in b/sysdeps/arm/elf/configure.in index 1045296..123a321 100644 --- a/sysdeps/arm/elf/configure.in +++ b/sysdeps/arm/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/arm/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for ARM TLS support, libc_cv_arm_tls, [dnl @@ -23,9 +22,8 @@ else libc_cv_arm_tls=no fi rm -f conftest*]) -if test $libc_cv_arm_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_arm_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 diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h index 82a6881..16c9706 100644 --- a/sysdeps/arm/nptl/tls.h +++ b/sysdeps/arm/nptl/tls.h @@ -43,11 +43,6 @@ typedef union dtv #endif /* __ASSEMBLER__ */ -/* We require TLS support in the tools. */ -#ifndef HAVE_TLS_SUPPORT -# error "TLS support is required." -#endif - #ifndef __ASSEMBLER__ /* Get system call information. */ diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S index 7691a94..8eeff6b 100644 --- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S @@ -35,8 +35,6 @@ #include -#ifdef HAVE_TLS_SUPPORT - /* GCC will emit calls to this routine under -mtp=soft. Linux has an equivalent helper function (which clobbers fewer registers than a normal function call) in a high page of memory; tail call to the @@ -47,5 +45,3 @@ ENTRY (__aeabi_read_tp) mov r0, #0xffff0fff sub pc, r0, #31 END (__aeabi_read_tp) - -#endif -- 2.7.4