$ ../glibc-VERSION/configure CC="gcc -m32" CFLAGS="-O3"
+ To test the GNU C Library with a different C compiler or a different
+C++ compiler, 'TEST_CC=COMPILER' and 'TEST_CXX=COMPILER' arguments can
+be passed to 'configure'. For example:
+
+ $ ../glibc-VERSION/configure TEST_CC="gcc-6.4.1" TEST_CXX="g++-6.4.1"
+
The following list describes all of the available options for
'configure':
srcdir = @srcdir@
+TEST_CC = @TEST_CC@
+TEST_CXX = @TEST_CXX@
+test-cc-option-wimplicit-fallthrough = @libc_cv_test_cc_wimplicit_fallthrough@
+test-config-cflags-mprefer-vector-width = @libc_cv_test_cc_mprefer_vector_width@
+test-config-cflags-signaling-nans = @libc_cv_test_cc_signaling_nans@
+test-config-cflags-wno-ignored-attributes = @libc_cv_test_wno_ignored_attributes@
+test-enable-cet = @test_enable_cet@
+test-have-mamx-tile = @libc_cv_test_x86_have_amx_tile@
+test-have-mtls-descriptor = @libc_cv_test_mtls_descriptor@
+test-have-static-pie = @libc_cv_test_static_pie@
+test-supported-fortify = @libc_cv_test_supported_fortify_source@
+
# Uncomment the line below if you want to do parallel build.
# PARALLELMFLAGS = -j 4
all .DEFAULT:
$(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
+check xcheck:
+ $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) \
+ CC="$(TEST_CC)" CXX="$(TEST_CXX)" \
+ cc-option-wimplicit-fallthrough="$(test-cc-option-wimplicit-fallthrough)" \
+ config-cflags-mprefer-vector-width="$(test-config-cflags-mprefer-vector-width)" \
+ config-cflags-signaling-nans="$(test-config-cflags-signaling-nans)" \
+ config-cflags-wno-ignored-attributes="$(test-config-cflags-wno-ignored-attributes)" \
+ enable-cet="$(test-enable-cet)" \
+ have-mamx-tile="$(test-have-mamx-tile)" \
+ have-mtls-descriptor="$(test-have-mtls-descriptor)" \
+ have-static-pie="$(test-have-static-pie)" \
+ supported-fortify="$(test-supported-fortify)" \
+ objdir=`pwd` $@
+
install:
LC_ALL=C; export LC_ALL; \
$(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
fi
;;
esac])
+
+dnl Run a test with TEST_CC.
+dnl LIBC_CHECK_TEST_CC([commands])
+AC_DEFUN([LIBC_CHECK_TEST_CC],
+[
+saved_CC="$CC"
+CC="$TEST_CC"
+[$1]
+CC="$saved_CC"
+])
+
+dnl Test a CC and TEST_CC compiler option or options with an empty input
+dnl file.
+dnl LIBC_TRY_CC_AND_TEST_CC_OPTION([message], [options],
+dnl [CC-cache-id], [CC-action-if-true], [CC-action-if-false]
+dnl [TEST_CC-cache-id], [TEST_CC-action-if-true], [TEST_CC-action-if-false])
+AC_DEFUN([LIBC_TRY_CC_AND_TEST_CC_OPTION],
+[
+AC_CACHE_CHECK([$1], $3,
+ [LIBC_TRY_CC_OPTION([$2], [$4], [$5])])
+if test "$TEST_CC" = "$CC"; then
+ $6=$[$3]
+else
+ LIBC_CHECK_TEST_CC(
+ AC_CACHE_CHECK([$1 in testing], $6,
+ [LIBC_TRY_CC_OPTION([$2], [$7], [$8])])
+ )
+fi
+])
+
+dnl Test a CC and TEST_CC compiler option or options with an input file.
+dnl LIBC_TRY_CC_AND_TEST_CC_COMMAND([message], [code], [options],
+dnl [CC-cache-id], [CC-action-if-true], [CC-action-if-false]
+dnl [TEST_CC-cache-id], [TEST_CC-action-if-true], [TEST_CC-action-if-false])
+AC_DEFUN([LIBC_TRY_CC_AND_TEST_CC_COMMAND],
+[
+cat > conftest.c <<EOF
+$2
+EOF
+AC_CACHE_CHECK([$1], $4, [dnl
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $3 conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
+ then
+ [$5]
+ else
+ [$6]
+ fi
+])
+if test "$TEST_CC" = "$CC"; then
+ $7=$[$4]
+else
+ LIBC_CHECK_TEST_CC(
+ AC_CACHE_CHECK([$1 in testing], $7, [dnl
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $3 conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
+ then
+ [$8]
+ else
+ [$9]
+ fi])
+ )
+fi
+rm -f conftest*])
+
+dnl Test if CC and TEST_CC can link with an input file.
+dnl LIBC_TRY_CC_AND_TEST_LINK([message], [code],
+dnl [CC-cache-id], [CC-action-if-true], [CC-action-if-false]
+dnl [TEST_CC-cache-id], [TEST_CC-action-if-true], [TEST_CC-action-if-false])
+AC_DEFUN([LIBC_TRY_CC_AND_TEST_LINK],
+[
+AC_CACHE_CHECK([$1], $3, [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [$2])],
+ [$4], [$5])
+])
+if test "$TEST_CC" = "$CC"; then
+ $6=$[$3]
+else
+ LIBC_CHECK_TEST_CC(
+ AC_CACHE_CHECK([$1 in testing], $6, [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [$2])],
+ [$7], [$8])
+ ])
+ )
+fi
+])
static_nss
profile
libc_cv_multidir
+libc_cv_test_x86_have_amx_tile
+test_enable_cet
+libc_cv_test_cc_mprefer_vector_width
shared
static
ldd_rewrite_script
no_fortify_source
libc_cv_fortify_source
enable_fortify_source
+libc_cv_test_supported_fortify_source
have_selinux
have_libcap
have_libaudit
LIBGD
+libc_cv_test_cc_wimplicit_fallthrough
libc_cv_cc_loop_to_function
+libc_cv_test_cc_signaling_nans
libc_cv_cc_submachine
libc_cv_cc_nofma
+libc_cv_test_wno_ignored_attributes
+libc_cv_test_mtls_descriptor
libc_cv_has_glob_dat
libc_cv_fpie
+libc_cv_test_static_pie
libc_cv_z_execstack
ASFLAGS_config
libc_cv_cc_with_libunwind
rtld_early_cflags
extra_nonshared_cflags
sysheaders
+TEST_CXX
ac_ct_CXX
CXXFLAGS
CXX
CPP
cross_compiling
BUILD_CC
+TEST_CC
OBJEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
LIBS
CPPFLAGS
+TEST_CC
CPP
CXX
CXXFLAGS
-CCC'
+CCC
+TEST_CXX'
ac_subdirs_all=''
# Initialize some variables set by options.
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
+ TEST_CC C compiler for testing
CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags
+ TEST_CXX C++ compiler for testing
Use these variables to override the choices made by 'configure' or to help
it to find libraries and programs with nonstandard names/locations.
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test -z "$TEST_CC"; then
+ TEST_CC="$CC"
+fi
if test $host != $build; then
for ac_prog in gcc cc
do
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test -z "$TEST_CXX"; then
+ saved_CXX=
+ TEST_CXX="$CXX"
+else
+ saved_CXX="$CXX"
+ CXX="$TEST_CXX"
+fi
# It's useless to us if it can't link programs (e.g. missing -lstdc++).
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX can link programs" >&5
then :
CXX=
fi
+if test -n "$saved_CXX"; then
+ CXX="$saved_CXX"
+fi
if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
config_vars="$config_vars
have-no-dynamic-linker = $libc_cv_no_dynamic_linker"
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -static-pie" >&5
printf %s "checking for -static-pie... " >&6; }
if test ${libc_cv_static_pie+y}
else case e in #(
e) libc_cv_static_pie=no ;;
esac
-fi
- ;;
+fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie" >&5
printf "%s\n" "$libc_cv_static_pie" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_static_pie=$libc_cv_static_pie
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -static-pie in testing" >&5
+printf %s "checking for -static-pie in testing... " >&6; }
+if test ${libc_cv_test_static_pie+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} -static-pie -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ libc_cv_test_static_pie=yes
+else case e in #(
+ e) libc_cv_test_static_pie=no
+ ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_static_pie" >&5
+printf "%s\n" "$libc_cv_test_static_pie" >&6; }
+
+CC="$saved_CC"
+
+fi
+
config_vars="$config_vars
have-static-pie = $libc_cv_static_pie"
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fpie" >&5
printf %s "checking for -fpie... " >&6; }
if test ${libc_cv_fpie+y}
printf "%s\n" "$libc_cv_has_glob_dat" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tls descriptor support" >&5
-printf %s "checking for tls descriptor support... " >&6; }
-if test ${libc_cv_mtls_descriptor+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) cat > conftest.c <<EOF
+conftest_code="
__thread int i;
void foo (void)
{
i = 10;
}
+"
+
+cat > conftest.c <<EOF
+$conftest_code
EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles
- -shared conftest.c -o conftest 1>&5'
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tls descriptor support" >&5
+printf %s "checking for tls descriptor support... " >&6; }
+if test ${libc_cv_mtls_descriptor+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles -shared conftest.c -o conftest 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
-then
- libc_cv_mtls_descriptor=$mtls_descriptor
-else
- libc_cv_mtls_descriptor=no
-fi
-rm -f conftest* ;;
+ then
+ libc_cv_mtls_descriptor=$mtls_descriptor
+ else
+ libc_cv_mtls_descriptor=no
+ fi
+ ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_descriptor" >&5
printf "%s\n" "$libc_cv_mtls_descriptor" >&6; }
-config_vars="$config_vars
-have-mtls-descriptor = $libc_cv_mtls_descriptor"
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_mtls_descriptor=$libc_cv_mtls_descriptor
+else
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -Wno-ignored-attributes is required for aliases" >&5
-printf %s "checking if -Wno-ignored-attributes is required for aliases... " >&6; }
-if test ${libc_cv_wno_ignored_attributes+y}
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tls descriptor support in testing" >&5
+printf %s "checking for tls descriptor support in testing... " >&6; }
+if test ${libc_cv_test_mtls_descriptor+y}
then :
printf %s "(cached) " >&6
else case e in #(
- e) cat > conftest.c <<EOF
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles -shared conftest.c -o conftest 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ libc_cv_test_mtls_descriptor=$mtls_descriptor
+ else
+ libc_cv_test_mtls_descriptor=no
+ fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_mtls_descriptor" >&5
+printf "%s\n" "$libc_cv_test_mtls_descriptor" >&6; }
+
+CC="$saved_CC"
+
+fi
+rm -f conftest*
+config_vars="$config_vars
+have-mtls-descriptor = $libc_cv_mtls_descriptor"
+
+
+conftest_code="
void __foo (void)
{
}
extern __typeof (__foo) foo __attribute__ ((weak, alias ("__foo")));
extern __typeof (__foo) bar __attribute__ ((weak, alias ("foo")));
+"
+
+cat > conftest.c <<EOF
+$conftest_code
EOF
-libc_cv_wno_ignored_attributes=""
-if ! { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -c conftest.c'
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -Wno-ignored-attributes is required for aliases" >&5
+printf %s "checking if -Wno-ignored-attributes is required for aliases... " >&6; }
+if test ${libc_cv_wno_ignored_attributes+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c -Werror -Wno-ignored-attributes conftest.c -o conftest 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
-then
- libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
-fi
-rm -f conftest* ;;
+ then
+ libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
+ else
+ libc_cv_wno_ignored_attributes=
+ fi
+ ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_wno_ignored_attributes" >&5
printf "%s\n" "$libc_cv_wno_ignored_attributes" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_wno_ignored_attributes=$libc_cv_wno_ignored_attributes
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -Wno-ignored-attributes is required for aliases in testing" >&5
+printf %s "checking if -Wno-ignored-attributes is required for aliases in testing... " >&6; }
+if test ${libc_cv_test_wno_ignored_attributes+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c -Werror -Wno-ignored-attributes conftest.c -o conftest 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ libc_cv_test_wno_ignored_attributes="-Wno-ignored-attributes"
+ else
+ libc_cv_test_wno_ignored_attributes=
+ fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_wno_ignored_attributes" >&5
+printf "%s\n" "$libc_cv_test_wno_ignored_attributes" >&6; }
+
+CC="$saved_CC"
+
+fi
+rm -f conftest*
config_vars="$config_vars
config-cflags-wno-ignored-attributes = $libc_cv_wno_ignored_attributes"
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether cc puts quotes around section names" >&5
printf %s "checking whether cc puts quotes around section names... " >&6; }
if test ${libc_cv_have_section_quotes+y}
fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option that -fsignaling-nans" >&5
printf %s "checking for compiler option that -fsignaling-nans... " >&6; }
if test ${libc_cv_cc_signaling_nans+y}
else case e in #(
e) libc_cv_cc_signaling_nans= ;;
esac
-fi
- ;;
+fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_signaling_nans" >&5
printf "%s\n" "$libc_cv_cc_signaling_nans" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_cc_signaling_nans=$libc_cv_cc_signaling_nans
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option that -fsignaling-nans in testing" >&5
+printf %s "checking for compiler option that -fsignaling-nans in testing... " >&6; }
+if test ${libc_cv_test_cc_signaling_nans+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} -Werror -fsignaling-nans -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ libc_cv_test_cc_signaling_nans=-fsignaling-nans
+else case e in #(
+ e) libc_cv_test_cc_signaling_nans= ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cc_signaling_nans" >&5
+printf "%s\n" "$libc_cv_test_cc_signaling_nans" >&6; }
+
+CC="$saved_CC"
+
+fi
+
config_vars="$config_vars
config-cflags-signaling-nans = $libc_cv_cc_signaling_nans"
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-tree-loop-distribute-patterns with \
__attribute__ ((__optimize__))" >&5
printf %s "checking if $CC accepts -fno-tree-loop-distribute-patterns with \
fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wimplicit-fallthrough" >&5
printf %s "checking for -Wimplicit-fallthrough... " >&6; }
if test ${libc_cv_cc_wimplicit_fallthrough+y}
then :
libc_cv_cc_wimplicit_fallthrough=-Wimplicit-fallthrough
else case e in #(
- e) libc_cv_cc_wimplicit_fallthrough= ;;
+ e) libc_cv_cc_wimplicit_fallthrough=-Wimplicit-fallthrough ;;
esac
-fi
- ;;
+fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_wimplicit_fallthrough" >&5
printf "%s\n" "$libc_cv_cc_wimplicit_fallthrough" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_cc_wimplicit_fallthrough=$libc_cv_cc_wimplicit_fallthrough
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wimplicit-fallthrough in testing" >&5
+printf %s "checking for -Wimplicit-fallthrough in testing... " >&6; }
+if test ${libc_cv_test_cc_wimplicit_fallthrough+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} -Werror -Wimplicit-fallthrough -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ libc_cv_test_cc_wimplicit_fallthrough=-Wimplicit-fallthrough
+else case e in #(
+ e) libc_cv_test_cc_wimplicit_fallthrough= ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cc_wimplicit_fallthrough" >&5
+printf "%s\n" "$libc_cv_test_cc_wimplicit_fallthrough" >&6; }
+
+CC="$saved_CC"
+
+fi
+
config_vars="$config_vars
cc-option-wimplicit-fallthrough = $libc_cv_cc_wimplicit_fallthrough"
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libgd" >&5
printf %s "checking for libgd... " >&6; }
if test "$with_gd" != "no"; then
no_fortify_source="-U_FORTIFY_SOURCE"
fortify_source="${no_fortify_source}"
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for maximum supported _FORTIFY_SOURCE level" >&5
printf %s "checking for maximum supported _FORTIFY_SOURCE level... " >&6; }
if test ${libc_cv_supported_fortify_source+y}
printf %s "(cached) " >&6
else case e in #(
e)
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_supported_fortify_source" >&5
printf "%s\n" "$libc_cv_supported_fortify_source" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_supported_fortify_source=$libc_cv_supported_fortify_source
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for maximum supported _FORTIFY_SOURCE level in testing" >&5
+printf %s "checking for maximum supported _FORTIFY_SOURCE level in testing... " >&6; }
+if test ${libc_cv_test_supported_fortify_source+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+__builtin_dynamic_object_size("", 0)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ libc_cv_test_supported_fortify_source=3
+else case e in #(
+ e) libc_cv_test_supported_fortify_source=2 ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_supported_fortify_source" >&5
+printf "%s\n" "$libc_cv_test_supported_fortify_source" >&6; }
+
+CC="$saved_CC"
+
+fi
+
+
case $enable_fortify_source in #(
yes) :
config_vars="$config_vars
enable-static-pie = $libc_cv_static_pie"
+# Support configure.ac under sysdeps.
+
+
+
+
# Set the `multidir' variable by grabbing the variable from the compiler.
# We do it once and save the result in a generated makefile.
libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
AC_CANONICAL_HOST
AC_PROG_CC
+AC_ARG_VAR([TEST_CC],
+ [C compiler for testing])
+if test -z "$TEST_CC"; then
+ TEST_CC="$CC"
+fi
if test $host != $build; then
AC_CHECK_PROGS(BUILD_CC, gcc cc)
fi
# We need the C++ compiler only for testing.
AC_PROG_CXX
+AC_ARG_VAR([TEST_CXX],
+ [C++ compiler for testing])
+if test -z "$TEST_CXX"; then
+ saved_CXX=
+ TEST_CXX="$CXX"
+else
+ saved_CXX="$CXX"
+ CXX="$TEST_CXX"
+fi
# It's useless to us if it can't link programs (e.g. missing -lstdc++).
AC_CACHE_CHECK([whether $CXX can link programs], libc_cv_cxx_link_ok, [dnl
AC_LANG_PUSH([C++])
fi
AC_LANG_POP([C++])])
AS_IF([test $libc_cv_cxx_link_ok != yes], [CXX=])
+if test -n "$saved_CXX"; then
+ CXX="$saved_CXX"
+fi
if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
AC_MSG_ERROR([you must configure in a separate build directory])
[libc_cv_no_dynamic_linker=no])
LIBC_CONFIG_VAR([have-no-dynamic-linker], [$libc_cv_no_dynamic_linker])
-AC_CACHE_CHECK(for -static-pie, libc_cv_static_pie, [dnl
-LIBC_TRY_CC_OPTION([-static-pie],
- [libc_cv_static_pie=yes],
- [libc_cv_static_pie=no])
-])
+LIBC_TRY_CC_AND_TEST_CC_OPTION(for -static-pie, [-static-pie],
+ libc_cv_static_pie,
+ [libc_cv_static_pie=yes], [libc_cv_static_pie=no],
+ libc_cv_test_static_pie,
+ [libc_cv_test_static_pie=yes], [libc_cv_test_static_pie=no]
+)
LIBC_CONFIG_VAR([have-static-pie], [$libc_cv_static_pie])
+AC_SUBST(libc_cv_test_static_pie)
AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no])
rm -f conftest*])
AC_SUBST(libc_cv_has_glob_dat)
-AC_CACHE_CHECK([for tls descriptor support], libc_cv_mtls_descriptor,
-[dnl
-cat > conftest.c <<EOF
+conftest_code="
__thread int i;
void foo (void)
{
i = 10;
}
-EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles
- -shared conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
-then
- libc_cv_mtls_descriptor=$mtls_descriptor
-else
- libc_cv_mtls_descriptor=no
-fi
-rm -f conftest*])
+"
+LIBC_TRY_CC_AND_TEST_CC_COMMAND([for tls descriptor support],
+ [$conftest_code],
+ [-fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles -shared],
+ libc_cv_mtls_descriptor,
+ [libc_cv_mtls_descriptor=$mtls_descriptor],
+ [libc_cv_mtls_descriptor=no],
+ libc_cv_test_mtls_descriptor,
+ [libc_cv_test_mtls_descriptor=$mtls_descriptor],
+ [libc_cv_test_mtls_descriptor=no])
LIBC_CONFIG_VAR([have-mtls-descriptor], [$libc_cv_mtls_descriptor])
+AC_SUBST(libc_cv_test_mtls_descriptor)
dnl clang emits an warning for a double alias redirection, to warn the
dnl original symbol is sed even when weak definition overrides it.
dnl It is a usual pattern for weak_alias, where multiple alias point to
dnl same symbol.
-AC_CACHE_CHECK([if -Wno-ignored-attributes is required for aliases],
- libc_cv_wno_ignored_attributes, [dnl
-cat > conftest.c <<EOF
+conftest_code="
void __foo (void)
{
}
extern __typeof (__foo) foo __attribute__ ((weak, alias ("__foo")));
extern __typeof (__foo) bar __attribute__ ((weak, alias ("foo")));
-EOF
-libc_cv_wno_ignored_attributes=""
-if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Werror -c conftest.c])
-then
- libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
-fi
-rm -f conftest*])
+"
+LIBC_TRY_CC_AND_TEST_CC_COMMAND([if -Wno-ignored-attributes is required for aliases],
+ [$conftest_code],
+ [-c -Werror -Wno-ignored-attributes],
+ libc_cv_wno_ignored_attributes,
+ [libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"],
+ [libc_cv_wno_ignored_attributes=],
+ libc_cv_test_wno_ignored_attributes,
+ [libc_cv_test_wno_ignored_attributes="-Wno-ignored-attributes"],
+ [libc_cv_test_wno_ignored_attributes=])
LIBC_CONFIG_VAR([config-cflags-wno-ignored-attributes],
[$libc_cv_wno_ignored_attributes])
+AC_SUBST(libc_cv_test_wno_ignored_attributes)
AC_CACHE_CHECK(whether cc puts quotes around section names,
libc_cv_have_section_quotes,
AC_SUBST(libc_cv_cc_submachine)
dnl Determine if compiler supports -fsignaling-nans
-AC_CACHE_CHECK([for compiler option that -fsignaling-nans],
- libc_cv_cc_signaling_nans, [dnl
-LIBC_TRY_CC_OPTION([-Werror -fsignaling-nans],
- [libc_cv_cc_signaling_nans=-fsignaling-nans],
- [libc_cv_cc_signaling_nans=])
-])
+LIBC_TRY_CC_AND_TEST_CC_OPTION([for compiler option that -fsignaling-nans],
+ [-Werror -fsignaling-nans],
+ libc_cv_cc_signaling_nans,
+ [libc_cv_cc_signaling_nans=-fsignaling-nans],
+ [libc_cv_cc_signaling_nans=],
+ libc_cv_test_cc_signaling_nans,
+ [libc_cv_test_cc_signaling_nans=-fsignaling-nans],
+ [libc_cv_test_cc_signaling_nans=])
LIBC_CONFIG_VAR([config-cflags-signaling-nans],
[$libc_cv_cc_signaling_nans])
+AC_SUBST(libc_cv_test_cc_signaling_nans)
AC_CACHE_CHECK(if $CC accepts -fno-tree-loop-distribute-patterns with \
__attribute__ ((__optimize__)), libc_cv_cc_loop_to_function, [dnl
fi
AC_SUBST(libc_cv_cc_loop_to_function)
-AC_CACHE_CHECK([for -Wimplicit-fallthrough],
- libc_cv_cc_wimplicit_fallthrough, [dnl
-LIBC_TRY_CC_OPTION([-Werror -Wimplicit-fallthrough],
- [libc_cv_cc_wimplicit_fallthrough=-Wimplicit-fallthrough],
- [libc_cv_cc_wimplicit_fallthrough=])
-])
+LIBC_TRY_CC_AND_TEST_CC_OPTION([for -Wimplicit-fallthrough],
+ [-Werror -Wimplicit-fallthrough],
+ libc_cv_cc_wimplicit_fallthrough,
+ [libc_cv_cc_wimplicit_fallthrough=-Wimplicit-fallthrough],
+ [libc_cv_cc_wimplicit_fallthrough=-Wimplicit-fallthrough],
+ libc_cv_test_cc_wimplicit_fallthrough,
+ [libc_cv_test_cc_wimplicit_fallthrough=-Wimplicit-fallthrough],
+ [libc_cv_test_cc_wimplicit_fallthrough=])
LIBC_CONFIG_VAR([cc-option-wimplicit-fallthrough],
[$libc_cv_cc_wimplicit_fallthrough])
+AC_SUBST(libc_cv_test_cc_wimplicit_fallthrough)
dnl Check whether we have the gd library available.
AC_MSG_CHECKING(for libgd)
no_fortify_source="-U_FORTIFY_SOURCE"
fortify_source="${no_fortify_source}"
-AC_CACHE_CHECK([for maximum supported _FORTIFY_SOURCE level],
- [libc_cv_supported_fortify_source], [
- AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_dynamic_object_size("", 0)])],
- [libc_cv_supported_fortify_source=3],
- [libc_cv_supported_fortify_source=2])
-])
+LIBC_TRY_CC_AND_TEST_LINK([for maximum supported _FORTIFY_SOURCE level],
+ [__builtin_dynamic_object_size("", 0)],
+ libc_cv_supported_fortify_source,
+ [libc_cv_supported_fortify_source=3],
+ [libc_cv_supported_fortify_source=2],
+ libc_cv_test_supported_fortify_source,
+ [libc_cv_test_supported_fortify_source=3],
+ [libc_cv_test_supported_fortify_source=2])
+AC_SUBST(libc_cv_test_supported_fortify_source)
AS_CASE([$enable_fortify_source],
[yes], [libc_cv_fortify_source=yes enable_fortify_source=$libc_cv_supported_fortify_source],
fi
LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
+# Support configure.ac under sysdeps.
+AC_SUBST(libc_cv_test_cc_mprefer_vector_width)
+AC_SUBST(test_enable_cet)
+AC_SUBST(libc_cv_test_x86_have_amx_tile)
+
# Set the `multidir' variable by grabbing the variable from the compiler.
# We do it once and save the result in a generated makefile.
libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
$ ../glibc-@var{version}/configure CC="gcc -m32" CFLAGS="-O3"
@end smallexample
+To test @theglibc{} with a different C compiler or a different C++
+compiler, @samp{TEST_CC=@var{compiler}} and
+@samp{TEST_CXX=@var{compiler}} arguments can be passed to
+@code{configure}. For example:
+
+@smallexample
+$ ../glibc-@var{version}/configure TEST_CC="gcc-6.4.1" TEST_CXX="g++-6.4.1"
+@end smallexample
+
The following list describes all of the available options for
@code{configure}:
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/x86_64.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking -mprefer-vector-width=128" >&5
-printf %s "checking -mprefer-vector-width=128... " >&6; }
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -mprefer-vector-width=128" >&5
+printf %s "checking for -mprefer-vector-width=128... " >&6; }
if test ${libc_cv_cc_mprefer_vector_width+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) libc_cv_cc_mprefer_vector_width=no ;;
esac
-fi
- ;;
+fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_mprefer_vector_width" >&5
printf "%s\n" "$libc_cv_cc_mprefer_vector_width" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_cc_mprefer_vector_width=$libc_cv_cc_mprefer_vector_width
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -mprefer-vector-width=128 in testing" >&5
+printf %s "checking for -mprefer-vector-width=128 in testing... " >&6; }
+if test ${libc_cv_test_cc_mprefer_vector_width+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} -mprefer-vector-width=128 -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ libc_cv_test_cc_mprefer_vector_width=yes
+else case e in #(
+ e) libc_cv_test_cc_mprefer_vector_width=no ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cc_mprefer_vector_width" >&5
+printf "%s\n" "$libc_cv_test_cc_mprefer_vector_width" >&6; }
+
+CC="$saved_CC"
+
+fi
+
config_vars="$config_vars
config-cflags-mprefer-vector-width = $libc_cv_cc_mprefer_vector_width"
build_mathvec=yes
fi
+test_enable_cet=$enable_cet
if test $enable_cet != no; then
# Check if CET can be enabled.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CET can be enabled" >&5
+ conftest_code="
+#if !defined __CET__ || __CET__ != 3
+# error CET is not available.
+#endif
+"
+
+cat > conftest.c <<EOF
+$conftest_code
+EOF
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CET can be enabled" >&5
printf %s "checking whether CET can be enabled... " >&6; }
if test ${libc_cv_x86_cet_available+y}
then :
printf %s "(cached) " >&6
else case e in #(
- e) cat > conftest.c <<EOF
-#if !defined __CET__ || __CET__ != 3
-# error CET isn't available.
-#endif
-EOF
- if { ac_try='${CC-cc} -c $CFLAGS -fcf-protection -include cet.h conftest.c 1>&5'
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c -fcf-protection -include cet.h conftest.c -o conftest 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- libc_cv_x86_cet_available=yes
- else
- libc_cv_x86_cet_available=no
- fi
- rm -rf conftest* ;;
+ test $ac_status = 0; }; }
+ then
+ libc_cv_x86_cet_available=yes
+ else
+ libc_cv_x86_cet_available=no
+ fi
+ ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_cet_available" >&5
printf "%s\n" "$libc_cv_x86_cet_available" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_x86_cet_available=$libc_cv_x86_cet_available
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CET can be enabled in testing" >&5
+printf %s "checking whether CET can be enabled in testing... " >&6; }
+if test ${libc_cv_test_x86_cet_available+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c -fcf-protection -include cet.h conftest.c -o conftest 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ libc_cv_test_x86_cet_available=yes
+ else
+ libc_cv_test_x86_cet_available=no
+ fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_x86_cet_available" >&5
+printf "%s\n" "$libc_cv_test_x86_cet_available" >&6; }
+
+CC="$saved_CC"
+
+fi
+rm -f conftest*
+ test_enable_cet=$libc_cv_test_x86_cet_available
if test $libc_cv_x86_cet_available != yes; then
as_fn_error $? "$CC doesn't support CET" "$LINENO" 5
fi
enable-cet = $enable_cet"
# Check if -mamx-tile works properly.
+check_x86_have_amx_tile ()
+{
+ eval $1=no
+ if grep -q __builtin_ia32_ldtilecfg conftest; then
+ eval $1=yes
+ fi
+}
+
+conftest_code="
+#include <x86intrin.h>
+"
+
+cat > conftest.c <<EOF
+$conftest_code
+EOF
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -mamx-tile works properly" >&5
printf %s "checking whether -mamx-tile works properly... " >&6; }
if test ${libc_cv_x86_have_amx_tile+y}
then :
printf %s "(cached) " >&6
else case e in #(
- e) cat > conftest.c <<EOF
-#include <x86intrin.h>
-EOF
- libc_cv_x86_have_amx_tile=no
- if { ac_try='${CC-cc} -E $CFLAGS -mamx-tile conftest.c > conftest.i'
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -E -mamx-tile conftest.c -o conftest 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- if grep -q __builtin_ia32_ldtilecfg conftest.i; then
- libc_cv_x86_have_amx_tile=yes
- fi
- fi
- rm -rf conftest* ;;
+ test $ac_status = 0; }; }
+ then
+ check_x86_have_amx_tile libc_cv_x86_have_amx_tile
+ else
+ libc_cv_x86_have_amx_tile=no
+ fi
+ ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_have_amx_tile" >&5
printf "%s\n" "$libc_cv_x86_have_amx_tile" >&6; }
+if test "$TEST_CC" = "$CC"; then
+ libc_cv_test_x86_have_amx_tile=$libc_cv_x86_have_amx_tile
+else
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -mamx-tile works properly in testing" >&5
+printf %s "checking whether -mamx-tile works properly in testing... " >&6; }
+if test ${libc_cv_test_x86_have_amx_tile+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -E -mamx-tile conftest.c -o conftest 1>&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ check_x86_have_amx_tile libc_cv_test_x86_have_amx_tile
+ else
+ libc_cv_test_x86_have_amx_tile=no
+ fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_x86_have_amx_tile" >&5
+printf "%s\n" "$libc_cv_test_x86_have_amx_tile" >&6; }
+
+CC="$saved_CC"
+
+fi
+rm -f conftest*
config_vars="$config_vars
have-mamx-tile = $libc_cv_x86_have_amx_tile"
# Local configure fragment for sysdeps/x86_64.
dnl Check if -mprefer-vector-width=128 works.
-AC_CACHE_CHECK(-mprefer-vector-width=128, libc_cv_cc_mprefer_vector_width, [dnl
-LIBC_TRY_CC_OPTION([-mprefer-vector-width=128],
- [libc_cv_cc_mprefer_vector_width=yes],
- [libc_cv_cc_mprefer_vector_width=no])
-])
+LIBC_TRY_CC_AND_TEST_CC_OPTION([for -mprefer-vector-width=128],
+ [-mprefer-vector-width=128],
+ libc_cv_cc_mprefer_vector_width,
+ [libc_cv_cc_mprefer_vector_width=yes],
+ [libc_cv_cc_mprefer_vector_width=no],
+ libc_cv_test_cc_mprefer_vector_width,
+ [libc_cv_test_cc_mprefer_vector_width=yes],
+ [libc_cv_test_cc_mprefer_vector_width=no])
LIBC_CONFIG_VAR([config-cflags-mprefer-vector-width],
[$libc_cv_cc_mprefer_vector_width])
build_mathvec=yes
fi
+test_enable_cet=$enable_cet
if test $enable_cet != no; then
# Check if CET can be enabled.
- AC_CACHE_CHECK(whether CET can be enabled,
- libc_cv_x86_cet_available, [dnl
-cat > conftest.c <<EOF
+ conftest_code="
#if !defined __CET__ || __CET__ != 3
-# error CET isn't available.
+# error CET is not available.
#endif
-EOF
- if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS -fcf-protection -include cet.h conftest.c 1>&AS_MESSAGE_LOG_FD); then
- libc_cv_x86_cet_available=yes
- else
- libc_cv_x86_cet_available=no
- fi
- rm -rf conftest*])
+"
+ LIBC_TRY_CC_AND_TEST_CC_COMMAND([whether CET can be enabled],
+ [$conftest_code],
+ [-c -fcf-protection -include cet.h],
+ libc_cv_x86_cet_available,
+ [libc_cv_x86_cet_available=yes],
+ [libc_cv_x86_cet_available=no],
+ libc_cv_test_x86_cet_available,
+ [libc_cv_test_x86_cet_available=yes],
+ [libc_cv_test_x86_cet_available=no])
+ test_enable_cet=$libc_cv_test_x86_cet_available
if test $libc_cv_x86_cet_available != yes; then
AC_MSG_ERROR([$CC doesn't support CET])
fi
LIBC_CONFIG_VAR([enable-cet], [$enable_cet])
# Check if -mamx-tile works properly.
-AC_CACHE_CHECK(whether -mamx-tile works properly,
- libc_cv_x86_have_amx_tile, [dnl
-cat > conftest.c <<EOF
+check_x86_have_amx_tile ()
+{
+ eval $1=no
+ if grep -q __builtin_ia32_ldtilecfg conftest; then
+ eval $1=yes
+ fi
+}
+
+conftest_code="
#include <x86intrin.h>
-EOF
- libc_cv_x86_have_amx_tile=no
- if AC_TRY_COMMAND(${CC-cc} -E $CFLAGS -mamx-tile conftest.c > conftest.i); then
- if grep -q __builtin_ia32_ldtilecfg conftest.i; then
- libc_cv_x86_have_amx_tile=yes
- fi
- fi
- rm -rf conftest*])
+"
+LIBC_TRY_CC_AND_TEST_CC_COMMAND([whether -mamx-tile works properly],
+ [$conftest_code],
+ [-E -mamx-tile],
+ libc_cv_x86_have_amx_tile,
+ [check_x86_have_amx_tile libc_cv_x86_have_amx_tile],
+ [libc_cv_x86_have_amx_tile=no],
+ libc_cv_test_x86_have_amx_tile,
+ [check_x86_have_amx_tile libc_cv_test_x86_have_amx_tile],
+ [libc_cv_test_x86_have_amx_tile=no])
LIBC_CONFIG_VAR([have-mamx-tile], [$libc_cv_x86_have_amx_tile])
# Check if -mapxf is enabled.