all.sh: Update paths to builtin driver modules and objects

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
Ronald Cron 2024-07-03 07:59:30 +02:00
parent ad6d1ceeef
commit 709bbf0ede

View File

@ -444,6 +444,7 @@ armc6_build_test()
msg "size: ARM Compiler 6 ($FLAGS)" msg "size: ARM Compiler 6 ($FLAGS)"
"$ARMC6_FROMELF" -z library/*.o "$ARMC6_FROMELF" -z library/*.o
"$ARMC6_FROMELF" -z ${BUILTIN_SRC_PATH}/*.o
} }
err_msg() err_msg()
@ -1094,6 +1095,8 @@ helper_psasim_server() {
#### Basic checks #### Basic checks
################################################################ ################################################################
export BUILTIN_SRC_PATH="tf-psa-crypto/drivers/builtin/src"
# #
# Test Suites to be executed # Test Suites to be executed
# #
@ -1108,6 +1111,7 @@ helper_psasim_server() {
component_check_recursion () { component_check_recursion () {
msg "Check: recursion.pl" # < 1s msg "Check: recursion.pl" # < 1s
tests/scripts/recursion.pl library/*.c tests/scripts/recursion.pl library/*.c
tests/scripts/recursion.pl ${BUILTIN_SRC_PATH}/*.c
} }
component_check_generated_files () { component_check_generated_files () {
@ -1670,8 +1674,8 @@ component_full_no_pkparse_pkwrite() {
make CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" make CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
# Ensure that PK_[PARSE|WRITE]_C were not re-enabled accidentally (additive config). # Ensure that PK_[PARSE|WRITE]_C were not re-enabled accidentally (additive config).
not grep mbedtls_pk_parse_key library/pkparse.o not grep mbedtls_pk_parse_key ${BUILTIN_SRC_PATH}/pkparse.o
not grep mbedtls_pk_write_key_der library/pkwrite.o not grep mbedtls_pk_write_key_der ${BUILTIN_SRC_PATH}/pkwrite.o
msg "test: full without pkparse and pkwrite" msg "test: full without pkparse and pkwrite"
make test make test
@ -1698,8 +1702,8 @@ component_test_crypto_full_md_light_only () {
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS"
# Make sure we don't have the HMAC functions, but the hashing functions # Make sure we don't have the HMAC functions, but the hashing functions
not grep mbedtls_md_hmac library/md.o not grep mbedtls_md_hmac ${BUILTIN_SRC_PATH}/md.o
grep mbedtls_md library/md.o grep mbedtls_md ${BUILTIN_SRC_PATH}/md.o
msg "test: crypto_full with only the light subset of MD" msg "test: crypto_full with only the light subset of MD"
make test make test
@ -1734,7 +1738,7 @@ component_test_full_no_cipher () {
make make
# Ensure that CIPHER_C was not re-enabled # Ensure that CIPHER_C was not re-enabled
not grep mbedtls_cipher_init library/cipher.o not grep mbedtls_cipher_init ${BUILTIN_SRC_PATH}/cipher.o
msg "test: full no CIPHER" msg "test: full no CIPHER"
make test make test
@ -2524,7 +2528,7 @@ component_test_psa_crypto_config_accel_ecdsa () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_ecdsa_ library/ecdsa.o not grep mbedtls_ecdsa_ ${BUILTIN_SRC_PATH}/ecdsa.o
# Run the tests # Run the tests
# ------------- # -------------
@ -2565,7 +2569,7 @@ component_test_psa_crypto_config_accel_ecdh () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_ecdh_ library/ecdh.o not grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
# Run the tests # Run the tests
# ------------- # -------------
@ -2603,7 +2607,7 @@ component_test_psa_crypto_config_accel_ffdh () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_dhm_ library/dhm.o not grep mbedtls_dhm_ ${BUILTIN_SRC_PATH}/dhm.o
# Run the tests # Run the tests
# ------------- # -------------
@ -2657,7 +2661,7 @@ component_test_psa_crypto_config_accel_pake() {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_ecjpake_init library/ecjpake.o not grep mbedtls_ecjpake_init ${BUILTIN_SRC_PATH}/ecjpake.o
# Run the tests # Run the tests
# ------------- # -------------
@ -2714,10 +2718,10 @@ component_test_psa_crypto_config_accel_ecc_some_key_types () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# ECP should be re-enabled but not the others # ECP should be re-enabled but not the others
not grep mbedtls_ecdh_ library/ecdh.o not grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
not grep mbedtls_ecdsa library/ecdsa.o not grep mbedtls_ecdsa ${BUILTIN_SRC_PATH}/ecdsa.o
not grep mbedtls_ecjpake library/ecjpake.o not grep mbedtls_ecjpake ${BUILTIN_SRC_PATH}/ecjpake.o
grep mbedtls_ecp library/ecp.o grep mbedtls_ecp ${BUILTIN_SRC_PATH}/ecp.o
# Run the tests # Run the tests
# ------------- # -------------
@ -2808,27 +2812,27 @@ common_test_psa_crypto_config_accel_ecc_some_curves () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# We expect ECDH to be re-enabled for the missing curves # We expect ECDH to be re-enabled for the missing curves
grep mbedtls_ecdh_ library/ecdh.o grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
# We expect ECP to be re-enabled, however the parts specific to the # We expect ECP to be re-enabled, however the parts specific to the
# families of curves that are accelerated should be ommited. # families of curves that are accelerated should be ommited.
# - functions with mxz in the name are specific to Montgomery curves # - functions with mxz in the name are specific to Montgomery curves
# - ecp_muladd is specific to Weierstrass curves # - ecp_muladd is specific to Weierstrass curves
##nm library/ecp.o | tee ecp.syms ##nm ${BUILTIN_SRC_PATH}/ecp.o | tee ecp.syms
if [ $weierstrass -eq 1 ]; then if [ $weierstrass -eq 1 ]; then
not grep mbedtls_ecp_muladd library/ecp.o not grep mbedtls_ecp_muladd ${BUILTIN_SRC_PATH}/ecp.o
grep mxz library/ecp.o grep mxz ${BUILTIN_SRC_PATH}/ecp.o
else else
grep mbedtls_ecp_muladd library/ecp.o grep mbedtls_ecp_muladd ${BUILTIN_SRC_PATH}/ecp.o
not grep mxz library/ecp.o not grep mxz ${BUILTIN_SRC_PATH}/ecp.o
fi fi
# We expect ECDSA and ECJPAKE to be re-enabled only when # We expect ECDSA and ECJPAKE to be re-enabled only when
# Weierstrass curves are not accelerated # Weierstrass curves are not accelerated
if [ $weierstrass -eq 1 ]; then if [ $weierstrass -eq 1 ]; then
not grep mbedtls_ecdsa library/ecdsa.o not grep mbedtls_ecdsa ${BUILTIN_SRC_PATH}/ecdsa.o
not grep mbedtls_ecjpake library/ecjpake.o not grep mbedtls_ecjpake ${BUILTIN_SRC_PATH}/ecjpake.o
else else
grep mbedtls_ecdsa library/ecdsa.o grep mbedtls_ecdsa ${BUILTIN_SRC_PATH}/ecdsa.o
grep mbedtls_ecjpake library/ecjpake.o grep mbedtls_ecjpake ${BUILTIN_SRC_PATH}/ecjpake.o
fi fi
# Run the tests # Run the tests
@ -2907,10 +2911,10 @@ component_test_psa_crypto_config_accel_ecc_ecp_light_only () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure any built-in EC alg was not re-enabled by accident (additive config) # Make sure any built-in EC alg was not re-enabled by accident (additive config)
not grep mbedtls_ecdsa_ library/ecdsa.o not grep mbedtls_ecdsa_ ${BUILTIN_SRC_PATH}/ecdsa.o
not grep mbedtls_ecdh_ library/ecdh.o not grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
not grep mbedtls_ecjpake_ library/ecjpake.o not grep mbedtls_ecjpake_ ${BUILTIN_SRC_PATH}/ecjpake.o
not grep mbedtls_ecp_mul library/ecp.o not grep mbedtls_ecp_mul ${BUILTIN_SRC_PATH}/ecp.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3011,11 +3015,11 @@ component_test_psa_crypto_config_accel_ecc_no_ecp_at_all () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure any built-in EC alg was not re-enabled by accident (additive config) # Make sure any built-in EC alg was not re-enabled by accident (additive config)
not grep mbedtls_ecdsa_ library/ecdsa.o not grep mbedtls_ecdsa_ ${BUILTIN_SRC_PATH}/ecdsa.o
not grep mbedtls_ecdh_ library/ecdh.o not grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
not grep mbedtls_ecjpake_ library/ecjpake.o not grep mbedtls_ecjpake_ ${BUILTIN_SRC_PATH}/ecjpake.o
# Also ensure that ECP module was not re-enabled # Also ensure that ECP module was not re-enabled
not grep mbedtls_ecp_ library/ecp.o not grep mbedtls_ecp_ ${BUILTIN_SRC_PATH}/ecp.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3186,14 +3190,14 @@ common_test_psa_crypto_config_accel_ecc_ffdh_no_bignum () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure any built-in EC alg was not re-enabled by accident (additive config) # Make sure any built-in EC alg was not re-enabled by accident (additive config)
not grep mbedtls_ecdsa_ library/ecdsa.o not grep mbedtls_ecdsa_ ${BUILTIN_SRC_PATH}/ecdsa.o
not grep mbedtls_ecdh_ library/ecdh.o not grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
not grep mbedtls_ecjpake_ library/ecjpake.o not grep mbedtls_ecjpake_ ${BUILTIN_SRC_PATH}/ecjpake.o
# Also ensure that ECP, RSA, [DHM] or BIGNUM modules were not re-enabled # Also ensure that ECP, RSA, [DHM] or BIGNUM modules were not re-enabled
not grep mbedtls_ecp_ library/ecp.o not grep mbedtls_ecp_ ${BUILTIN_SRC_PATH}/ecp.o
not grep mbedtls_rsa_ library/rsa.o not grep mbedtls_rsa_ ${BUILTIN_SRC_PATH}/rsa.o
not grep mbedtls_mpi_ library/bignum.o not grep mbedtls_mpi_ ${BUILTIN_SRC_PATH}/bignum.o
not grep mbedtls_dhm_ library/dhm.o not grep mbedtls_dhm_ ${BUILTIN_SRC_PATH}/dhm.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3289,20 +3293,20 @@ component_test_tfm_config_p256m_driver_accel_ec () {
make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS -I../tests/include/spe" LDFLAGS="$ASAN_CFLAGS" make CC=$ASAN_CC CFLAGS="$ASAN_CFLAGS -I../tests/include/spe" LDFLAGS="$ASAN_CFLAGS"
# Make sure any built-in EC alg was not re-enabled by accident (additive config) # Make sure any built-in EC alg was not re-enabled by accident (additive config)
not grep mbedtls_ecdsa_ library/ecdsa.o not grep mbedtls_ecdsa_ ${BUILTIN_SRC_PATH}/ecdsa.o
not grep mbedtls_ecdh_ library/ecdh.o not grep mbedtls_ecdh_ ${BUILTIN_SRC_PATH}/ecdh.o
not grep mbedtls_ecjpake_ library/ecjpake.o not grep mbedtls_ecjpake_ ${BUILTIN_SRC_PATH}/ecjpake.o
# Also ensure that ECP, RSA, DHM or BIGNUM modules were not re-enabled # Also ensure that ECP, RSA, DHM or BIGNUM modules were not re-enabled
not grep mbedtls_ecp_ library/ecp.o not grep mbedtls_ecp_ ${BUILTIN_SRC_PATH}/ecp.o
not grep mbedtls_rsa_ library/rsa.o not grep mbedtls_rsa_ ${BUILTIN_SRC_PATH}/rsa.o
not grep mbedtls_dhm_ library/dhm.o not grep mbedtls_dhm_ ${BUILTIN_SRC_PATH}/dhm.o
not grep mbedtls_mpi_ library/bignum.o not grep mbedtls_mpi_ ${BUILTIN_SRC_PATH}/bignum.o
# Check that p256m was built # Check that p256m was built
grep -q p256_ecdsa_ library/libmbedcrypto.a grep -q p256_ecdsa_ library/libmbedcrypto.a
# In "config-tfm.h" we disabled CIPHER_C tweaking TF-M's configuration # In "config-tfm.h" we disabled CIPHER_C tweaking TF-M's configuration
# files, so we want to ensure that it has not be re-enabled accidentally. # files, so we want to ensure that it has not be re-enabled accidentally.
not grep mbedtls_cipher library/cipher.o not grep mbedtls_cipher ${BUILTIN_SRC_PATH}/cipher.o
# Run the tests # Run the tests
msg "test: TF-M config + p256m driver + accel ECDH(E)/ECDSA" msg "test: TF-M config + p256m driver + accel ECDH(E)/ECDSA"
@ -3327,7 +3331,7 @@ component_test_tfm_config() {
# In "config-tfm.h" we disabled CIPHER_C tweaking TF-M's configuration # In "config-tfm.h" we disabled CIPHER_C tweaking TF-M's configuration
# files, so we want to ensure that it has not be re-enabled accidentally. # files, so we want to ensure that it has not be re-enabled accidentally.
not grep mbedtls_cipher library/cipher.o not grep mbedtls_cipher ${BUILTIN_SRC_PATH}/cipher.o
msg "test: TF-M config" msg "test: TF-M config"
make test make test
@ -3449,7 +3453,7 @@ component_test_psa_crypto_config_accel_rsa_crypto () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_rsa library/rsa.o not grep mbedtls_rsa ${BUILTIN_SRC_PATH}/rsa.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3559,11 +3563,11 @@ component_test_psa_crypto_config_accel_hash () {
# There's a risk of something getting re-enabled via config_psa.h; # There's a risk of something getting re-enabled via config_psa.h;
# make sure it did not happen. Note: it's OK for MD_C to be enabled. # make sure it did not happen. Note: it's OK for MD_C to be enabled.
not grep mbedtls_md5 library/md5.o not grep mbedtls_md5 ${BUILTIN_SRC_PATH}/md5.o
not grep mbedtls_sha1 library/sha1.o not grep mbedtls_sha1 ${BUILTIN_SRC_PATH}/sha1.o
not grep mbedtls_sha256 library/sha256.o not grep mbedtls_sha256 ${BUILTIN_SRC_PATH}/sha256.o
not grep mbedtls_sha512 library/sha512.o not grep mbedtls_sha512 ${BUILTIN_SRC_PATH}/sha512.o
not grep mbedtls_ripemd160 library/ripemd160.o not grep mbedtls_ripemd160 ${BUILTIN_SRC_PATH}/ripemd160.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3616,11 +3620,11 @@ component_test_psa_crypto_config_accel_hash_use_psa () {
# There's a risk of something getting re-enabled via config_psa.h; # There's a risk of something getting re-enabled via config_psa.h;
# make sure it did not happen. Note: it's OK for MD_C to be enabled. # make sure it did not happen. Note: it's OK for MD_C to be enabled.
not grep mbedtls_md5 library/md5.o not grep mbedtls_md5 ${BUILTIN_SRC_PATH}/md5.o
not grep mbedtls_sha1 library/sha1.o not grep mbedtls_sha1 ${BUILTIN_SRC_PATH}/sha1.o
not grep mbedtls_sha256 library/sha256.o not grep mbedtls_sha256 ${BUILTIN_SRC_PATH}/sha256.o
not grep mbedtls_sha512 library/sha512.o not grep mbedtls_sha512 ${BUILTIN_SRC_PATH}/sha512.o
not grep mbedtls_ripemd160 library/ripemd160.o not grep mbedtls_ripemd160 ${BUILTIN_SRC_PATH}/ripemd160.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3707,7 +3711,7 @@ component_test_psa_crypto_config_accel_hmac() {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Ensure that built-in support for HMAC is disabled. # Ensure that built-in support for HMAC is disabled.
not grep mbedtls_md_hmac library/md.o not grep mbedtls_md_hmac ${BUILTIN_SRC_PATH}/md.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3765,7 +3769,7 @@ component_test_psa_crypto_config_accel_des () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_des* library/des.o not grep mbedtls_des* ${BUILTIN_SRC_PATH}/des.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3802,9 +3806,9 @@ component_test_psa_crypto_config_accel_aead () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_ccm library/ccm.o not grep mbedtls_ccm ${BUILTIN_SRC_PATH}/ccm.o
not grep mbedtls_gcm library/gcm.o not grep mbedtls_gcm ${BUILTIN_SRC_PATH}/gcm.o
not grep mbedtls_chachapoly library/chachapoly.o not grep mbedtls_chachapoly ${BUILTIN_SRC_PATH}/chachapoly.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3870,15 +3874,15 @@ component_test_psa_crypto_config_accel_cipher_aead_cmac () {
helper_libtestdriver1_make_main "$loc_accel_list" helper_libtestdriver1_make_main "$loc_accel_list"
# Make sure this was not re-enabled by accident (additive config) # Make sure this was not re-enabled by accident (additive config)
not grep mbedtls_cipher library/cipher.o not grep mbedtls_cipher ${BUILTIN_SRC_PATH}/cipher.o
not grep mbedtls_des library/des.o not grep mbedtls_des ${BUILTIN_SRC_PATH}/des.o
not grep mbedtls_aes library/aes.o not grep mbedtls_aes ${BUILTIN_SRC_PATH}/aes.o
not grep mbedtls_aria library/aria.o not grep mbedtls_aria ${BUILTIN_SRC_PATH}/aria.o
not grep mbedtls_camellia library/camellia.o not grep mbedtls_camellia ${BUILTIN_SRC_PATH}/camellia.o
not grep mbedtls_ccm library/ccm.o not grep mbedtls_ccm ${BUILTIN_SRC_PATH}/ccm.o
not grep mbedtls_gcm library/gcm.o not grep mbedtls_gcm ${BUILTIN_SRC_PATH}/gcm.o
not grep mbedtls_chachapoly library/chachapoly.o not grep mbedtls_chachapoly ${BUILTIN_SRC_PATH}/chachapoly.o
not grep mbedtls_cmac library/cmac.o not grep mbedtls_cmac ${BUILTIN_SRC_PATH}/cmac.o
# Run the tests # Run the tests
# ------------- # -------------
@ -3967,9 +3971,9 @@ component_test_full_block_cipher_psa_dispatch () {
# Make sure disabled components were not re-enabled by accident (additive # Make sure disabled components were not re-enabled by accident (additive
# config) # config)
not grep mbedtls_aes_ library/aes.o not grep mbedtls_aes_ ${BUILTIN_SRC_PATH}/aes.o
not grep mbedtls_aria_ library/aria.o not grep mbedtls_aria_ ${BUILTIN_SRC_PATH}/aria.o
not grep mbedtls_camellia_ library/camellia.o not grep mbedtls_camellia_ ${BUILTIN_SRC_PATH}/camellia.o
# Run the tests # Run the tests
# ------------- # -------------
@ -4074,9 +4078,8 @@ build_test_config_combos() {
./scripts/config.py unset ${opt} ./scripts/config.py unset ${opt}
done done
# enter the directory containing the target file & strip the dir from the filename # enter the library directory
cd $(dirname ${file}) cd library
file=$(basename ${file})
# The most common issue is unused variables/functions, so ensure -Wunused is set. # The most common issue is unused variables/functions, so ensure -Wunused is set.
warning_flags="-Werror -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wshadow -Wasm-operand-widths -Wunused" warning_flags="-Werror -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wshadow -Wasm-operand-widths -Wunused"
@ -4091,7 +4094,7 @@ build_test_config_combos() {
deps="" deps=""
len=${#options[@]} len=${#options[@]}
source_file=${file%.o}.c source_file=../${file%.o}.c
targets=0 targets=0
echo 'include Makefile' >${makefile} echo 'include Makefile' >${makefile}
@ -4148,7 +4151,7 @@ component_build_aes_variations() {
MBEDTLS_ROOT_DIR="$PWD" MBEDTLS_ROOT_DIR="$PWD"
msg "build: aes.o for all combinations of relevant config options" msg "build: aes.o for all combinations of relevant config options"
build_test_config_combos library/aes.o validate_aes_config_variations \ build_test_config_combos ${BUILTIN_SRC_PATH}/aes.o validate_aes_config_variations \
"MBEDTLS_AES_SETKEY_ENC_ALT" "MBEDTLS_AES_DECRYPT_ALT" \ "MBEDTLS_AES_SETKEY_ENC_ALT" "MBEDTLS_AES_DECRYPT_ALT" \
"MBEDTLS_AES_ROM_TABLES" "MBEDTLS_AES_ENCRYPT_ALT" "MBEDTLS_AES_SETKEY_DEC_ALT" \ "MBEDTLS_AES_ROM_TABLES" "MBEDTLS_AES_ENCRYPT_ALT" "MBEDTLS_AES_SETKEY_DEC_ALT" \
"MBEDTLS_AES_FEWER_TABLES" "MBEDTLS_AES_USE_HARDWARE_ONLY" \ "MBEDTLS_AES_FEWER_TABLES" "MBEDTLS_AES_USE_HARDWARE_ONLY" \
@ -4165,7 +4168,7 @@ component_build_aes_variations() {
scripts/config.py unset MBEDTLS_CIPHER_MODE_XTS scripts/config.py unset MBEDTLS_CIPHER_MODE_XTS
scripts/config.py unset MBEDTLS_DES_C scripts/config.py unset MBEDTLS_DES_C
scripts/config.py unset MBEDTLS_NIST_KW_C scripts/config.py unset MBEDTLS_NIST_KW_C
build_test_config_combos library/aes.o validate_aes_config_variations \ build_test_config_combos ${BUILTIN_SRC_PATH}/aes.o validate_aes_config_variations \
"MBEDTLS_AES_SETKEY_ENC_ALT" "MBEDTLS_AES_DECRYPT_ALT" \ "MBEDTLS_AES_SETKEY_ENC_ALT" "MBEDTLS_AES_DECRYPT_ALT" \
"MBEDTLS_AES_ROM_TABLES" "MBEDTLS_AES_ENCRYPT_ALT" "MBEDTLS_AES_SETKEY_DEC_ALT" \ "MBEDTLS_AES_ROM_TABLES" "MBEDTLS_AES_ENCRYPT_ALT" "MBEDTLS_AES_SETKEY_DEC_ALT" \
"MBEDTLS_AES_FEWER_TABLES" "MBEDTLS_AES_USE_HARDWARE_ONLY" \ "MBEDTLS_AES_FEWER_TABLES" "MBEDTLS_AES_USE_HARDWARE_ONLY" \
@ -4597,49 +4600,49 @@ component_build_aes_armce () {
scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64" msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
make -B library/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm" msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb" msg "MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
msg "no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64" msg "no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
make -B library/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a+crypto"
msg "no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm" msg "no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
msg "no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb" msg "no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
# test for presence of AES instructions # test for presence of AES instructions
scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
msg "clang, test A32 crypto instructions built" msg "clang, test A32 crypto instructions built"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.o grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.o
msg "clang, test T32 crypto instructions built" msg "clang, test T32 crypto instructions built"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.o grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.o
msg "clang, test aarch64 crypto instructions built" msg "clang, test aarch64 crypto instructions built"
make -B library/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S"
grep -E 'aes[a-z]+\s*[qv]' library/aesce.o grep -E 'aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.o
# test for absence of AES instructions # test for absence of AES instructions
scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
scripts/config.py unset MBEDTLS_AESCE_C scripts/config.py unset MBEDTLS_AESCE_C
msg "clang, test A32 crypto instructions not built" msg "clang, test A32 crypto instructions not built"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
not grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.o not grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.o
msg "clang, test T32 crypto instructions not built" msg "clang, test T32 crypto instructions not built"
make -B library/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
not grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' library/aesce.o not grep -E 'aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.o
msg "clang, test aarch64 crypto instructions not built" msg "clang, test aarch64 crypto instructions not built"
make -B library/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S" make -B library/../${BUILTIN_SRC_PATH}/aesce.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S"
not grep -E 'aes[a-z]+\s*[qv]' library/aesce.o not grep -E 'aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH}/aesce.o
} }
support_build_sha_armce() { support_build_sha_armce() {
@ -4654,30 +4657,30 @@ component_build_sha_armce () {
# Test variations of SHA256 Armv8 crypto extensions # Test variations of SHA256 Armv8 crypto extensions
scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, aarch64" msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, aarch64"
make -B library/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a"
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, arm" msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, arm"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
# test the deprecated form of the config option # test the deprecated form of the config option
scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
msg "MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, thumb" msg "MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, thumb"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, aarch64" msg "MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, aarch64"
make -B library/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a"
scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
# test the deprecated form of the config option # test the deprecated form of the config option
scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
msg "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, arm" msg "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, arm"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
msg "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, thumb" msg "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, thumb"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
@ -4685,32 +4688,32 @@ component_build_sha_armce () {
for opt in MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT; do for opt in MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT; do
scripts/config.py set ${opt} scripts/config.py set ${opt}
msg "${opt} clang, test A32 crypto instructions built" msg "${opt} clang, test A32 crypto instructions built"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
grep -E 'sha256[a-z0-9]+.32\s+[qv]' library/sha256.o grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.o
msg "${opt} clang, test T32 crypto instructions built" msg "${opt} clang, test T32 crypto instructions built"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
grep -E 'sha256[a-z0-9]+.32\s+[qv]' library/sha256.o grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.o
msg "${opt} clang, test aarch64 crypto instructions built" msg "${opt} clang, test aarch64 crypto instructions built"
make -B library/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S"
grep -E 'sha256[a-z0-9]+\s+[qv]' library/sha256.o grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.o
scripts/config.py unset ${opt} scripts/config.py unset ${opt}
done done
# examine the disassembly for absence of SHA instructions # examine the disassembly for absence of SHA instructions
msg "clang, test A32 crypto instructions not built" msg "clang, test A32 crypto instructions not built"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
not grep -E 'sha256[a-z0-9]+.32\s+[qv]' library/sha256.o not grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.o
msg "clang, test T32 crypto instructions not built" msg "clang, test T32 crypto instructions not built"
make -B library/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
not grep -E 'sha256[a-z0-9]+.32\s+[qv]' library/sha256.o not grep -E 'sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.o
msg "clang, test aarch64 crypto instructions not built" msg "clang, test aarch64 crypto instructions not built"
make -B library/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S" make -B library/../${BUILTIN_SRC_PATH}/sha256.o CC=clang CFLAGS="--target=aarch64-linux-gnu -march=armv8-a -S"
not grep -E 'sha256[a-z0-9]+\s+[qv]' library/sha256.o not grep -E 'sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH}/sha256.o
} }
support_build_aes_aesce_armcc () { support_build_aes_aesce_armcc () {
@ -4832,13 +4835,13 @@ helper_block_cipher_no_decrypt_build_test () {
make CFLAGS="-O2 $cflags" LDFLAGS="$ldflags" make CFLAGS="-O2 $cflags" LDFLAGS="$ldflags"
# Make sure we don't have mbedtls_xxx_setkey_dec in AES/ARIA/CAMELLIA # Make sure we don't have mbedtls_xxx_setkey_dec in AES/ARIA/CAMELLIA
not grep mbedtls_aes_setkey_dec library/aes.o not grep mbedtls_aes_setkey_dec ${BUILTIN_SRC_PATH}/aes.o
not grep mbedtls_aria_setkey_dec library/aria.o not grep mbedtls_aria_setkey_dec ${BUILTIN_SRC_PATH}/aria.o
not grep mbedtls_camellia_setkey_dec library/camellia.o not grep mbedtls_camellia_setkey_dec ${BUILTIN_SRC_PATH}/camellia.o
# Make sure we don't have mbedtls_internal_aes_decrypt in AES # Make sure we don't have mbedtls_internal_aes_decrypt in AES
not grep mbedtls_internal_aes_decrypt library/aes.o not grep mbedtls_internal_aes_decrypt ${BUILTIN_SRC_PATH}/aes.o
# Make sure we don't have mbedtls_aesni_inverse_key in AESNI # Make sure we don't have mbedtls_aesni_inverse_key in AESNI
not grep mbedtls_aesni_inverse_key library/aesni.o not grep mbedtls_aesni_inverse_key ${BUILTIN_SRC_PATH}/aesni.o
msg "test: default config + BLOCK_CIPHER_NO_DECRYPT${set_opts:+ + $set_opts}${unset_opts:+ - $unset_opts} with $cflags${ldflags:+, $ldflags}" msg "test: default config + BLOCK_CIPHER_NO_DECRYPT${set_opts:+ + $set_opts}${unset_opts:+ - $unset_opts} with $cflags${ldflags:+, $ldflags}"
make test make test
@ -4939,14 +4942,14 @@ component_test_block_cipher_no_decrypt_aesce_armcc () {
armc6_build_test "-O1 --target=aarch64-arm-none-eabi -march=armv8-a+crypto -Werror -Wall -Wextra" armc6_build_test "-O1 --target=aarch64-arm-none-eabi -march=armv8-a+crypto -Werror -Wall -Wextra"
# Make sure we don't have mbedtls_xxx_setkey_dec in AES/ARIA/CAMELLIA # Make sure we don't have mbedtls_xxx_setkey_dec in AES/ARIA/CAMELLIA
not grep mbedtls_aes_setkey_dec library/aes.o not grep mbedtls_aes_setkey_dec ${BUILTIN_SRC_PATH}/aes.o
not grep mbedtls_aria_setkey_dec library/aria.o not grep mbedtls_aria_setkey_dec ${BUILTIN_SRC_PATH}/aria.o
not grep mbedtls_camellia_setkey_dec library/camellia.o not grep mbedtls_camellia_setkey_dec ${BUILTIN_SRC_PATH}/camellia.o
# Make sure we don't have mbedtls_internal_aes_decrypt in AES # Make sure we don't have mbedtls_internal_aes_decrypt in AES
not grep mbedtls_internal_aes_decrypt library/aes.o not grep mbedtls_internal_aes_decrypt ${BUILTIN_SRC_PATH}/aes.o
# Make sure we don't have mbedtls_aesce_inverse_key and aesce_decrypt_block in AESCE # Make sure we don't have mbedtls_aesce_inverse_key and aesce_decrypt_block in AESCE
not grep mbedtls_aesce_inverse_key library/aesce.o not grep mbedtls_aesce_inverse_key ${BUILTIN_SRC_PATH}/aesce.o
not grep aesce_decrypt_block library/aesce.o not grep aesce_decrypt_block ${BUILTIN_SRC_PATH}/aesce.o
} }
component_test_ctr_drbg_aes_256_sha_256 () { component_test_ctr_drbg_aes_256_sha_256 () {
@ -5319,6 +5322,7 @@ component_build_arm_none_eabi_gcc () {
msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug" msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug"
${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o ${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o
${ARM_NONE_EABI_GCC_PREFIX}size -t ${BUILTIN_SRC_PATH}/*.o
} }
component_build_arm_linux_gnueabi_gcc_arm5vte () { component_build_arm_linux_gnueabi_gcc_arm5vte () {
@ -5333,6 +5337,7 @@ component_build_arm_linux_gnueabi_gcc_arm5vte () {
msg "size: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug" msg "size: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug"
${ARM_LINUX_GNUEABI_GCC_PREFIX}size -t library/*.o ${ARM_LINUX_GNUEABI_GCC_PREFIX}size -t library/*.o
${ARM_LINUX_GNUEABI_GCC_PREFIX}size -t ${BUILTIN_SRC_PATH}/*.o
} }
support_build_arm_linux_gnueabi_gcc_arm5vte () { support_build_arm_linux_gnueabi_gcc_arm5vte () {
type ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc >/dev/null 2>&1 type ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc >/dev/null 2>&1
@ -5348,6 +5353,7 @@ component_build_arm_none_eabi_gcc_arm5vte () {
msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug" msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=armv5te -O1, baremetal+debug"
${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o ${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o
${ARM_NONE_EABI_GCC_PREFIX}size -t ${BUILTIN_SRC_PATH}/*.o
} }
component_build_arm_none_eabi_gcc_m0plus () { component_build_arm_none_eabi_gcc_m0plus () {
@ -5357,6 +5363,7 @@ component_build_arm_none_eabi_gcc_m0plus () {
msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus -Os, baremetal_size" msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus -Os, baremetal_size"
${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o ${ARM_NONE_EABI_GCC_PREFIX}size -t library/*.o
${ARM_NONE_EABI_GCC_PREFIX}size -t ${BUILTIN_SRC_PATH}/*.o
for lib in library/*.a; do for lib in library/*.a; do
echo "$lib:" echo "$lib:"
${ARM_NONE_EABI_GCC_PREFIX}size -t $lib | grep TOTALS ${ARM_NONE_EABI_GCC_PREFIX}size -t $lib | grep TOTALS
@ -5370,6 +5377,7 @@ component_build_arm_none_eabi_gcc_no_udbl_division () {
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra' lib make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra' lib
echo "Checking that software 64-bit division is not required" echo "Checking that software 64-bit division is not required"
not grep __aeabi_uldiv library/*.o not grep __aeabi_uldiv library/*.o
not grep __aeabi_uldiv ${BUILTIN_SRC_PATH}/*.o
} }
component_build_arm_none_eabi_gcc_no_64bit_multiplication () { component_build_arm_none_eabi_gcc_no_64bit_multiplication () {
@ -5379,6 +5387,7 @@ component_build_arm_none_eabi_gcc_no_64bit_multiplication () {
make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -O1 -march=armv6-m -mthumb' lib make CC="${ARM_NONE_EABI_GCC_PREFIX}gcc" AR="${ARM_NONE_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -O1 -march=armv6-m -mthumb' lib
echo "Checking that software 64-bit multiplication is not required" echo "Checking that software 64-bit multiplication is not required"
not grep __aeabi_lmul library/*.o not grep __aeabi_lmul library/*.o
not grep __aeabi_lmul ${BUILTIN_SRC_PATH}/*.o
} }
component_build_arm_clang_thumb () { component_build_arm_clang_thumb () {
@ -5423,6 +5432,7 @@ component_build_armcc () {
msg "size: ARM Compiler 5" msg "size: ARM Compiler 5"
"$ARMC5_FROMELF" -z library/*.o "$ARMC5_FROMELF" -z library/*.o
"$ARMC5_FROMELF" -z ${BUILTIN_SRC_PATH}/*.o
# Compile mostly with -O1 since some Arm inline assembly is disabled for -O0. # Compile mostly with -O1 since some Arm inline assembly is disabled for -O0.