# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
 # Local preconfigure fragment for sysdeps/x86_64

test -n "$base_machine" || case "$machine" in
x86_64)
  base_machine=x86_64
  # Check if we are building for x32.

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC compiles in -mx32 mode by default" >&5
$as_echo_n "checking whether $CC compiles in -mx32 mode by default... " >&6; }
if ${libc_cv_x32+:} false; then :
  $as_echo_n "(cached) " >&6
else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __ILP32__
# error not x32
#endif
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  libc_cv_x32=yes
else
  libc_cv_x32=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x32" >&5
$as_echo "$libc_cv_x32" >&6; }
  if test $libc_cv_x32 = yes; then
    machine=x86_64/x32
  else
    machine=x86_64/64
  fi
  ;;
esac
