config: Added HAVE_AARCH64_SVE_ASM for aarch64

This patch checks if assembler supports '-march=armv8.2-a+sve' to
generate SVE code or not, and then define HAVE_AARCH64_SVE_ASM macro.
This commit is contained in:
Naohiro Tamura 2021-05-12 09:26:40 +00:00 committed by Szabolcs Nagy
parent bfbdfe4eab
commit 77d175e14e
3 changed files with 48 additions and 0 deletions

View File

@ -121,6 +121,11 @@
/* AArch64 PAC-RET code generation is enabled. */
#define HAVE_AARCH64_PAC_RET 0
/* Assembler support ARMv8.2-A SVE.
This macro becomes obsolete when glibc increased the minimum
required version of GNU 'binutils' to 2.28 or later. */
#define HAVE_AARCH64_SVE_ASM 0
/* ARC big endian ABI */
#undef HAVE_ARC_BE

View File

@ -304,3 +304,31 @@ fi
$as_echo "$libc_cv_aarch64_variant_pcs" >&6; }
config_vars="$config_vars
aarch64-variant-pcs = $libc_cv_aarch64_variant_pcs"
# Check if asm support armv8.2-a+sve
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVE support in assembler" >&5
$as_echo_n "checking for SVE support in assembler... " >&6; }
if ${libc_cv_asm_sve+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<\EOF
ptrue p0.b
EOF
if { ac_try='${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
libc_cv_aarch64_sve_asm=yes
else
libc_cv_aarch64_sve_asm=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_sve" >&5
$as_echo "$libc_cv_asm_sve" >&6; }
if test $libc_cv_aarch64_sve_asm = yes; then
$as_echo "#define HAVE_AARCH64_SVE_ASM 1" >>confdefs.h
fi

View File

@ -90,3 +90,18 @@ EOF
fi
rm -rf conftest.*])
LIBC_CONFIG_VAR([aarch64-variant-pcs], [$libc_cv_aarch64_variant_pcs])
# Check if asm support armv8.2-a+sve
AC_CACHE_CHECK(for SVE support in assembler, libc_cv_asm_sve, [dnl
cat > conftest.s <<\EOF
ptrue p0.b
EOF
if AC_TRY_COMMAND(${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&AS_MESSAGE_LOG_FD); then
libc_cv_aarch64_sve_asm=yes
else
libc_cv_aarch64_sve_asm=no
fi
rm -f conftest*])
if test $libc_cv_aarch64_sve_asm = yes; then
AC_DEFINE(HAVE_AARCH64_SVE_ASM)
fi