From e6605f9185c6c6d345123023a1f790161784f557 Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Tue, 8 Apr 2025 14:26:29 +0100 Subject: [PATCH 1/8] Adjust build scripts to accommodate public header move Signed-off-by: Felix Conway --- programs/test/generate_cpp_dummy_build.sh | 4 +++ tests/Makefile | 31 ++++------------- tests/libtestdriver1_rewrite.pl | 41 +++++++++++++++++++++++ tf-psa-crypto | 2 +- 4 files changed, 52 insertions(+), 26 deletions(-) create mode 100644 tests/libtestdriver1_rewrite.pl diff --git a/programs/test/generate_cpp_dummy_build.sh b/programs/test/generate_cpp_dummy_build.sh index d27c7ae124..05bdd34c94 100755 --- a/programs/test/generate_cpp_dummy_build.sh +++ b/programs/test/generate_cpp_dummy_build.sh @@ -52,6 +52,10 @@ EOF esac done + for header in tf-psa-crypto/include/mbedtls/*.h; do + echo "#include \"${header#tf-psa-crypto/include/}\"" + done + for header in tf-psa-crypto/include/psa/*.h; do case ${header#tf-psa-crypto/include/} in psa/crypto_config.h) :;; # not meant for direct inclusion diff --git a/tests/Makefile b/tests/Makefile index 87a6ca1777..783f766438 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -324,25 +324,6 @@ test: check perl -p -e 's/^(# *(define|ifndef) +\w+_)H\b/$${1}ALT_H/' $< >$@ # Generate test library - -# Perl code that is executed to transform each original line from a library -# source file into the corresponding line in the test driver copy of the -# library. Add a LIBTESTDRIVER1_/libtestdriver1_ to mbedtls_xxx and psa_xxx -# symbols. -define libtestdriver1_rewrite := - s!^(\s*#\s*include\s*[\"<])mbedtls/build_info.h!$${1}libtestdriver1/include/mbedtls/build_info.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/mbedtls_config.h!$${1}libtestdriver1/include/mbedtls/mbedtls_config.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_x509.h!$${1}libtestdriver1/include/mbedtls/config_adjust_x509.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_ssl.h!$${1}libtestdriver1/include/mbedtls/config_adjust_ssl.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/check_config.h!$${1}libtestdriver1/include/mbedtls/check_config.h!; \ - s!^(\s*#\s*include\s*[\"<])mbedtls/!$${1}libtestdriver1/tf-psa-crypto/drivers/builtin/include/mbedtls/!; \ - s!^(\s*#\s*include\s*[\"<])psa/!$${1}libtestdriver1/tf-psa-crypto/include/psa/!; \ - s!^(\s*#\s*include\s*[\"<])tf-psa-crypto/!$${1}libtestdriver1/tf-psa-crypto/include/tf-psa-crypto/!; \ - next if /^\s*#\s*include/; \ - s/\b(?=MBEDTLS_|PSA_|TF_PSA_CRYPTO_)/LIBTESTDRIVER1_/g; \ - s/\b(?=mbedtls_|psa_|tf_psa_crypto_)/libtestdriver1_/g; -endef - libtestdriver1.a: rm -Rf ./libtestdriver1 mkdir ./libtestdriver1 @@ -384,12 +365,12 @@ libtestdriver1.a: # Prefix MBEDTLS_* PSA_* symbols with LIBTESTDRIVER1_ as well as # mbedtls_* psa_* symbols with libtestdriver1_ to avoid symbol clash # when this test driver library is linked with the Mbed TLS library. - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/library/*.[ch] - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/include/*/*.h - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/core/*.[ch] - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/include/*/*.h - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h - perl -pi -e '$(libtestdriver1_rewrite)' ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch] + perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/library/*.[ch] + perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/include/*/*.h + perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/core/*.[ch] + perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/include/*/*.h + perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h + perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch] $(MAKE) -C ./libtestdriver1/library CFLAGS="-I../../ $(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a cp ./libtestdriver1/library/libmbedcrypto.a ../library/libtestdriver1.a diff --git a/tests/libtestdriver1_rewrite.pl b/tests/libtestdriver1_rewrite.pl new file mode 100644 index 0000000000..c9790bbaf9 --- /dev/null +++ b/tests/libtestdriver1_rewrite.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +# Perl code that is executed to transform each original line from a library +# source file into the corresponding line in the test driver copy of the +# library. Add a LIBTESTDRIVER1_/libtestdriver1_ to mbedtls_xxx and psa_xxx +# symbols. + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +use warnings; +use File::Basename; + +my @public_files = map { basename($_) } glob("../tf-psa-crypto/include/mbedtls/*.h"); + +my $public_files_regex = join('|', map { quotemeta($_) } @public_files); + +while (<>) { + s!^(\s*#\s*include\s*[\"<])mbedtls/build_info.h!${1}libtestdriver1/include/mbedtls/build_info.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/mbedtls_config.h!${1}libtestdriver1/include/mbedtls/mbedtls_config.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_x509.h!${1}libtestdriver1/include/mbedtls/config_adjust_x509.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/config_adjust_ssl.h!${1}libtestdriver1/include/mbedtls/config_adjust_ssl.h!; + s!^(\s*#\s*include\s*[\"<])mbedtls/check_config.h!${1}libtestdriver1/include/mbedtls/check_config.h!; + # Files in include/mbedtls and drivers/builtin/include/mbedtls are both + # included in files via #include mbedtls/.h, so when expanding to the + # full path make sure that files in include/mbedtls are not expanded + # to driver/builtin/include/mbedtls. + if ( $public_files_regex ) { + s!^(\s*#\s*include\s*[\"<])mbedtls/($public_files_regex)!${1}libtestdriver1/tf-psa-crypto/include/mbedtls/${2}!; + } + s!^(\s*#\s*include\s*[\"<])mbedtls/!${1}libtestdriver1/tf-psa-crypto/drivers/builtin/include/mbedtls/!; + s!^(\s*#\s*include\s*[\"<])psa/!${1}libtestdriver1/tf-psa-crypto/include/psa/!; + s!^(\s*#\s*include\s*[\"<])tf-psa-crypto/!${1}libtestdriver1/tf-psa-crypto/include/tf-psa-crypto/!; + if (/^\s*#\s*include/) { + print; + next; + } + s/\b(?=MBEDTLS_|PSA_|TF_PSA_CRYPTO_)/LIBTESTDRIVER1_/g; + s/\b(?=mbedtls_|psa_|tf_psa_crypto_)/libtestdriver1_/g; + print; +} diff --git a/tf-psa-crypto b/tf-psa-crypto index 4a9f29b05c..d653d1b02d 160000 --- a/tf-psa-crypto +++ b/tf-psa-crypto @@ -1 +1 @@ -Subproject commit 4a9f29b05c661bd874c75d80339fcce00adea4e0 +Subproject commit d653d1b02d71d1579bc6e6281a2f9ef814eea3e9 From 1ef121c9b9d61217e0f2b272559c63b700e1a9f9 Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Wed, 9 Apr 2025 09:51:13 +0100 Subject: [PATCH 2/8] Move script and update shebang to fix CI Signed-off-by: Felix Conway --- tests/Makefile | 12 ++++++------ tests/{ => scripts}/libtestdriver1_rewrite.pl | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) rename tests/{ => scripts}/libtestdriver1_rewrite.pl (99%) diff --git a/tests/Makefile b/tests/Makefile index 783f766438..45231cd9a5 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -365,12 +365,12 @@ libtestdriver1.a: # Prefix MBEDTLS_* PSA_* symbols with LIBTESTDRIVER1_ as well as # mbedtls_* psa_* symbols with libtestdriver1_ to avoid symbol clash # when this test driver library is linked with the Mbed TLS library. - perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/library/*.[ch] - perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/include/*/*.h - perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/core/*.[ch] - perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/include/*/*.h - perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h - perl -i ./libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch] + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/library/*.[ch] + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/include/*/*.h + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/core/*.[ch] + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/include/*/*.h + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h + perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch] $(MAKE) -C ./libtestdriver1/library CFLAGS="-I../../ $(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a cp ./libtestdriver1/library/libmbedcrypto.a ../library/libtestdriver1.a diff --git a/tests/libtestdriver1_rewrite.pl b/tests/scripts/libtestdriver1_rewrite.pl similarity index 99% rename from tests/libtestdriver1_rewrite.pl rename to tests/scripts/libtestdriver1_rewrite.pl index c9790bbaf9..202575d855 100644 --- a/tests/libtestdriver1_rewrite.pl +++ b/tests/scripts/libtestdriver1_rewrite.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl # Perl code that is executed to transform each original line from a library # source file into the corresponding line in the test driver copy of the From 52bed3fcef6a707db5a42f31d72014c80836c84c Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Wed, 9 Apr 2025 11:35:29 +0100 Subject: [PATCH 3/8] Update tf-psa-crypto & framework pointers Signed-off-by: Felix Conway --- framework | 2 +- tf-psa-crypto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework b/framework index a39ba59344..bf36088bd3 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit a39ba59344fd4f1d0ee267ca414b9420d5dca9f5 +Subproject commit bf36088bd373fe5dbe56fb5d05d25af35a56a175 diff --git a/tf-psa-crypto b/tf-psa-crypto index d653d1b02d..ced1c6df90 160000 --- a/tf-psa-crypto +++ b/tf-psa-crypto @@ -1 +1 @@ -Subproject commit d653d1b02d71d1579bc6e6281a2f9ef814eea3e9 +Subproject commit ced1c6df90b49ef39849d9cb8a0c540fb672a478 From 6fedc4e18e9a8efb08654d3c6b98f6bf847d4d04 Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Wed, 9 Apr 2025 13:50:43 +0100 Subject: [PATCH 4/8] Add executable permissions to new perl file Signed-off-by: Felix Conway --- tests/scripts/libtestdriver1_rewrite.pl | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tests/scripts/libtestdriver1_rewrite.pl diff --git a/tests/scripts/libtestdriver1_rewrite.pl b/tests/scripts/libtestdriver1_rewrite.pl old mode 100644 new mode 100755 From 819bb4ae25b0dafc777ad3a8552f6fbd287482aa Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Wed, 16 Apr 2025 14:15:04 +0100 Subject: [PATCH 5/8] Reset crypto pointer to development Signed-off-by: Felix Conway --- tf-psa-crypto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf-psa-crypto b/tf-psa-crypto index ced1c6df90..0ed1f9c13f 160000 --- a/tf-psa-crypto +++ b/tf-psa-crypto @@ -1 +1 @@ -Subproject commit ced1c6df90b49ef39849d9cb8a0c540fb672a478 +Subproject commit 0ed1f9c13f3febee248c2a587b2e9b3055c8b3eb From dc6f6ec354784985e7828cd1aa13e9f081d48268 Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Wed, 16 Apr 2025 14:16:24 +0100 Subject: [PATCH 6/8] Update framework pointer to merge commit Signed-off-by: Felix Conway --- framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework b/framework index bf36088bd3..9e612a462b 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit bf36088bd373fe5dbe56fb5d05d25af35a56a175 +Subproject commit 9e612a462b77ddbc7c91e1331f4788cfc8863d69 From 61bd2729b2ef73b973dd8338822e6a3b01e4ba0a Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Thu, 17 Apr 2025 10:24:20 +0100 Subject: [PATCH 7/8] Check include/mbedtls exists before including from it Signed-off-by: Felix Conway --- programs/test/generate_cpp_dummy_build.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/programs/test/generate_cpp_dummy_build.sh b/programs/test/generate_cpp_dummy_build.sh index 05bdd34c94..7b4f520aca 100755 --- a/programs/test/generate_cpp_dummy_build.sh +++ b/programs/test/generate_cpp_dummy_build.sh @@ -52,9 +52,11 @@ EOF esac done - for header in tf-psa-crypto/include/mbedtls/*.h; do - echo "#include \"${header#tf-psa-crypto/include/}\"" - done + if [ -d "tf-psa-crypto/include/mbedtls" ]; then + for header in tf-psa-crypto/include/mbedtls/*.h; do + echo "#include \"${header#tf-psa-crypto/include/}\"" + done + fi for header in tf-psa-crypto/include/psa/*.h; do case ${header#tf-psa-crypto/include/} in From 0d4fca245600657358b7620359f987091c96979c Mon Sep 17 00:00:00 2001 From: Felix Conway Date: Tue, 22 Apr 2025 09:25:58 +0100 Subject: [PATCH 8/8] Update submodule pointers Signed-off-by: Felix Conway --- framework | 2 +- tf-psa-crypto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework b/framework index 9e612a462b..4a841219ff 160000 --- a/framework +++ b/framework @@ -1 +1 @@ -Subproject commit 9e612a462b77ddbc7c91e1331f4788cfc8863d69 +Subproject commit 4a841219ff9440f6a723e9e9612a33c44ad1e2f9 diff --git a/tf-psa-crypto b/tf-psa-crypto index 0ed1f9c13f..f936d86b25 160000 --- a/tf-psa-crypto +++ b/tf-psa-crypto @@ -1 +1 @@ -Subproject commit 0ed1f9c13f3febee248c2a587b2e9b3055c8b3eb +Subproject commit f936d86b2587eb4a961cac5b3b95b949ee056ee6