Use variables for selecting compilers

The latest and earliest clang/GCC compilers are now used through
variables instead of symlinks and also the all.sh script is updated
to support options for overriding the default values.

Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
This commit is contained in:
Gowtham Suresh Kumar 2023-07-28 17:04:47 +01:00
parent 1e829a403f
commit 6f1977bf20
2 changed files with 40 additions and 13 deletions

View file

@ -105,19 +105,35 @@ echo
print_version "gcc" "--version" "" "head -n 1" print_version "gcc" "--version" "" "head -n 1"
echo echo
print_version "gcc-earliest" "--version" "" "head -n 1" if [ -n "${GCC_EARLIEST+set}" ]; then
print_version "${GCC_EARLIEST}" "--version" "" "head -n 1"
else
echo " GCC_EARLIEST : Not configured."
fi
echo echo
print_version "gcc-latest" "--version" "" "head -n 1" if [ -n "${GCC_LATEST+set}" ]; then
print_version "${GCC_LATEST}" "--version" "" "head -n 1"
else
echo " GCC_LATEST : Not configured."
fi
echo echo
print_version "clang" "--version" "" "head -n 2" print_version "clang" "--version" "" "head -n 2"
echo echo
print_version "clang-earliest" "--version" "" "head -n 2" if [ -n "${CLANG_EARLIEST+set}" ]; then
print_version "${CLANG_EARLIEST}" "--version" "" "head -n 2"
else
echo " CLANG_EARLIEST : Not configured."
fi
echo echo
print_version "clang-latest" "--version" "" "head -n 2" if [ -n "${CLANG_LATEST+set}" ]; then
print_version "${CLANG_LATEST}" "--version" "" "head -n 2"
else
echo " CLANG_LATEST : Not configured."
fi
echo echo
print_version "ldd" "--version" "" "head -n 1" print_version "ldd" "--version" "" "head -n 1"

View file

@ -176,7 +176,10 @@ pre_initialize_variables () {
: ${ARMC6_BIN_DIR:=/usr/bin} : ${ARMC6_BIN_DIR:=/usr/bin}
: ${ARM_NONE_EABI_GCC_PREFIX:=arm-none-eabi-} : ${ARM_NONE_EABI_GCC_PREFIX:=arm-none-eabi-}
: ${ARM_LINUX_GNUEABI_GCC_PREFIX:=arm-linux-gnueabi-} : ${ARM_LINUX_GNUEABI_GCC_PREFIX:=arm-linux-gnueabi-}
: ${CLANG_LATEST:="clang-16"}
: ${CLANG_EARLIEST:="clang-3.5"}
: ${GCC_LATEST:="gcc-12"}
: ${GCC_EARLIEST:="gcc-4.7"}
# if MAKEFLAGS is not set add the -j option to speed up invocations of make # if MAKEFLAGS is not set add the -j option to speed up invocations of make
if [ -z "${MAKEFLAGS+set}" ]; then if [ -z "${MAKEFLAGS+set}" ]; then
export MAKEFLAGS="-j$(all_sh_nproc)" export MAKEFLAGS="-j$(all_sh_nproc)"
@ -273,6 +276,10 @@ General options:
Tool path options: Tool path options:
--armc5-bin-dir=<ARMC5_bin_dir_path> ARM Compiler 5 bin directory. --armc5-bin-dir=<ARMC5_bin_dir_path> ARM Compiler 5 bin directory.
--armc6-bin-dir=<ARMC6_bin_dir_path> ARM Compiler 6 bin directory. --armc6-bin-dir=<ARMC6_bin_dir_path> ARM Compiler 6 bin directory.
--clang-earliest=<Clang_earliest_path> Earliest version of clang available
--clang-latest=<Clang_latest_path> Latest version of clang available
--gcc-earliest=<GCC_earliest_path> Earliest version of GCC available
--gcc-latest=<GCC_latest_path> Latest version of GCC available
--gnutls-cli=<GnuTLS_cli_path> GnuTLS client executable to use for most tests. --gnutls-cli=<GnuTLS_cli_path> GnuTLS client executable to use for most tests.
--gnutls-serv=<GnuTLS_serv_path> GnuTLS server executable to use for most tests. --gnutls-serv=<GnuTLS_serv_path> GnuTLS server executable to use for most tests.
--gnutls-legacy-cli=<GnuTLS_cli_path> GnuTLS client executable to use for legacy tests. --gnutls-legacy-cli=<GnuTLS_cli_path> GnuTLS client executable to use for legacy tests.
@ -439,9 +446,13 @@ pre_parse_command_line () {
--armcc) no_armcc=;; --armcc) no_armcc=;;
--armc5-bin-dir) shift; ;; # assignment to ARMC5_BIN_DIR done in pre_parse_command_line_for_dirs --armc5-bin-dir) shift; ;; # assignment to ARMC5_BIN_DIR done in pre_parse_command_line_for_dirs
--armc6-bin-dir) shift; ;; # assignment to ARMC6_BIN_DIR done in pre_parse_command_line_for_dirs --armc6-bin-dir) shift; ;; # assignment to ARMC6_BIN_DIR done in pre_parse_command_line_for_dirs
--clang-earliest) shift; CLANG_EARLIEST="$1";;
--clang-latest) shift; CLANG_LATEST="$1";;
--error-test) error_test=$((error_test + 1));; --error-test) error_test=$((error_test + 1));;
--except) all_except=1;; --except) all_except=1;;
--force|-f) FORCE=1;; --force|-f) FORCE=1;;
--gcc-earliest) shift; GCC_EARLIEST="$1";;
--gcc-latest) shift; GCC_LATEST="$1";;
--gnutls-cli) shift; GNUTLS_CLI="$1";; --gnutls-cli) shift; GNUTLS_CLI="$1";;
--gnutls-legacy-cli) shift; GNUTLS_LEGACY_CLI="$1";; --gnutls-legacy-cli) shift; GNUTLS_LEGACY_CLI="$1";;
--gnutls-legacy-serv) shift; GNUTLS_LEGACY_SERV="$1";; --gnutls-legacy-serv) shift; GNUTLS_LEGACY_SERV="$1";;
@ -4015,34 +4026,34 @@ fi
component_test_clang_latest_opt () { component_test_clang_latest_opt () {
scripts/config.py full scripts/config.py full
test_build_opt 'full config' clang-latest -O0 -Os -O2 test_build_opt 'full config' "$CLANG_LATEST" -O0 -Os -O2
} }
support_test_clang_latest_opt () { support_test_clang_latest_opt () {
type clang-latest >/dev/null 2>/dev/null type "$CLANG_LATEST" >/dev/null 2>/dev/null
} }
component_test_clang_earliest_opt () { component_test_clang_earliest_opt () {
scripts/config.py full scripts/config.py full
test_build_opt 'full config' clang-earliest -O0 test_build_opt 'full config' "$CLANG_EARLIEST" -O0
} }
support_test_clang_earliest_opt () { support_test_clang_earliest_opt () {
type clang-earliest >/dev/null 2>/dev/null type "$CLANG_EARLIEST" >/dev/null 2>/dev/null
} }
component_test_gcc_latest_opt () { component_test_gcc_latest_opt () {
scripts/config.py full scripts/config.py full
test_build_opt 'full config' gcc-latest -O0 -Os -O2 test_build_opt 'full config' "$GCC_LATEST" -O0 -Os -O2
} }
support_test_gcc_latest_opt () { support_test_gcc_latest_opt () {
type gcc-latest >/dev/null 2>/dev/null type "$GCC_LATEST" >/dev/null 2>/dev/null
} }
component_test_gcc_earliest_opt () { component_test_gcc_earliest_opt () {
scripts/config.py full scripts/config.py full
test_build_opt 'full config' gcc-earliest -O0 test_build_opt 'full config' "$GCC_EARLIEST" -O0
} }
support_test_gcc_earliest_opt () { support_test_gcc_earliest_opt () {
type gcc-earliest >/dev/null 2>/dev/null type "$GCC_EARLIEST" >/dev/null 2>/dev/null
} }
component_build_mbedtls_config_file () { component_build_mbedtls_config_file () {