From 86aa780e5a1420be0788cab523455fe5ebfa3a24 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.sh | 129 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index fcc20f4d80..086d318e41 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -166,6 +166,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"} @@ -795,6 +796,43 @@ pre_check_tools () { "$@" scripts/output_env.sh } +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)) +} + ################################################################ @@ -3228,6 +3266,97 @@ component_test_no_strings () { make test } +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 915fa3e6c7afe737b54aa180b64a8d028788259b 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.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 086d318e41..df2024b997 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -167,6 +167,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"} @@ -796,6 +797,15 @@ pre_check_tools () { "$@" scripts/output_env.sh } +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 @@ -833,6 +843,17 @@ can_run_arm_linux_gnueabihf () { 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)) +} + ################################################################ @@ -3357,6 +3378,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 26822ab1b6c9f44d8e1cd3bfdb3753d95e207251 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.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index df2024b997..a162908135 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -798,11 +798,11 @@ pre_check_tools () { } 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 08c14d1412c4fd82de228147475d4ce794acd3af 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.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a162908135..51705e1522 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -816,7 +816,7 @@ can_run_cc_output() { result=0 fi fi - rm "$testbin" + rm -f "$testbin" fi return $result } From 63a10d07268f25c74d6d3ac7205313b7fd2db922 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.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 51705e1522..4a5502f959 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -808,50 +808,50 @@ 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 a56b61c6ee758f2c542c8098c4cd8b526a2d2b59 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.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 4a5502f959..8c29e2dfc3 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -821,8 +821,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 @@ -832,8 +833,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 @@ -843,8 +845,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 f92112d7be8d7b8f87c04961f07d8df3f8a75543 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/all.sh | 46 ++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 8c29e2dfc3..fa08babb43 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3292,16 +3292,16 @@ component_test_no_strings () { 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 } @@ -3312,30 +3312,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 } @@ -3344,17 +3344,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 } @@ -3363,17 +3363,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 } @@ -3382,17 +3382,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 73d8640bd39a31ebacad613e2675631bce2d71fa 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/all.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index fa08babb43..f00b1b3094 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3313,7 +3313,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 @@ -3345,7 +3344,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 @@ -3364,7 +3362,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 @@ -3383,7 +3380,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 478730eed2e575d87cd96040856de8267a0ca7e5 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/all.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f00b1b3094..88b3fa058d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3309,9 +3309,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' @@ -3323,9 +3323,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 @@ -3338,7 +3343,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 b14dd763c30b4f4630e1164e9def40de08d6eca6 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/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 88b3fa058d..b6acc9bc2f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3398,6 +3398,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 61da0ddb0754caa3cc1e6d53d825a1ae8d53381b 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.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index b6acc9bc2f..df24b622d9 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -257,6 +257,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 @@ -425,6 +431,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";;