Merge 13c2e1b18b2fdd2b668029774db2e15d6963fcee into d8d5ea7cbc42b7800a3b030fb4341810074e7cb0

This commit is contained in:
Julius Bairaktaris 2026-10-27 20:00:49 +00:00 committed by GitHub
commit 03994f161a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 35 additions and 1 deletions

View File

@ -316,6 +316,40 @@ component_build_sha_armce () {
not grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s not grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
} }
support_build_sha_armce_gcc () {
# GCC >= 6 is required to build with SHA extensions
[ "$(gcc_version "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc")" -ge 6 ]
}
component_build_sha_armce_gcc () {
# The SHA-256 crypto extensions must be added to the target of the build,
# not replace it: with -mcpu=cortex-a53 (which has CRC) GCC otherwise
# refuses to inline always_inline functions such as a fortified memset().
scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
for opt in MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT; do
scripts/config.py set $opt
msg "$opt ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc, -mcpu=cortex-a53 -D_FORTIFY_SOURCE=2"
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha256.o library/../${BUILTIN_SRC_PATH}/sha256.s CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS="-std=c99 -Werror -O2 -mcpu=cortex-a53 -D_FORTIFY_SOURCE=2"
msg "$opt ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc, test aarch64 crypto instructions built"
grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.s
scripts/config.py unset $opt
done
# The same for the SHA-512 extensions with -mcpu=cortex-a76, which has
# extensions beyond Armv8.2-A. Before GCC 13, the SHA-512 intrinsics
# require Armv8.2-A, so this only builds with GCC 13 or later.
if [ "$(gcc_version "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc")" -ge 13 ]; then
for opt in MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT; do
scripts/config.py set $opt
msg "$opt ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc, -mcpu=cortex-a76 -D_FORTIFY_SOURCE=2"
$MAKE_COMMAND -B library/../${BUILTIN_SRC_PATH}/sha512.o library/../${BUILTIN_SRC_PATH}/sha512.s CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS="-std=c99 -Werror -O2 -mcpu=cortex-a76 -D_FORTIFY_SOURCE=2"
msg "$opt ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc, test aarch64 crypto instructions built"
grep -E 'sha512[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha512.s
scripts/config.py unset $opt
done
fi
}
component_test_arm_linux_gnueabi_gcc_arm5vte () { component_test_arm_linux_gnueabi_gcc_arm5vte () {
# Mimic Debian armel port # Mimic Debian armel port
msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, default config" # ~4m msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, default config" # ~4m

@ -1 +1 @@
Subproject commit a4c2d358812944ab8a68018f3ca8a9f2d478813c Subproject commit f13d40055bb5b7ce2e2d414fde12e26fd10396a2