From f38ee6179ecc1ce8c951736d0a7d848a999c9050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Thu, 11 Jul 2024 09:50:45 +0100 Subject: [PATCH 01/11] Add Arm eabi default config tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/all-core.sh | 1 + tests/scripts/all-helpers.sh | 37 +++++++++++ tests/scripts/components-platform.sh | 91 ++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+) diff --git a/tests/scripts/all-core.sh b/tests/scripts/all-core.sh index ccd7e59ea1..bd0cadd865 100644 --- a/tests/scripts/all-core.sh +++ b/tests/scripts/all-core.sh @@ -227,6 +227,7 @@ pre_initialize_variables () { : ${ARMC6_BIN_DIR:=/usr/bin} : ${ARM_NONE_EABI_GCC_PREFIX:=arm-none-eabi-} : ${ARM_LINUX_GNUEABI_GCC_PREFIX:=arm-linux-gnueabi-} + : ${ARM_LINUX_GNUEABIHF_GCC_PREFIX:=arm-linux-gnueabihf-} : ${CLANG_LATEST:="clang-latest"} : ${CLANG_EARLIEST:="clang-earliest"} : ${GCC_LATEST:="gcc-latest"} diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh index 0e97f39190..9ecf63d174 100644 --- a/tests/scripts/all-helpers.sh +++ b/tests/scripts/all-helpers.sh @@ -265,3 +265,40 @@ clang_version() { echo 0 # report version 0 for "no clang" fi } + +can_run_cc_output() { + cc="$1" + result=1 + if type "$cc" >/dev/null 2>&1; then + testbin=$(mktemp) + if echo 'int main(void){return 0;}' | "$cc" -o "$testbin" -x c -; then + if "$testbin" 2>/dev/null; then + result=0 + fi + fi + rm "$testbin" + fi + return $result +} + +can_run_arm_linux_gnueabi () { + if [ -z "${can_run_arm_linux_gnueabi:-}" ]; then + if can_run_cc_output "${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc"; then + can_run_arm_linux_gnueabi=1 + else + can_run_arm_linux_gnueabi=0 + fi + fi + return $((! can_run_arm_linux_gnueabi)) +} + +can_run_arm_linux_gnueabihf () { + if [ -z "${can_run_arm_linux_gnueabihf:-}" ]; then + if can_run_cc_output "${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc"; then + can_run_arm_linux_gnueabihf=1 + else + can_run_arm_linux_gnueabihf=0 + fi + fi + return $((! can_run_arm_linux_gnueabihf)) +} diff --git a/tests/scripts/components-platform.sh b/tests/scripts/components-platform.sh index 5f26ba458f..0e0e2c66fc 100644 --- a/tests/scripts/components-platform.sh +++ b/tests/scripts/components-platform.sh @@ -341,6 +341,97 @@ support_test_mx32 () { esac } +component_test_arm_linux_gnueabi_gcc_arm5vte () { + # Mimic Debian armel port + msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, default config" + make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1' + + msg "test: main suites make, default config (out-of-box)" # ~10s + make test + + msg "selftest: make, default config (out-of-box)" # ~10s + programs/test/selftest + + msg "program demos: make, default config (out-of-box)" # ~10s + tests/scripts/run_demos.py +} + +support_test_arm_linux_gnueabi_gcc_arm5vte () { + can_run_arm_linux_gnueabi +} + +component_test_arm_linux_gnueabi_gcc_thumb_1 () { + # The hard float ABI is not implemented for Thumb 1, so use gnueabi + # Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os + msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -O0, thumb 1, default config" + make clean + make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O0 -mcpu=arm1136j-s -mthumb' + + msg "test: main suites make, default config (out-of-box)" # ~10s + make test + + msg "selftest: make, default config (out-of-box)" # ~10s + programs/test/selftest + + msg "program demos: make, default config (out-of-box)" # ~10s + tests/scripts/run_demos.py + + msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -Os, thumb 1, default config" + make clean + make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -mcpu=arm1136j-s -mthumb' + + msg "test: main suites make, default config (out-of-box)" # ~10s + make test + + msg "selftest: make, default config (out-of-box)" # ~10s + programs/test/selftest + + msg "program demos: make, default config (out-of-box)" # ~10s + tests/scripts/run_demos.py +} + +support_test_arm_linux_gnueabi_gcc_thumb_1 () { + can_run_arm_linux_gnueabi +} + +component_test_arm_linux_gnueabihf_gcc_armv7 () { + msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -O2, A32, default config" + make clean + make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2 -march=armv7-a -marm' + + msg "test: main suites make, default config (out-of-box)" # ~10s + make test + + msg "selftest: make, default config (out-of-box)" # ~10s + programs/test/selftest + + msg "program demos: make, default config (out-of-box)" # ~10s + tests/scripts/run_demos.py +} + +support_test_arm_linux_gnueabihf_gcc_armv7 () { + can_run_arm_linux_gnueabihf +} + +component_test_arm_linux_gnueabihf_gcc_thumb_2 () { + msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -Os, thumb 2, default config" + make clean + make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -march=armv7-a -mthumb' + + msg "test: main suites make, default config (out-of-box)" # ~10s + make test + + msg "selftest: make, default config (out-of-box)" # ~10s + programs/test/selftest + + msg "program demos: make, default config (out-of-box)" # ~10s + tests/scripts/run_demos.py +} + +support_test_arm_linux_gnueabihf_gcc_thumb_2 () { + can_run_arm_linux_gnueabihf +} + component_build_arm_none_eabi_gcc () { msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug" # ~ 10s scripts/config.py baremetal From 864ecda59e8050baf2aa3a5ce3d329613c227f0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Thu, 11 Jul 2024 15:52:07 +0100 Subject: [PATCH 02/11] Add AArch64 default config test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/all-core.sh | 1 + tests/scripts/all-helpers.sh | 20 ++++++++++++++++++++ tests/scripts/components-platform.sh | 19 +++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/tests/scripts/all-core.sh b/tests/scripts/all-core.sh index bd0cadd865..32c5aaab1d 100644 --- a/tests/scripts/all-core.sh +++ b/tests/scripts/all-core.sh @@ -228,6 +228,7 @@ pre_initialize_variables () { : ${ARM_NONE_EABI_GCC_PREFIX:=arm-none-eabi-} : ${ARM_LINUX_GNUEABI_GCC_PREFIX:=arm-linux-gnueabi-} : ${ARM_LINUX_GNUEABIHF_GCC_PREFIX:=arm-linux-gnueabihf-} + : ${AARCH64_LINUX_GNU_GCC_PREFIX:=aarch64-linux-gnu-} : ${CLANG_LATEST:="clang-latest"} : ${CLANG_EARLIEST:="clang-earliest"} : ${GCC_LATEST:="gcc-latest"} diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh index 9ecf63d174..06a9247324 100644 --- a/tests/scripts/all-helpers.sh +++ b/tests/scripts/all-helpers.sh @@ -266,6 +266,15 @@ clang_version() { fi } +gcc_version() { + cc="$1" + if command -v clang > /dev/null ; then + "$cc" --version | sed -En '1s/^[^ ]* \([^)]*\) ([0-9]+).*/\1/p' + else + echo 0 # report version 0 for "no clang" + fi +} + can_run_cc_output() { cc="$1" result=1 @@ -302,3 +311,14 @@ can_run_arm_linux_gnueabihf () { fi return $((! can_run_arm_linux_gnueabihf)) } + +can_run_aarch64_linux_gnu () { + if [ -z "${can_run_aarch64_linux_gnu:-}" ]; then + if can_run_cc_output "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc"; then + can_run_aarch64_linux_gnu=1 + else + can_run_aarch64_linux_gnu=0 + fi + fi + return $((! can_run_aarch64_linux_gnu)) +} diff --git a/tests/scripts/components-platform.sh b/tests/scripts/components-platform.sh index 0e0e2c66fc..dc9059066c 100644 --- a/tests/scripts/components-platform.sh +++ b/tests/scripts/components-platform.sh @@ -432,6 +432,25 @@ support_test_arm_linux_gnueabihf_gcc_thumb_2 () { can_run_arm_linux_gnueabihf } +component_test_aarch64_linux_gnu_gcc () { + msg "test: ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc -O2, default config" + make clean + make CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2' + + msg "test: main suites make, default config (out-of-box)" # ~10s + make test + + msg "selftest: make, default config (out-of-box)" # ~10s + programs/test/selftest + + msg "program demos: make, default config (out-of-box)" # ~10s + tests/scripts/run_demos.py +} + +support_test_aarch64_linux_gnu_gcc () { + [ "$(gcc_version "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc")" -ge 6 ] && can_run_aarch64_linux_gnu +} + component_build_arm_none_eabi_gcc () { msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1, baremetal+debug" # ~ 10s scripts/config.py baremetal From e4a42f536d3c356453b545a2ea373fb68a20fe1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Fri, 12 Jul 2024 14:00:29 +0100 Subject: [PATCH 03/11] Fix copypasta in gcc_version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/all-helpers.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh index 06a9247324..d7af599515 100644 --- a/tests/scripts/all-helpers.sh +++ b/tests/scripts/all-helpers.sh @@ -267,11 +267,11 @@ clang_version() { } gcc_version() { - cc="$1" - if command -v clang > /dev/null ; then - "$cc" --version | sed -En '1s/^[^ ]* \([^)]*\) ([0-9]+).*/\1/p' + gcc="$1" + if command -v "$gcc" > /dev/null ; then + "$gcc" --version | sed -En '1s/^[^ ]* \([^)]*\) ([0-9]+).*/\1/p' else - echo 0 # report version 0 for "no clang" + echo 0 # report version 0 for "no gcc" fi } From d2bd29908229f03b3d2f4d5371017225c9e3cae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Fri, 12 Jul 2024 20:33:15 +0100 Subject: [PATCH 04/11] Ignore missing temporary files during cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/all-helpers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh index d7af599515..4fc8cfa49c 100644 --- a/tests/scripts/all-helpers.sh +++ b/tests/scripts/all-helpers.sh @@ -285,7 +285,7 @@ can_run_cc_output() { result=0 fi fi - rm "$testbin" + rm -f "$testbin" fi return $result } From 1eb18d443f70bcf3fe3cf0782c570f4109d2aa89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Fri, 12 Jul 2024 20:48:08 +0100 Subject: [PATCH 05/11] Use true/false in place of integers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/all-helpers.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh index 4fc8cfa49c..d2ac10ec46 100644 --- a/tests/scripts/all-helpers.sh +++ b/tests/scripts/all-helpers.sh @@ -277,48 +277,48 @@ gcc_version() { can_run_cc_output() { cc="$1" - result=1 + result=false if type "$cc" >/dev/null 2>&1; then testbin=$(mktemp) if echo 'int main(void){return 0;}' | "$cc" -o "$testbin" -x c -; then if "$testbin" 2>/dev/null; then - result=0 + result=true fi fi rm -f "$testbin" fi - return $result + $result } can_run_arm_linux_gnueabi () { if [ -z "${can_run_arm_linux_gnueabi:-}" ]; then if can_run_cc_output "${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc"; then - can_run_arm_linux_gnueabi=1 + can_run_arm_linux_gnueabi=true else - can_run_arm_linux_gnueabi=0 + can_run_arm_linux_gnueabi=false fi fi - return $((! can_run_arm_linux_gnueabi)) + $can_run_arm_linux_gnueabi } can_run_arm_linux_gnueabihf () { if [ -z "${can_run_arm_linux_gnueabihf:-}" ]; then if can_run_cc_output "${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc"; then - can_run_arm_linux_gnueabihf=1 + can_run_arm_linux_gnueabihf=true else - can_run_arm_linux_gnueabihf=0 + can_run_arm_linux_gnueabihf=false fi fi - return $((! can_run_arm_linux_gnueabihf)) + $can_run_arm_linux_gnueabihf } can_run_aarch64_linux_gnu () { if [ -z "${can_run_aarch64_linux_gnu:-}" ]; then if can_run_cc_output "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc"; then - can_run_aarch64_linux_gnu=1 + can_run_aarch64_linux_gnu=true else - can_run_aarch64_linux_gnu=0 + can_run_aarch64_linux_gnu=false fi fi - return $((! can_run_aarch64_linux_gnu)) + $can_run_aarch64_linux_gnu } From adcc27a91e4a476fce34405a02f5d48448e37a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Fri, 12 Jul 2024 20:50:07 +0100 Subject: [PATCH 06/11] Initialize result caching variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This prevents interference from identically named environment variables. Signed-off-by: Bence Szépkúti --- tests/scripts/all-helpers.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all-helpers.sh b/tests/scripts/all-helpers.sh index d2ac10ec46..cdb3f4e16b 100644 --- a/tests/scripts/all-helpers.sh +++ b/tests/scripts/all-helpers.sh @@ -290,8 +290,9 @@ can_run_cc_output() { $result } +can_run_arm_linux_gnueabi= can_run_arm_linux_gnueabi () { - if [ -z "${can_run_arm_linux_gnueabi:-}" ]; then + if [ -z "$can_run_arm_linux_gnueabi" ]; then if can_run_cc_output "${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc"; then can_run_arm_linux_gnueabi=true else @@ -301,8 +302,9 @@ can_run_arm_linux_gnueabi () { $can_run_arm_linux_gnueabi } +can_run_arm_linux_gnueabihf= can_run_arm_linux_gnueabihf () { - if [ -z "${can_run_arm_linux_gnueabihf:-}" ]; then + if [ -z "$can_run_arm_linux_gnueabihf" ]; then if can_run_cc_output "${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc"; then can_run_arm_linux_gnueabihf=true else @@ -312,8 +314,9 @@ can_run_arm_linux_gnueabihf () { $can_run_arm_linux_gnueabihf } +can_run_aarch64_linux_gnu= can_run_aarch64_linux_gnu () { - if [ -z "${can_run_aarch64_linux_gnu:-}" ]; then + if [ -z "$can_run_aarch64_linux_gnu" ]; then if can_run_cc_output "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc"; then can_run_aarch64_linux_gnu=true else From f31a3438c22169e05957eb625d448b8a5c7ed9e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Thu, 18 Jul 2024 15:56:15 +0200 Subject: [PATCH 07/11] Update component speed estimates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The estimates are based on the most recent CI run. Signed-off-by: Bence Szépkúti --- tests/scripts/components-platform.sh | 46 ++++++++++++++-------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/tests/scripts/components-platform.sh b/tests/scripts/components-platform.sh index dc9059066c..275ce294e8 100644 --- a/tests/scripts/components-platform.sh +++ b/tests/scripts/components-platform.sh @@ -343,16 +343,16 @@ support_test_mx32 () { component_test_arm_linux_gnueabi_gcc_arm5vte () { # Mimic Debian armel port - msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, default config" + msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte, default config" # ~4m make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1' - msg "test: main suites make, default config (out-of-box)" # ~10s + msg "test: main suites make, default config (out-of-box)" # ~7m 40s make test - msg "selftest: make, default config (out-of-box)" # ~10s + msg "selftest: make, default config (out-of-box)" # ~0s programs/test/selftest - msg "program demos: make, default config (out-of-box)" # ~10s + msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py } @@ -363,30 +363,30 @@ support_test_arm_linux_gnueabi_gcc_arm5vte () { component_test_arm_linux_gnueabi_gcc_thumb_1 () { # The hard float ABI is not implemented for Thumb 1, so use gnueabi # Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os - msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -O0, thumb 1, default config" + msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -O0, thumb 1, default config" # ~2m 10s make clean make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O0 -mcpu=arm1136j-s -mthumb' - msg "test: main suites make, default config (out-of-box)" # ~10s + msg "test: main suites make, default config (out-of-box)" # ~36m make test msg "selftest: make, default config (out-of-box)" # ~10s programs/test/selftest - msg "program demos: make, default config (out-of-box)" # ~10s + msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py - msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -Os, thumb 1, default config" + msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -Os, thumb 1, default config" # ~3m 10s make clean make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -mcpu=arm1136j-s -mthumb' - msg "test: main suites make, default config (out-of-box)" # ~10s + msg "test: main suites make, default config (out-of-box)" # ~21m 10s make test - msg "selftest: make, default config (out-of-box)" # ~10s + msg "selftest: make, default config (out-of-box)" # ~2s programs/test/selftest - msg "program demos: make, default config (out-of-box)" # ~10s + msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py } @@ -395,17 +395,17 @@ support_test_arm_linux_gnueabi_gcc_thumb_1 () { } component_test_arm_linux_gnueabihf_gcc_armv7 () { - msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -O2, A32, default config" + msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -O2, A32, default config" # ~4m 30s make clean make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2 -march=armv7-a -marm' - msg "test: main suites make, default config (out-of-box)" # ~10s + msg "test: main suites make, default config (out-of-box)" # ~3m 30s make test - msg "selftest: make, default config (out-of-box)" # ~10s + msg "selftest: make, default config (out-of-box)" # ~0s programs/test/selftest - msg "program demos: make, default config (out-of-box)" # ~10s + msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py } @@ -414,17 +414,17 @@ support_test_arm_linux_gnueabihf_gcc_armv7 () { } component_test_arm_linux_gnueabihf_gcc_thumb_2 () { - msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -Os, thumb 2, default config" + msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -Os, thumb 2, default config" # ~4m make clean make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -march=armv7-a -mthumb' - msg "test: main suites make, default config (out-of-box)" # ~10s + msg "test: main suites make, default config (out-of-box)" # ~3m 40s make test - msg "selftest: make, default config (out-of-box)" # ~10s + msg "selftest: make, default config (out-of-box)" # ~0s programs/test/selftest - msg "program demos: make, default config (out-of-box)" # ~10s + msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py } @@ -433,17 +433,17 @@ support_test_arm_linux_gnueabihf_gcc_thumb_2 () { } component_test_aarch64_linux_gnu_gcc () { - msg "test: ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc -O2, default config" + msg "test: ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc -O2, default config" # ~3m 50s make clean make CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2' - msg "test: main suites make, default config (out-of-box)" # ~10s + msg "test: main suites make, default config (out-of-box)" # ~1m 50s make test - msg "selftest: make, default config (out-of-box)" # ~10s + msg "selftest: make, default config (out-of-box)" # ~0s programs/test/selftest - msg "program demos: make, default config (out-of-box)" # ~10s + msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py } From 791cb3507ac82d2484ec34cbdcf35fc9d6bd33fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Thu, 18 Jul 2024 15:58:40 +0200 Subject: [PATCH 08/11] Remove superfluous invocations of make clean MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/components-platform.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/scripts/components-platform.sh b/tests/scripts/components-platform.sh index 275ce294e8..7201cf49f6 100644 --- a/tests/scripts/components-platform.sh +++ b/tests/scripts/components-platform.sh @@ -364,7 +364,6 @@ component_test_arm_linux_gnueabi_gcc_thumb_1 () { # The hard float ABI is not implemented for Thumb 1, so use gnueabi # Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -O0, thumb 1, default config" # ~2m 10s - make clean make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O0 -mcpu=arm1136j-s -mthumb' msg "test: main suites make, default config (out-of-box)" # ~36m @@ -396,7 +395,6 @@ support_test_arm_linux_gnueabi_gcc_thumb_1 () { component_test_arm_linux_gnueabihf_gcc_armv7 () { msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -O2, A32, default config" # ~4m 30s - make clean make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2 -march=armv7-a -marm' msg "test: main suites make, default config (out-of-box)" # ~3m 30s @@ -415,7 +413,6 @@ support_test_arm_linux_gnueabihf_gcc_armv7 () { component_test_arm_linux_gnueabihf_gcc_thumb_2 () { msg "test: ${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc -Os, thumb 2, default config" # ~4m - make clean make CC="${ARM_LINUX_GNUEABIHF_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -march=armv7-a -mthumb' msg "test: main suites make, default config (out-of-box)" # ~3m 40s @@ -434,7 +431,6 @@ support_test_arm_linux_gnueabihf_gcc_thumb_2 () { component_test_aarch64_linux_gnu_gcc () { msg "test: ${AARCH64_LINUX_GNU_GCC_PREFIX}gcc -O2, default config" # ~3m 50s - make clean make CC="${AARCH64_LINUX_GNU_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O2' msg "test: main suites make, default config (out-of-box)" # ~1m 50s From dc4b7a803214ef8ba905720d06c3611f68a2da0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Thu, 18 Jul 2024 16:08:22 +0200 Subject: [PATCH 09/11] Split up the Thumb-1 test component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Thumb-1 tests are by far the slowest, so split the -O0 and -Os tests into their own components. Signed-off-by: Bence Szépkúti --- tests/scripts/components-platform.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/scripts/components-platform.sh b/tests/scripts/components-platform.sh index 7201cf49f6..42f41f5f00 100644 --- a/tests/scripts/components-platform.sh +++ b/tests/scripts/components-platform.sh @@ -360,9 +360,9 @@ support_test_arm_linux_gnueabi_gcc_arm5vte () { can_run_arm_linux_gnueabi } -component_test_arm_linux_gnueabi_gcc_thumb_1 () { - # The hard float ABI is not implemented for Thumb 1, so use gnueabi - # Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os +# The hard float ABI is not implemented for Thumb 1, so use gnueabi +# Some Thumb 1 asm is sensitive to optimisation level, so test both -O0 and -Os +component_test_arm_linux_gnueabi_gcc_thumb_1_opt_0 () { msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -O0, thumb 1, default config" # ~2m 10s make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -O0 -mcpu=arm1136j-s -mthumb' @@ -374,9 +374,14 @@ component_test_arm_linux_gnueabi_gcc_thumb_1 () { msg "program demos: make, default config (out-of-box)" # ~0s tests/scripts/run_demos.py +} +support_test_arm_linux_gnueabi_gcc_thumb_1_opt_0 () { + can_run_arm_linux_gnueabi +} + +component_test_arm_linux_gnueabi_gcc_thumb_1_opt_s () { msg "test: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -Os, thumb 1, default config" # ~3m 10s - make clean make CC="${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc" CFLAGS='-std=c99 -Werror -Wextra -Os -mcpu=arm1136j-s -mthumb' msg "test: main suites make, default config (out-of-box)" # ~21m 10s @@ -389,7 +394,7 @@ component_test_arm_linux_gnueabi_gcc_thumb_1 () { tests/scripts/run_demos.py } -support_test_arm_linux_gnueabi_gcc_thumb_1 () { +support_test_arm_linux_gnueabi_gcc_thumb_1_opt_s () { can_run_arm_linux_gnueabi } From 827c89ba0786c9e53058ad10a0f8b1bdaaa809f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Sun, 27 Oct 2024 22:31:13 +0100 Subject: [PATCH 10/11] Clarify GCC version requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/components-platform.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/components-platform.sh b/tests/scripts/components-platform.sh index 42f41f5f00..8a94d09c78 100644 --- a/tests/scripts/components-platform.sh +++ b/tests/scripts/components-platform.sh @@ -449,6 +449,7 @@ component_test_aarch64_linux_gnu_gcc () { } support_test_aarch64_linux_gnu_gcc () { + # Minimum version of GCC for MBEDTLS_AESCE_C is 6.0 [ "$(gcc_version "${AARCH64_LINUX_GNU_GCC_PREFIX}gcc")" -ge 6 ] && can_run_aarch64_linux_gnu } From 2a45f0b952c2ee26f476df28f4394ff1ced2055d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Sun, 27 Oct 2024 22:46:48 +0100 Subject: [PATCH 11/11] Add override arguments for new gcc targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- tests/scripts/all-core.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/scripts/all-core.sh b/tests/scripts/all-core.sh index 32c5aaab1d..3b5a053073 100644 --- a/tests/scripts/all-core.sh +++ b/tests/scripts/all-core.sh @@ -325,6 +325,12 @@ General options: --arm-linux-gnueabi-gcc-prefix= Prefix for a cross-compiler for arm-linux-gnueabi (default: "${ARM_LINUX_GNUEABI_GCC_PREFIX}") + --arm-linux-gnueabihf-gcc-prefix= + Prefix for a cross-compiler for arm-linux-gnueabihf + (default: "${ARM_LINUX_GNUEABIHF_GCC_PREFIX}") + --aarch64-linux-gnu-gcc-prefix= + Prefix for a cross-compiler for aarch64-linux-gnu + (default: "${AARCH64_LINUX_GNU_GCC_PREFIX}") --armcc Run ARM Compiler builds (on by default). --restore First clean up the build tree, restoring backed up files. Do not run any components unless they are @@ -507,6 +513,8 @@ pre_parse_command_line () { --append-outcome) append_outcome=1;; --arm-none-eabi-gcc-prefix) shift; ARM_NONE_EABI_GCC_PREFIX="$1";; --arm-linux-gnueabi-gcc-prefix) shift; ARM_LINUX_GNUEABI_GCC_PREFIX="$1";; + --arm-linux-gnueabihf-gcc-prefix) shift; ARM_LINUX_GNUEABIHF_GCC_PREFIX="$1";; + --aarch64-linux-gnu-gcc-prefix) shift; AARCH64_LINUX_GNU_GCC_PREFIX="$1";; --armcc) no_armcc=;; --armc5-bin-dir) shift; ARMC5_BIN_DIR="$1";; --armc6-bin-dir) shift; ARMC6_BIN_DIR="$1";;