diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-09-11 15:02:01 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-09-11 15:02:01 -0400 |
commit | 83cd14204559abbb52635006832eaf4d2f42514a (patch) | |
tree | 81dbbd663d1011d9fc01b591fd2bea237905ab6b | |
parent | 633f745dcad9c7324f56f8ef85ee9b460b1006e7 (diff) | |
download | glibc-83cd14204559abbb52635006832eaf4d2f42514a.tar.gz glibc-83cd14204559abbb52635006832eaf4d2f42514a.tar.xz glibc-83cd14204559abbb52635006832eaf4d2f42514a.zip |
Remove --wth-tls option, TLS support is required
34 files changed, 888 insertions, 343 deletions
diff --git a/ChangeLog b/ChangeLog index 7f9208ffc8..275e693d3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,21 @@ 2011-09-11 Ulrich Drepper <drepper@gmail.com> + * configure.in: Remove --with-tls option. + * config.h.in: Remove HAVE_TLS_SUPPORT entry. + * sysdeps/i386/elf/configure.in: Always test for TLS support and err + out in case it is missing. + * sysdeps/ia64/elf/configure.in: Likewise. + * sysdeps/powerpc/powerpc32/elf/configure.in: Likewise. + * sysdeps/powerpc/powerpc64/elf/configure.in: Likewise. + * sysdeps/s390/s390-32/elf/configure.in: Likewise. + * sysdeps/s390/s390-64/elf/configure.in: Likewise. + * sysdeps/sh/elf/configure.in: Likewise. + * sysdeps/sparc/sparc32/elf/configure.in: Likewise. + * sysdeps/sparc/sparc64/elf/configure.in: Likewise. + * sysdeps/x86_64/elf/configure.in: Likewise. + * sysdeps/mach/hurd/i386/tls.h: Remove test for HAVE_TLS_SUPPORT. + * sysdeps/mach/hurd/tls.h: Likewise. + [BZ #13067] * malloc/obstack.h [!GNUC] (obstack_free): Avoid cast to int. diff --git a/config.h.in b/config.h.in index 893d8f6be3..7b5095691d 100644 --- a/config.h.in +++ b/config.h.in @@ -112,9 +112,6 @@ /* Define if _rtld_local structure should be forced into .sdata section. */ #undef HAVE_SDATA_SECTION -/* Define if binutils support TLS handling. */ -#undef HAVE_TLS_SUPPORT - /* Define if gcc supports SSE4. */ #undef HAVE_SSE4_SUPPORT diff --git a/configure b/configure index c5cfc6d956..b59049f639 100755 --- a/configure +++ b/configure @@ -783,7 +783,6 @@ enable_versioning enable_oldest_abi enable_stackguard_randomization enable_add_ons -with_tls enable_hidden_plt enable_bind_now enable_static_nss @@ -1466,7 +1465,6 @@ Optional Packages: --with-headers=PATH location of system headers to use (for example /usr/src/linux/include) [default=compiler default] --with-default-link do not use explicit linker scripts - --with-tls enable support for TLS --with-cpu=CPU select code for CPU variant Some influential environment variables: @@ -3668,15 +3666,6 @@ else fi - -# Check whether --with-tls was given. -if test "${with_tls+set}" = set; then : - withval=$with_tls; usetls=$withval -else - usetls=yes -fi - - # Check whether --enable-hidden-plt was given. if test "${enable_hidden_plt+set}" = set; then : enableval=$enable_hidden_plt; hidden=$enableval diff --git a/configure.in b/configure.in index 2682b68393..b2949b4958 100644 --- a/configure.in +++ b/configure.in @@ -187,13 +187,6 @@ AC_ARG_ENABLE([add-ons], search for add-ons if no parameter given]), , [enable_add_ons=yes]) -dnl Let the user avoid using TLS. Don't know why but... -AC_ARG_WITH([tls], - AC_HELP_STRING([--with-tls], - [enable support for TLS]), - [usetls=$withval], - [usetls=yes]) - AC_ARG_ENABLE([hidden-plt], AC_HELP_STRING([--disable-hidden-plt], [do not hide internal function calls to avoid PLT]), diff --git a/nptl/ChangeLog b/nptl/ChangeLog index b3439393ee..15c785bf4e 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,13 @@ +2011-09-11 Ulrich Drepper <drepper@gmail.com> + + * sysdeps/i386/tls.h: Remove HAVE_TLS_SUPPORT test. + * sysdeps/ia64/tls.h: Likewise. + * sysdeps/powerpc/tls.h: Likewise. + * sysdeps/s390/tls.h: Likewise. + * sysdeps/sh/tls.h: Likewise. + * sysdeps/sparc/tls.h: Likewise. + * sysdeps/x86_64/tls.h: Likewise. + 2011-09-10 Ulrich Drepper <drepper@gmail.com> * sysdeps/pthread/malloc-machine.h: Define MUTEX_INITIALIZER. diff --git a/nptl/sysdeps/i386/tls.h b/nptl/sysdeps/i386/tls.h index f23977e73f..3f597a9771 100644 --- a/nptl/sysdeps/i386/tls.h +++ b/nptl/sysdeps/i386/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. nptl/i386 version. - Copyright (C) 2002-2007, 2009 Free Software Foundation, Inc. + Copyright (C) 2002-2007, 2009, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -70,11 +70,6 @@ typedef struct #endif -/* We require TLS support in the tools. */ -#ifndef HAVE_TLS_SUPPORT -# error "TLS support is required." -#endif - /* Alignment requirement for the stack. For IA-32 this is governed by the SSE memory functions. */ #define STACK_ALIGN 16 @@ -261,7 +256,7 @@ union user_desc_init The contained asm must *not* be marked volatile since otherwise assignments like - pthread_descr self = thread_self(); + pthread_descr self = thread_self(); do not get optimized away. */ # define THREAD_SELF \ ({ struct pthread *__self; \ diff --git a/nptl/sysdeps/ia64/tls.h b/nptl/sysdeps/ia64/tls.h index 936ff01a72..c2a092663b 100644 --- a/nptl/sysdeps/ia64/tls.h +++ b/nptl/sysdeps/ia64/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. nptl/IA-64 version. - Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -56,11 +56,6 @@ register struct pthread *__thread_self __asm__("r13"); #endif -/* We require TLS support in the tools. */ -#ifndef HAVE_TLS_SUPPORT -# error "TLS support is required." -#endif - /* Alignment requirement for the stack. */ #define STACK_ALIGN 16 diff --git a/nptl/sysdeps/powerpc/tls.h b/nptl/sysdeps/powerpc/tls.h index 0f4d5290dd..09f7484c8a 100644 --- a/nptl/sysdeps/powerpc/tls.h +++ b/nptl/sysdeps/powerpc/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/PowerPC version. - Copyright (C) 2003, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2006, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -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/nptl/sysdeps/s390/tls.h b/nptl/sysdeps/s390/tls.h index 2b38ed4e7d..52fe351fb9 100644 --- a/nptl/sysdeps/s390/tls.h +++ b/nptl/sysdeps/s390/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/s390 version. - Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -66,11 +66,6 @@ typedef struct #endif -/* We require TLS support in the tools. */ -#ifndef HAVE_TLS_SUPPORT -# error "TLS support is required." -#endif - /* Alignment requirement for the stack. For IA-32 this is governed by the SSE memory functions. */ #define STACK_ALIGN 16 diff --git a/nptl/sysdeps/sh/tls.h b/nptl/sysdeps/sh/tls.h index a2d4d565ff..908e455874 100644 --- a/nptl/sysdeps/sh/tls.h +++ b/nptl/sysdeps/sh/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. NPTL/SH version. - Copyright (C) 2003, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2006, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -55,11 +55,6 @@ typedef struct #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. */ @@ -116,7 +111,7 @@ typedef struct /* Return the thread descriptor for the current thread. The contained asm must *not* be marked volatile since otherwise assignments like - struct pthread *self = thread_self(); + struct pthread *self = thread_self(); do not get optimized away. */ # define THREAD_SELF \ ({ struct pthread *__self; \ diff --git a/nptl/sysdeps/sparc/tls.h b/nptl/sysdeps/sparc/tls.h index dc1b3868c9..64ede5a897 100644 --- a/nptl/sysdeps/sparc/tls.h +++ b/nptl/sysdeps/sparc/tls.h @@ -1,5 +1,5 @@ /* Definitions for thread-local data handling. NPTL/sparc version. - Copyright (C) 2003, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2006, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -65,10 +65,6 @@ typedef struct # include <tcb-offsets.h> #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/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h index 41b5e6daa2..95e022b0e4 100644 --- a/nptl/sysdeps/x86_64/tls.h +++ b/nptl/sysdeps/x86_64/tls.h @@ -1,5 +1,5 @@ /* Definition for thread-local data handling. nptl/x86_64 version. - Copyright (C) 2002-2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2002-2007, 2008, 2009, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -80,11 +80,6 @@ typedef struct #endif -/* We require TLS support in the tools. */ -#ifndef HAVE_TLS_SUPPORT -# error "TLS support is required." -#endif - /* Alignment requirement for the stack. */ #define STACK_ALIGN 16 diff --git a/sysdeps/i386/elf/configure b/sysdeps/i386/elf/configure index 3aa5a7d1a3..83e89bd0a0 100644 --- a/sysdeps/i386/elf/configure +++ b/sysdeps/i386/elf/configure @@ -83,12 +83,11 @@ $as_echo X/"$0" | # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/i386/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for i386 TLS support" >&5 $as_echo_n "checking for i386 TLS support... " >&6; } -if test "${libc_cv_386_tls+set}" = set; then : +if ${libc_cv_386_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF @@ -121,10 +120,8 @@ rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_386_tls" >&5 $as_echo "$libc_cv_386_tls" >&6; } -if test $libc_cv_386_tls = yes; then - $as_echo "#define HAVE_TLS_SUPPORT 1" >>confdefs.h - -fi +if test $libc_cv_386_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/i386/elf/configure.in b/sysdeps/i386/elf/configure.in index ca607adeb5..0c436f3f41 100644 --- a/sysdeps/i386/elf/configure.in +++ b/sysdeps/i386/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/i386/elf. -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,9 +27,8 @@ else libc_cv_386_tls=no fi rm -f conftest*]) -if test $libc_cv_386_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +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 diff --git a/sysdeps/ia64/elf/configure b/sysdeps/ia64/elf/configure index 8bc2e4f711..aa30dd0870 100644 --- a/sysdeps/ia64/elf/configure +++ b/sysdeps/ia64/elf/configure @@ -1,51 +1,126 @@ + +# 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/ia64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -{ $as_echo "$as_me:$LINENO: checking for ia64 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ia64 TLS support" >&5 $as_echo_n "checking for ia64 TLS support... " >&6; } -if test "${libc_cv_ia64_tls+set}" = set; then +if ${libc_cv_ia64_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF - .section ".tdata","awT",@progbits + .section ".tdata","awT",@progbits foo: data8 25 - .text - addl r16 = @ltoff(@dtpmod(foo#)), gp - addl r17 = @ltoff(@dtprel(foo#)), gp - addl r18 = @ltoff(@tprel(foo#)), gp - addl r19 = @dtprel(foo#), gp - adds r21 = @dtprel(foo#), r13 - movl r23 = @dtprel(foo#) - addl r20 = @tprel(foo#), gp - adds r22 = @tprel(foo#), r13 - movl r24 = @tprel(foo#) + .text + addl r16 = @ltoff(@dtpmod(foo#)), gp + addl r17 = @ltoff(@dtprel(foo#)), gp + addl r18 = @ltoff(@tprel(foo#)), gp + addl r19 = @dtprel(foo#), gp + adds r21 = @dtprel(foo#), r13 + movl r23 = @dtprel(foo#) + addl r20 = @tprel(foo#), gp + adds r22 = @tprel(foo#), r13 + movl r24 = @tprel(foo#) 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=$? - $as_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_ia64_tls=yes else libc_cv_ia64_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_ia64_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ia64_tls" >&5 $as_echo "$libc_cv_ia64_tls" >&6; } -if test $libc_cv_ia64_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_ia64_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi -cat >>confdefs.h <<\_ACEOF -#define PI_STATIC_AND_HIDDEN 1 -_ACEOF +$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/ia64/elf/configure.in b/sysdeps/ia64/elf/configure.in index b113579ee0..396b9c49cf 100644 --- a/sysdeps/ia64/elf/configure.in +++ b/sysdeps/ia64/elf/configure.in @@ -1,23 +1,22 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/ia64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for ia64 TLS support, libc_cv_ia64_tls, [dnl cat > conftest.s <<\EOF - .section ".tdata","awT",@progbits + .section ".tdata","awT",@progbits foo: data8 25 - .text - addl r16 = @ltoff(@dtpmod(foo#)), gp - addl r17 = @ltoff(@dtprel(foo#)), gp - addl r18 = @ltoff(@tprel(foo#)), gp - addl r19 = @dtprel(foo#), gp - adds r21 = @dtprel(foo#), r13 - movl r23 = @dtprel(foo#) - addl r20 = @tprel(foo#), gp - adds r22 = @tprel(foo#), r13 - movl r24 = @tprel(foo#) + .text + addl r16 = @ltoff(@dtpmod(foo#)), gp + addl r17 = @ltoff(@dtprel(foo#)), gp + addl r18 = @ltoff(@tprel(foo#)), gp + addl r19 = @dtprel(foo#), gp + adds r21 = @dtprel(foo#), r13 + movl r23 = @dtprel(foo#) + addl r20 = @tprel(foo#), gp + adds r22 = @tprel(foo#), r13 + movl r24 = @tprel(foo#) EOF dnl if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then @@ -26,9 +25,8 @@ else libc_cv_ia64_tls=no fi rm -f conftest*]) -if test $libc_cv_ia64_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_ia64_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/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h index d98b485b96..46e0982412 100644 --- a/sysdeps/mach/hurd/i386/tls.h +++ b/sysdeps/mach/hurd/i386/tls.h @@ -1,5 +1,5 @@ /* Definitions for thread-local data handling. Hurd/i386 version. - Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,16 +20,15 @@ #ifndef _I386_TLS_H #define _I386_TLS_H -#if defined HAVE_TLS_SUPPORT /* Some things really need not be machine-dependent. */ -# include <sysdeps/mach/hurd/tls.h> +#include <sysdeps/mach/hurd/tls.h> /* The TCB can have any size and the memory following the address the thread pointer points to is unspecified. Allocate the TCB there. */ -# define TLS_TCB_AT_TP 1 +#define TLS_TCB_AT_TP 1 -# ifndef __ASSEMBLER__ +#ifndef __ASSEMBLER__ /* Use i386-specific RPCs to arrange that %gs segment register prefix addresses the TCB in each thread. */ @@ -42,7 +41,7 @@ # include <errno.h> # include <assert.h> -#define HURD_TLS_DESC_DECL(desc, tcb) \ +# define HURD_TLS_DESC_DECL(desc, tcb) \ struct descriptor desc = \ { /* low word: */ \ 0xffff /* limit 0..15 */ \ @@ -123,7 +122,7 @@ _hurd_tls_init (tcbhead_t *tcb, int secondcall) # define TLS_INIT_TP_EXPENSIVE 1 /* Return the TCB address of the current thread. */ -# define THREAD_SELF \ +# define THREAD_SELF \ ({ tcbhead_t *__tcb; \ __asm__ ("movl %%gs:%c1,%0" : "=r" (__tcb) \ : "i" (offsetof (tcbhead_t, tcb))); \ @@ -135,12 +134,12 @@ _hurd_tls_init (tcbhead_t *tcb, int secondcall) : : "ir" (dtvp), "i" (offsetof (tcbhead_t, dtv))); }) /* Return the address of the dtv for the current thread. */ -# define THREAD_DTV() \ +# define THREAD_DTV() \ ({ dtv_t *_dtv; \ asm ("movl %%gs:%P1,%0" : "=q" (_dtv) : "i" (offsetof (tcbhead_t, dtv)));\ _dtv; }) -#include <mach/machine/thread_status.h> +# include <mach/machine/thread_status.h> /* Set up TLS in the new thread of a fork child, copying from our own. */ static inline error_t __attribute__ ((unused)) @@ -165,7 +164,6 @@ _hurd_tls_fork (thread_t child, struct i386_thread_state *state) return err; } -# endif /* !__ASSEMBLER__ */ -#endif /* HAVE_TLS_SUPPORT */ +#endif /* !__ASSEMBLER__ */ #endif /* i386/tls.h */ diff --git a/sysdeps/mach/hurd/tls.h b/sysdeps/mach/hurd/tls.h index 8ad3f1a28b..d63045fefe 100644 --- a/sysdeps/mach/hurd/tls.h +++ b/sysdeps/mach/hurd/tls.h @@ -1,5 +1,5 @@ /* Definitions for thread-local data handling. Hurd version. - Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ #ifndef _TLS_H #define _TLS_H -#if defined HAVE_TLS_SUPPORT && !defined __ASSEMBLER__ +#ifndef __ASSEMBLER__ # include <stddef.h> # include <stdbool.h> @@ -71,7 +71,7 @@ typedef struct # define GET_DTV(descr) \ (((tcbhead_t *) (descr))->dtv) -#endif /* HAVE_TLS_SUPPORT */ +#endif /* !ASSEMBLER */ #endif /* tls.h */ diff --git a/sysdeps/powerpc/powerpc32/elf/configure b/sysdeps/powerpc/powerpc32/elf/configure index dfa5770756..bce17df1ab 100644 --- a/sysdeps/powerpc/powerpc32/elf/configure +++ b/sysdeps/powerpc/powerpc32/elf/configure @@ -1,12 +1,93 @@ + +# 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/powerpc32/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -{ $as_echo "$as_me:$LINENO: checking for powerpc32 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for powerpc32 TLS support" >&5 $as_echo_n "checking for powerpc32 TLS support... " >&6; } -if test "${libc_cv_powerpc32_tls+set}" = set; then +if ${libc_cv_powerpc32_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF @@ -30,23 +111,19 @@ x2: .long 1 addi 9,9,x2@tprel@l 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=$? - $as_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_powerpc32_tls=yes else libc_cv_powerpc32_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_powerpc32_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_powerpc32_tls" >&5 $as_echo "$libc_cv_powerpc32_tls" >&6; } -if test $libc_cv_powerpc32_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_powerpc32_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi diff --git a/sysdeps/powerpc/powerpc32/elf/configure.in b/sysdeps/powerpc/powerpc32/elf/configure.in index fbf41a4984..e527b454c1 100644 --- a/sysdeps/powerpc/powerpc32/elf/configure.in +++ b/sysdeps/powerpc/powerpc32/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/powerpc32/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for powerpc32 TLS support, libc_cv_powerpc32_tls, [dnl @@ -32,7 +31,6 @@ else libc_cv_powerpc32_tls=no fi rm -f conftest*]) -if test $libc_cv_powerpc32_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_powerpc32_tls = no; then + AC_MSG_ERROR([the assembler must support TLS]) fi diff --git a/sysdeps/powerpc/powerpc64/elf/configure b/sysdeps/powerpc/powerpc64/elf/configure index 6ca1510a2c..a3d24a3827 100644 --- a/sysdeps/powerpc/powerpc64/elf/configure +++ b/sysdeps/powerpc/powerpc64/elf/configure @@ -1,72 +1,148 @@ + +# 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/powerpc64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -{ $as_echo "$as_me:$LINENO: checking for powerpc64 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for powerpc64 TLS support" >&5 $as_echo_n "checking for powerpc64 TLS support... " >&6; } -if test "${libc_cv_powerpc64_tls+set}" = set; then +if ${libc_cv_powerpc64_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF - .section ".tdata","awT",@progbits + .section ".tdata","awT",@progbits x: .quad 1 x1: .quad 1 x2: .quad 1 x3: .quad 1 x4: .long 1 - .section ".toc","aw" + .section ".toc","aw" .LC0: - .quad x@dtpmod - .quad x@dtprel + .quad x@dtpmod + .quad x@dtprel .LC1: - .quad x1@dtpmod - .quad 0 + .quad x1@dtpmod + .quad 0 .LC2: .quad x@tprel - .text - addi 3,2,x@got@tlsgd - addi 3,2,.LC0@toc - addi 3,2,x1@got@tlsld - addi 9,3,x1@dtprel - addis 9,3,x2@dtprel@ha - addi 9,9,x2@dtprel@l - ld 9,x3@got@dtprel(2) - addi 3,2,.LC0@toc - lwz 0,x1@dtprel(3) - ld 0,x1@dtprel(3) - addis 9,3,x2@dtprel@ha - lwz 0,x2@dtprel@l(9) - ld 0,x2@dtprel@l(9) - ld 9,x3@got@dtprel(2) - ld 9,x@got@tprel(2) - add 9,9,x@tls - ld 9,.LC2@toc(2) - add 9,9,.LC2@tls - addi 9,13,x1@tprel - addis 9,13,x2@tprel@ha - addi 9,9,x2@tprel@l + .text + addi 3,2,x@got@tlsgd + addi 3,2,.LC0@toc + addi 3,2,x1@got@tlsld + addi 9,3,x1@dtprel + addis 9,3,x2@dtprel@ha + addi 9,9,x2@dtprel@l + ld 9,x3@got@dtprel(2) + addi 3,2,.LC0@toc + lwz 0,x1@dtprel(3) + ld 0,x1@dtprel(3) + addis 9,3,x2@dtprel@ha + lwz 0,x2@dtprel@l(9) + ld 0,x2@dtprel@l(9) + ld 9,x3@got@dtprel(2) + ld 9,x@got@tprel(2) + add 9,9,x@tls + ld 9,.LC2@toc(2) + add 9,9,.LC2@tls + addi 9,13,x1@tprel + addis 9,13,x2@tprel@ha + addi 9,9,x2@tprel@l 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=$? - $as_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_powerpc64_tls=yes else libc_cv_powerpc64_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_powerpc64_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_powerpc64_tls" >&5 $as_echo "$libc_cv_powerpc64_tls" >&6; } -if test $libc_cv_powerpc64_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_powerpc64_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi - diff --git a/sysdeps/powerpc/powerpc64/elf/configure.in b/sysdeps/powerpc/powerpc64/elf/configure.in index 5466367cfb..9a375c66a4 100644 --- a/sysdeps/powerpc/powerpc64/elf/configure.in +++ b/sysdeps/powerpc/powerpc64/elf/configure.in @@ -1,48 +1,47 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/powerpc64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for powerpc64 TLS support, libc_cv_powerpc64_tls, [dnl cat > conftest.s <<\EOF - .section ".tdata","awT",@progbits + .section ".tdata","awT",@progbits x: .quad 1 x1: .quad 1 x2: .quad 1 x3: .quad 1 x4: .long 1 - .section ".toc","aw" + .section ".toc","aw" .LC0: - .quad x@dtpmod - .quad x@dtprel + .quad x@dtpmod + .quad x@dtprel .LC1: - .quad x1@dtpmod - .quad 0 + .quad x1@dtpmod + .quad 0 .LC2: .quad x@tprel - .text - addi 3,2,x@got@tlsgd - addi 3,2,.LC0@toc - addi 3,2,x1@got@tlsld - addi 9,3,x1@dtprel - addis 9,3,x2@dtprel@ha - addi 9,9,x2@dtprel@l - ld 9,x3@got@dtprel(2) - addi 3,2,.LC0@toc - lwz 0,x1@dtprel(3) - ld 0,x1@dtprel(3) - addis 9,3,x2@dtprel@ha - lwz 0,x2@dtprel@l(9) - ld 0,x2@dtprel@l(9) - ld 9,x3@got@dtprel(2) - ld 9,x@got@tprel(2) - add 9,9,x@tls - ld 9,.LC2@toc(2) - add 9,9,.LC2@tls - addi 9,13,x1@tprel - addis 9,13,x2@tprel@ha - addi 9,9,x2@tprel@l + .text + addi 3,2,x@got@tlsgd + addi 3,2,.LC0@toc + addi 3,2,x1@got@tlsld + addi 9,3,x1@dtprel + addis 9,3,x2@dtprel@ha + addi 9,9,x2@dtprel@l + ld 9,x3@got@dtprel(2) + addi 3,2,.LC0@toc + lwz 0,x1@dtprel(3) + ld 0,x1@dtprel(3) + addis 9,3,x2@dtprel@ha + lwz 0,x2@dtprel@l(9) + ld 0,x2@dtprel@l(9) + ld 9,x3@got@dtprel(2) + ld 9,x@got@tprel(2) + add 9,9,x@tls + ld 9,.LC2@toc(2) + add 9,9,.LC2@tls + addi 9,13,x1@tprel + addis 9,13,x2@tprel@ha + addi 9,9,x2@tprel@l EOF dnl if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then @@ -51,8 +50,6 @@ else libc_cv_powerpc64_tls=no fi rm -f conftest*]) -if test $libc_cv_powerpc64_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) +if test $libc_cv_powerpc64_tls = no; then + AC_MSG_ERROR([the assembler must support TLS]) fi -fi - diff --git a/sysdeps/s390/s390-32/elf/configure b/sysdeps/s390/s390-32/elf/configure index 72abdbdd78..3012328834 100644 --- a/sysdeps/s390/s390-32/elf/configure +++ b/sysdeps/s390/s390-32/elf/configure @@ -1,12 +1,93 @@ + +# 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/s390/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -{ $as_echo "$as_me:$LINENO: checking for s390 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for s390 TLS support" >&5 $as_echo_n "checking for s390 TLS support... " >&6; } -if test "${libc_cv_390_tls+set}" = set; then +if ${libc_cv_390_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.S <<\EOF @@ -25,28 +106,22 @@ foo: .long 25 bas %r14,0(%r1,%r13):tls_ldcall:foo EOF if { ac_try='${CC-cc} -S $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=$? - $as_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_390_tls=yes else libc_cv_390_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_390_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_390_tls" >&5 $as_echo "$libc_cv_390_tls" >&6; } -if test $libc_cv_390_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_390_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi -cat >>confdefs.h <<\_ACEOF -#define PI_STATIC_AND_HIDDEN 1 -_ACEOF +$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/s390/s390-32/elf/configure.in b/sysdeps/s390/s390-32/elf/configure.in index fcf9329995..d1f40a375a 100644 --- a/sysdeps/s390/s390-32/elf/configure.in +++ b/sysdeps/s390/s390-32/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/s390/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for s390 TLS support, libc_cv_390_tls, [dnl @@ -27,9 +26,8 @@ else libc_cv_390_tls=no fi rm -f conftest*]) -if test $libc_cv_390_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_390_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/s390/s390-64/elf/configure b/sysdeps/s390/s390-64/elf/configure index 3851674c7c..e81655e0d0 100644 --- a/sysdeps/s390/s390-64/elf/configure +++ b/sysdeps/s390/s390-64/elf/configure @@ -1,12 +1,93 @@ + +# 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/s390/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -{ $as_echo "$as_me:$LINENO: checking for s390 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for s390 TLS support" >&5 $as_echo_n "checking for s390 TLS support... " >&6; } -if test "${libc_cv_390_tls+set}" = set; then +if ${libc_cv_390_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.S <<\EOF @@ -25,28 +106,22 @@ foo: .long 25 brasl %r14,__tls_get_offset@plt:tls_ldcall:foo EOF if { ac_try='${CC-cc} -S $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=$? - $as_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_390_tls=yes else libc_cv_390_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_390_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_390_tls" >&5 $as_echo "$libc_cv_390_tls" >&6; } -if test $libc_cv_390_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_390_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi -cat >>confdefs.h <<\_ACEOF -#define PI_STATIC_AND_HIDDEN 1 -_ACEOF +$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/s390/s390-64/elf/configure.in b/sysdeps/s390/s390-64/elf/configure.in index ac953fcff3..007e3838a4 100644 --- a/sysdeps/s390/s390-64/elf/configure.in +++ b/sysdeps/s390/s390-64/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/s390/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for s390 TLS support, libc_cv_390_tls, [dnl @@ -27,9 +26,8 @@ else libc_cv_390_tls=no fi rm -f conftest*]) -if test $libc_cv_390_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_390_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/sh/elf/configure b/sysdeps/sh/elf/configure index 95efaca496..8235c3c01b 100644 --- a/sysdeps/sh/elf/configure +++ b/sysdeps/sh/elf/configure @@ -1,12 +1,93 @@ + +# 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/sh/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. -{ $as_echo "$as_me:$LINENO: checking for SH TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SH TLS support" >&5 $as_echo_n "checking for SH TLS support... " >&6; } -if test "${libc_cv_sh_tls+set}" = set; then +if ${libc_cv_sh_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.S <<\EOF @@ -20,28 +101,22 @@ foo: .long 25 .long foo@TPOFF EOF if { ac_try='${CC-cc} -S $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=$? - $as_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_sh_tls=yes else libc_cv_sh_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_sh_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sh_tls" >&5 $as_echo "$libc_cv_sh_tls" >&6; } -if test $libc_cv_sh_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_sh_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi -cat >>confdefs.h <<\_ACEOF -#define PI_STATIC_AND_HIDDEN 1 -_ACEOF +$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/sh/elf/configure.in b/sysdeps/sh/elf/configure.in index 42aca3f8ef..9c41a24f4f 100644 --- a/sysdeps/sh/elf/configure.in +++ b/sysdeps/sh/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/sh/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and # linker. AC_CACHE_CHECK(for SH TLS support, libc_cv_sh_tls, [dnl @@ -22,9 +21,8 @@ else libc_cv_sh_tls=no fi rm -f conftest*]) -if test $libc_cv_sh_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_sh_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/sparc/sparc32/elf/configure b/sysdeps/sparc/sparc32/elf/configure index 37522c3454..e684b2d539 100644 --- a/sysdeps/sparc/sparc32/elf/configure +++ b/sysdeps/sparc/sparc32/elf/configure @@ -1,11 +1,92 @@ + +# 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/sparc/sparc32/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. -{ $as_echo "$as_me:$LINENO: checking for sparc32 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc32 TLS support" >&5 $as_echo_n "checking for sparc32 TLS support... " >&6; } -if test "${libc_cv_sparc32_tls+set}" = set; then +if ${libc_cv_sparc32_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF @@ -35,42 +116,38 @@ baz: sethi %tgd_hi22(foo), %l1 xor %l1, %tle_lox10(foo), %l1 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=$? - $as_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_sparc32_tls=yes else libc_cv_sparc32_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_sparc32_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc32_tls" >&5 $as_echo "$libc_cv_sparc32_tls" >&6; } -if test $libc_cv_sparc32_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_sparc32_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi # Check for broken WDISP22 in the linker. -{ $as_echo "$as_me:$LINENO: checking for sparc32 ld WDISP22 handling" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc32 ld WDISP22 handling" >&5 $as_echo_n "checking for sparc32 ld WDISP22 handling... " >&6; } -if test "${libc_cv_sparc32_wdisp22+set}" = set; then +if ${libc_cv_sparc32_wdisp22+:} false; then : $as_echo_n "(cached) " >&6 else echo 'bne foo; nop' > conftest1.s echo '.globl foo; .hidden foo; foo: nop' > conftest2.s libc_cv_sparc32_wdisp22=unknown if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 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=$? - $as_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 if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then libc_cv_sparc32_wdisp22=broken else @@ -79,11 +156,9 @@ if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conft fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_sparc32_wdisp22" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc32_wdisp22" >&5 $as_echo "$libc_cv_sparc32_wdisp22" >&6; } if test $libc_cv_sparc32_wdisp22 != ok; then - cat >>confdefs.h <<\_ACEOF -#define BROKEN_SPARC_WDISP22 1 -_ACEOF + $as_echo "#define BROKEN_SPARC_WDISP22 1" >>confdefs.h fi diff --git a/sysdeps/sparc/sparc32/elf/configure.in b/sysdeps/sparc/sparc32/elf/configure.in index aa75e0bfaa..d1593a6394 100644 --- a/sysdeps/sparc/sparc32/elf/configure.in +++ b/sysdeps/sparc/sparc32/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/sparc/sparc32/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. AC_CACHE_CHECK(for sparc32 TLS support, libc_cv_sparc32_tls, [dnl changequote(,)dnl @@ -39,9 +38,8 @@ else libc_cv_sparc32_tls=no fi rm -f conftest*]) -if test $libc_cv_sparc32_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_sparc32_tls = no; then + AC_MSG_ERROR([the assembler must support TLS]) fi # Check for broken WDISP22 in the linker. diff --git a/sysdeps/sparc/sparc64/elf/configure b/sysdeps/sparc/sparc64/elf/configure index f213438aa5..354afae4d8 100644 --- a/sysdeps/sparc/sparc64/elf/configure +++ b/sysdeps/sparc/sparc64/elf/configure @@ -1,11 +1,92 @@ + +# 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/sparc/sparc64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. -{ $as_echo "$as_me:$LINENO: checking for sparc64 TLS support" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc64 TLS support" >&5 $as_echo_n "checking for sparc64 TLS support... " >&6; } -if test "${libc_cv_sparc64_tls+set}" = set; then +if ${libc_cv_sparc64_tls+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<\EOF @@ -36,42 +117,38 @@ _start: sethi %tgd_hi22(foo), %l1 xor %l1, %tle_lox10(foo), %l1 EOF if { ac_try='${CC-cc} -o conftest.bin $CFLAGS $LDFLAGS conftest.s -nostdlib -nostartfiles 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=$? - $as_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_sparc64_tls=yes else libc_cv_sparc64_tls=no fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_sparc64_tls" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc64_tls" >&5 $as_echo "$libc_cv_sparc64_tls" >&6; } -if test $libc_cv_sparc64_tls = yes; then - cat >>confdefs.h <<\_ACEOF -#define HAVE_TLS_SUPPORT 1 -_ACEOF - -fi +if test $libc_cv_sparc64_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi # Check for broken WDISP22 in the linker. -{ $as_echo "$as_me:$LINENO: checking for sparc64 ld WDISP22 handling" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc64 ld WDISP22 handling" >&5 $as_echo_n "checking for sparc64 ld WDISP22 handling... " >&6; } -if test "${libc_cv_sparc64_wdisp22+set}" = set; then +if ${libc_cv_sparc64_wdisp22+:} false; then : $as_echo_n "(cached) " >&6 else echo 'bne foo; nop' > conftest1.s echo '.globl foo; .hidden foo; foo: nop' > conftest2.s libc_cv_sparc64_wdisp22=unknown if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 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=$? - $as_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 if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then libc_cv_sparc64_wdisp22=broken else @@ -80,11 +157,9 @@ if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conft fi rm -f conftest* fi -{ $as_echo "$as_me:$LINENO: result: $libc_cv_sparc64_wdisp22" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc64_wdisp22" >&5 $as_echo "$libc_cv_sparc64_wdisp22" >&6; } if test $libc_cv_sparc64_wdisp22 != ok; then - cat >>confdefs.h <<\_ACEOF -#define BROKEN_SPARC_WDISP22 1 -_ACEOF + $as_echo "#define BROKEN_SPARC_WDISP22 1" >>confdefs.h fi diff --git a/sysdeps/sparc/sparc64/elf/configure.in b/sysdeps/sparc/sparc64/elf/configure.in index 4f75978358..b56b275a16 100644 --- a/sysdeps/sparc/sparc64/elf/configure.in +++ b/sysdeps/sparc/sparc64/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/sparc/sparc64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. AC_CACHE_CHECK(for sparc64 TLS support, libc_cv_sparc64_tls, [dnl changequote(,)dnl @@ -40,9 +39,8 @@ else libc_cv_sparc64_tls=no fi rm -f conftest*]) -if test $libc_cv_sparc64_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_sparc64_tls = no; then + AC_MSG_ERROR([the assembler must support TLS]) fi # Check for broken WDISP22 in the linker. diff --git a/sysdeps/x86_64/elf/configure b/sysdeps/x86_64/elf/configure index c3c8f561fe..7f2b313bc4 100644 --- a/sysdeps/x86_64/elf/configure +++ b/sysdeps/x86_64/elf/configure @@ -83,7 +83,6 @@ $as_echo X/"$0" | # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/x86_64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86-64 TLS support" >&5 $as_echo_n "checking for x86-64 TLS support... " >&6; } @@ -117,10 +116,8 @@ rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_64_tls" >&5 $as_echo "$libc_cv_x86_64_tls" >&6; } -if test $libc_cv_x86_64_tls = yes; then - $as_echo "#define HAVE_TLS_SUPPORT 1" >>confdefs.h - -fi +if test $libc_cv_x86_64_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 fi $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/x86_64/elf/configure.in b/sysdeps/x86_64/elf/configure.in index 4a41290f11..c53328b4c9 100644 --- a/sysdeps/x86_64/elf/configure.in +++ b/sysdeps/x86_64/elf/configure.in @@ -1,7 +1,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/x86_64/elf. -if test "$usetls" != no; then # Check for support of thread-local storage handling in assembler and linker. AC_CACHE_CHECK(for x86-64 TLS support, libc_cv_x86_64_tls, [dnl cat > conftest.s <<\EOF @@ -24,9 +23,8 @@ else libc_cv_x86_64_tls=no fi rm -f conftest*]) -if test $libc_cv_x86_64_tls = yes; then - AC_DEFINE(HAVE_TLS_SUPPORT) -fi +if test $libc_cv_x86_64_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 |