@@ -4723,49 +4723,53 @@ component_build_aes_armce () {
47234723 scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
47244724
47254725 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
4726- make -B library/aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4726+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4727+ msg " clang, test aarch64 crypto instructions built"
4728+ grep -E ' aes[a-z]+\s*[qv]' library/aesce.s
47274729
47284730 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
4729- make -B library/aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4731+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4732+ msg " clang, test A32 crypto instructions built"
4733+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.s
47304734
47314735 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
4732- make -B library/aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4736+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4737+ msg " clang, test T32 crypto instructions built"
4738+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.s
47334739
47344740 scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
47354741
4736- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
4737- make -B library/aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4738-
4739- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
4740- make -B library/aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4741-
4742- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
4743- make -B library/aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4742+ msg " MBEDTLS_AES_USE_both, clang, aarch64"
4743+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4744+ msg " clang, test aarch64 crypto instructions built"
4745+ grep -E ' aes[a-z]+\s*[qv]' library/aesce.s
47444746
4745- # test for presence of AES instructions
4746- scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
4747+ msg " MBEDTLS_AES_USE_both, clang, arm "
4748+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS= " --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm "
47474749 msg " clang, test A32 crypto instructions built"
4748- make -B library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
47494750 grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.s
4751+
4752+ msg " MBEDTLS_AES_USE_both, clang, thumb"
4753+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
47504754 msg " clang, test T32 crypto instructions built"
4751- make -B library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
47524755 grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.s
4753- msg " clang, test aarch64 crypto instructions built"
4754- make -B library/aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4755- grep -E ' aes[a-z]+\s*[qv]' library/aesce.s
47564756
4757- # test for absence of AES instructions
4758- scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
47594757 scripts/config.py unset MBEDTLS_AESCE_C
4758+
4759+ msg " no MBEDTLS_AESCE_C, clang, aarch64"
4760+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4761+ msg " clang, test aarch64 crypto instructions not built"
4762+ not grep -E ' aes[a-z]+\s*[qv]' library/aesce.s
4763+
4764+ msg " no MBEDTLS_AESCE_C, clang, arm"
4765+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
47604766 msg " clang, test A32 crypto instructions not built"
4761- make -B library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
47624767 not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.s
4768+
4769+ msg " no MBEDTLS_AESCE_C, clang, thumb"
4770+ make -B library/aesce.o library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
47634771 msg " clang, test T32 crypto instructions not built"
4764- make -B library/aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
47654772 not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.s
4766- msg " clang, test aarch64 crypto instructions not built"
4767- make -B library/aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4768- not grep -E ' aes[a-z]+\s*[qv]' library/aesce.s
47694773}
47704774
47714775support_build_sha_armce () {
@@ -4776,62 +4780,54 @@ support_build_sha_armce() {
47764780component_build_sha_armce () {
47774781 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
47784782
4779-
47804783 # Test variations of SHA256 Armv8 crypto extensions
47814784 scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
47824785 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, aarch64"
4783- make -B library/sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4786+ make -B library/sha256.o library/sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4787+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test aarch64 crypto instructions built"
4788+ grep -E ' sha256[a-z0-9]+\s+[qv]' library/sha256.s
4789+
47844790 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, arm"
4785- make -B library/sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4791+ make -B library/sha256.o library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4792+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test A32 crypto instructions built"
4793+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
47864794 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
47874795
47884796
47894797 # test the deprecated form of the config option
47904798 scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
47914799 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, thumb"
4792- make -B library/sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4800+ make -B library/sha256.o library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4801+ msg " MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, test T32 crypto instructions built"
4802+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
47934803 scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
47944804
47954805 scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
47964806 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, aarch64"
4797- make -B library/sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4807+ make -B library/sha256.o library/sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
4808+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, test aarch64 crypto instructions built"
4809+ grep -E ' sha256[a-z0-9]+\s+[qv]' library/sha256.s
47984810 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
47994811
48004812
48014813 # test the deprecated form of the config option
48024814 scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
48034815 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, arm"
4804- make -B library/sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
4816+ make -B library/sha256.o library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
4817+
48054818 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, thumb"
4806- make -B library/sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4819+ make -B library/sha256.o library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4820+ msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, test T32 crypto instructions built"
4821+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
48074822 scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
48084823
4809-
4810- # examine the disassembly for presence of SHA instructions
4811- for opt in MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT; do
4812- scripts/config.py set ${opt}
4813- msg " ${opt} clang, test A32 crypto instructions built"
4814- make -B library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4815- grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
4816-
4817- msg " ${opt} clang, test T32 crypto instructions built"
4818- make -B library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4819- grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
4820-
4821- msg " ${opt} clang, test aarch64 crypto instructions built"
4822- make -B library/sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
4823- grep -E ' sha256[a-z0-9]+\s+[qv]' library/sha256.s
4824- scripts/config.py unset ${opt}
4825- done
4826-
4827-
48284824 # examine the disassembly for absence of SHA instructions
48294825 msg " clang, test A32 crypto instructions not built"
4830- make -B library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
4826+ make -B library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
48314827 not grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
48324828
48334829 msg " clang, test T32 crypto instructions not built"
4834- make -B library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
4830+ make -B library/sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
48354831 not grep -E ' sha256[a-z0-9]+.32\s+[qv]' library/sha256.s
48364832
48374833 msg " clang, test aarch64 crypto instructions not built"
0 commit comments