@@ -4617,49 +4617,53 @@ component_build_aes_armce () {
46174617 scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
46184618
46194619 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
4620- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4620+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4621+ msg " clang, test aarch64 crypto instructions built"
4622+ grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
46214623
46224624 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
4623- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4625+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4626+ msg " clang, test A32 crypto instructions built"
4627+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
46244628
46254629 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
4626- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4630+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4631+ msg " clang, test T32 crypto instructions built"
4632+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
46274633
46284634 scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
46294635
4630- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
4631- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4632-
4633- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
4634- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4635-
4636- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
4637- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4636+ msg " MBEDTLS_AES_USE_both, clang, aarch64"
4637+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4638+ msg " clang, test aarch64 crypto instructions built"
4639+ grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
46384640
4639- # test for presence of AES instructions
4640- scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
4641+ msg " MBEDTLS_AES_USE_both, clang, arm "
4642+ make -B library/../ ${BUILTIN_SRC_PATH} /aesce.o library/../ ${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS= " --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm "
46414643 msg " clang, test A32 crypto instructions built"
4642- make -B library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
46434644 grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
4645+
4646+ msg " MBEDTLS_AES_USE_both, clang, thumb"
4647+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
46444648 msg " clang, test T32 crypto instructions built"
4645- make -B library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
46464649 grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
4647- msg " clang, test aarch64 crypto instructions built"
4648- make -B library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4649- grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
46504650
4651- # test for absence of AES instructions
4652- scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
46534651 scripts/config.py unset MBEDTLS_AESCE_C
4652+
4653+ msg " no MBEDTLS_AESCE_C, clang, aarch64"
4654+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4655+ msg " clang, test aarch64 crypto instructions not built"
4656+ not grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
4657+
4658+ msg " no MBEDTLS_AESCE_C, clang, arm"
4659+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
46544660 msg " clang, test A32 crypto instructions not built"
4655- make -B library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
46564661 not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
4662+
4663+ msg " no MBEDTLS_AESCE_C, clang, thumb"
4664+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
46574665 msg " clang, test T32 crypto instructions not built"
4658- make -B library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
46594666 not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
4660- msg " clang, test aarch64 crypto instructions not built"
4661- make -B library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4662- not grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
46634667}
46644668
46654669support_build_sha_armce () {
@@ -4670,62 +4674,54 @@ support_build_sha_armce() {
46704674component_build_sha_armce () {
46714675 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
46724676
4673-
46744677 # Test variations of SHA256 Armv8 crypto extensions
46754678 scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
46764679 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, aarch64"
4677- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4680+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4681+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test aarch64 crypto instructions built"
4682+ grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
4683+
46784684 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, arm"
4679- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4685+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4686+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test A32 crypto instructions built"
4687+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
46804688 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
46814689
46824690
46834691 # test the deprecated form of the config option
46844692 scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
46854693 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, thumb"
4686- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4694+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4695+ msg " MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, test T32 crypto instructions built"
4696+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
46874697 scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
46884698
46894699 scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
46904700 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, aarch64"
4691- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4701+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4702+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, test aarch64 crypto instructions built"
4703+ grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
46924704 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
46934705
46944706
46954707 # test the deprecated form of the config option
46964708 scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
46974709 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, arm"
4698- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
4710+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
4711+
46994712 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, thumb"
4700- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4713+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4714+ msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, test T32 crypto instructions built"
4715+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
47014716 scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
47024717
4703-
4704- # examine the disassembly for presence of SHA instructions
4705- for opt in MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT; do
4706- scripts/config.py set ${opt}
4707- msg " ${opt} clang, test A32 crypto instructions built"
4708- make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4709- grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
4710-
4711- msg " ${opt} clang, test T32 crypto instructions built"
4712- make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4713- grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
4714-
4715- msg " ${opt} clang, test aarch64 crypto instructions built"
4716- make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4717- grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
4718- scripts/config.py unset ${opt}
4719- done
4720-
4721-
47224718 # examine the disassembly for absence of SHA instructions
47234719 msg " clang, test A32 crypto instructions not built"
4724- make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4720+ make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
47254721 not grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
47264722
47274723 msg " clang, test T32 crypto instructions not built"
4728- make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4724+ make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
47294725 not grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
47304726
47314727 msg " clang, test aarch64 crypto instructions not built"
0 commit comments