# 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:$LINENO: checking for x86-64 TLS support" >&5
$as_echo_n "checking for x86-64 TLS support... " >&6; }
if test "${libc_cv_x86_64_tls+set}" = set; then
  $as_echo_n "(cached) " >&6
else
  cat > conftest.s <<\EOF
	.section ".tdata", "awT", @progbits
	.globl foo
foo:	.quad	1
	.section ".tbss", "awT", @nobits
	.globl bar
bar:	.skip	8
	.text
baz:	leaq	bar@TLSLD(%rip), %rdi
	leaq	bar@DTPOFF(%rax), %rcx
	addq	foo@GOTTPOFF(%rip), %rax
	movq	$bar@TPOFF, %rdx
EOF
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'
  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  (eval $ac_try) 2>&5
  ac_status=$?
  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
  (exit $ac_status); }; }; then
  libc_cv_x86_64_tls=yes
else
  libc_cv_x86_64_tls=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:$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
  cat >>confdefs.h <<\_ACEOF
#define HAVE_TLS_SUPPORT 1
_ACEOF

fi
fi

cat >>confdefs.h <<\_ACEOF
#define PI_STATIC_AND_HIDDEN 1
_ACEOF
