From 969988718524f88e9f7e9ab955ed6eba38ae6e12 Mon Sep 17 00:00:00 2001 From: Simon Butcher Date: Fri, 22 Nov 2019 15:09:39 +0000 Subject: [PATCH] Add Makefile option to exclude TinyCrypt files Added an additional Makefile option of 'TINYCRYPT_BUILD' to exclude the TinyCrypt source files from the build. This allows some tests to exclude those files as and when necessary. Specifically this includes in all.sh the test 'component_build_arm_none_eabi_gcc_no_64bit_multiplication' which was failing as 64bit cannot be disabled in TinyCrypt, and check-names.sh as TinyCrypt obviously does not conform to Mbed TLS naming conventions. --- library/Makefile | 14 ++++++++++++-- tests/scripts/all.sh | 2 +- tests/scripts/list-symbols.sh | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/library/Makefile b/library/Makefile index 4154c6add..96a9d6031 100644 --- a/library/Makefile +++ b/library/Makefile @@ -99,8 +99,7 @@ OBJS_CRYPTO= aes.o aesni.o arc4.o \ ripemd160.o rsa_internal.o rsa.o \ sha1.o sha256.o sha512.o \ threading.o timing.o version.o \ - version_features.o xtea.o \ - ecc.o ecc_dh.o ecc_dsa.o + version_features.o xtea.o OBJS_X509= certs.o pkcs11.o x509.o @@ -110,6 +109,17 @@ OBJS_TLS= debug.o net_sockets.o \ ssl_srv.o ssl_ticket.o \ ssl_tls.o +# Default to always build TinyCrypt +ifndef TINYCRYPT_BUILD +TINYCRYPT_BUILD=1 +endif + +ifeq ($(TINYCRYPT_BUILD),1) +# Add TinyCrypt to the targets and Makefile path +VPATH = ../tinycrypt +OBJS_CRYPTO += ecc.o ecc_dh.o ecc_dsa.o +endif + .SILENT: .PHONY: all static shared clean diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 02f96a9ff..42ef32d0d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1491,7 +1491,7 @@ component_build_arm_none_eabi_gcc_no_64bit_multiplication () { msg "build: arm-none-eabi-gcc MBEDTLS_NO_64BIT_MULTIPLICATION, make" # ~ 10s scripts/config.pl baremetal scripts/config.pl set MBEDTLS_NO_64BIT_MULTIPLICATION - make CC=arm-none-eabi-gcc AR=arm-none-eabi-ar LD=arm-none-eabi-ld CFLAGS='-Werror -O1 -march=armv6-m -mthumb' lib + make TINYCRYPT_BUILD=0 CC=arm-none-eabi-gcc AR=arm-none-eabi-ar LD=arm-none-eabi-ld CFLAGS='-Werror -O1 -march=armv6-m -mthumb' lib echo "Checking that software 64-bit multiplication is not required" if_build_succeeded not grep __aeabi_lmul library/*.o } diff --git a/tests/scripts/list-symbols.sh b/tests/scripts/list-symbols.sh index 930722c1b..12b3281e7 100755 --- a/tests/scripts/list-symbols.sh +++ b/tests/scripts/list-symbols.sh @@ -16,7 +16,7 @@ cp include/mbedtls/config.h include/mbedtls/config.h.bak scripts/config.pl full make clean make_ret= -CFLAGS=-fno-asynchronous-unwind-tables make lib \ +CFLAGS=-fno-asynchronous-unwind-tables TINYCRYPT_BUILD=0 make lib \ >list-symbols.make.log 2>&1 || { make_ret=$?