Blame sysdeps/x86_64/configure.ac

Packit 6c4009
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
Packit 6c4009
# Local configure fragment for sysdeps/x86_64.
Packit 6c4009
Packit 6c4009
dnl Check if asm supports AVX512DQ.
Packit 6c4009
AC_CACHE_CHECK(for AVX512DQ support in assembler, libc_cv_asm_avx512dq, [dnl
Packit 6c4009
cat > conftest.s <<\EOF
Packit 6c4009
        vandpd (%rax), %zmm6, %zmm1
Packit 6c4009
EOF
Packit 6c4009
if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
Packit 6c4009
  libc_cv_asm_avx512dq=yes
Packit 6c4009
else
Packit 6c4009
  libc_cv_asm_avx512dq=no
Packit 6c4009
fi
Packit 6c4009
rm -f conftest*])
Packit 6c4009
if test $libc_cv_asm_avx512dq = yes; then
Packit 6c4009
  AC_DEFINE(HAVE_AVX512DQ_ASM_SUPPORT)
Packit 6c4009
fi
Packit 6c4009
Packit 6c4009
dnl Check if -mavx512f works.
Packit 6c4009
AC_CACHE_CHECK(for AVX512 support, libc_cv_cc_avx512, [dnl
Packit 6c4009
LIBC_TRY_CC_OPTION([-mavx512f], [libc_cv_cc_avx512=$libc_cv_asm_avx512dq], [libc_cv_cc_avx512=no])
Packit 6c4009
])
Packit 6c4009
if test $libc_cv_cc_avx512 = yes; then
Packit 6c4009
  AC_DEFINE(HAVE_AVX512_SUPPORT)
Packit 6c4009
fi
Packit 6c4009
LIBC_CONFIG_VAR([config-cflags-avx512], [$libc_cv_cc_avx512])
Packit 6c4009
Packit 6c4009
dnl Check whether asm supports Intel MPX
Packit 6c4009
AC_CACHE_CHECK(for Intel MPX support, libc_cv_asm_mpx, [dnl
Packit 6c4009
cat > conftest.s <<\EOF
Packit 6c4009
        bndmov %bnd0,(%rsp)
Packit 6c4009
EOF
Packit 6c4009
if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
Packit 6c4009
  libc_cv_asm_mpx=yes
Packit 6c4009
else
Packit 6c4009
  libc_cv_asm_mpx=no
Packit 6c4009
fi
Packit 6c4009
rm -f conftest*])
Packit 6c4009
if test $libc_cv_asm_mpx = yes; then
Packit 6c4009
  AC_DEFINE(HAVE_MPX_SUPPORT)
Packit 6c4009
fi
Packit 6c4009
Packit 6c4009
if test x"$build_mathvec" = xnotset; then
Packit 6c4009
  build_mathvec=yes
Packit 6c4009
fi
Packit 6c4009
Packit 6c4009
dnl Check if linker supports static PIE with the fix for
Packit 6c4009
dnl
Packit 6c4009
dnl https://sourceware.org/bugzilla/show_bug.cgi?id=21782
Packit 6c4009
dnl
Packit 6c4009
if test "$static_pie" = yes; then
Packit 6c4009
  AC_CACHE_CHECK(for linker static PIE support, libc_cv_ld_static_pie, [dnl
Packit 6c4009
cat > conftest.s <<\EOF
Packit 6c4009
	.text
Packit 6c4009
	.global _start
Packit 6c4009
	.weak foo
Packit 6c4009
_start:
Packit 6c4009
	leaq	foo(%rip), %rax
Packit 6c4009
EOF
Packit 6c4009
  libc_cv_pie_option="-Wl,-pie"
Packit 6c4009
  if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp $libc_cv_pie_option -o conftest conftest.s 1>&AS_MESSAGE_LOG_FD); then
Packit 6c4009
    libc_cv_ld_static_pie=yes
Packit 6c4009
  else
Packit 6c4009
    libc_cv_ld_static_pie=no
Packit 6c4009
  fi
Packit 6c4009
rm -f conftest*])
Packit 6c4009
  if test "$libc_cv_ld_static_pie" != yes; then
Packit 6c4009
    AC_MSG_ERROR([linker support for static PIE needed])
Packit 6c4009
  fi
Packit 6c4009
fi
Packit 6c4009
Packit 6c4009
dnl It is always possible to access static and hidden symbols in an
Packit 6c4009
dnl position independent way.
Packit 6c4009
AC_DEFINE(PI_STATIC_AND_HIDDEN)
Packit 6c4009
Packit 6c4009
test -n "$critic_missing" && AC_MSG_ERROR([
Packit 6c4009
*** $critic_missing])