mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-30 22:43:08 +03:00
Merge pull request #8670 from daverodgman/default-compiler-all-2.28
Backport CI perf: Use clang by default in all.sh
This commit is contained in:
@ -350,4 +350,31 @@ static inline const unsigned char *mbedtls_buffer_offset_const(
|
|||||||
#define MBEDTLS_STATIC_ASSERT(expr, msg)
|
#define MBEDTLS_STATIC_ASSERT(expr, msg)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Suppress compiler warnings for unused functions and variables. */
|
||||||
|
#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__has_attribute)
|
||||||
|
# if __has_attribute(unused)
|
||||||
|
# define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__GNUC__)
|
||||||
|
# define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
|
||||||
|
#endif
|
||||||
|
#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__IAR_SYSTEMS_ICC__) && defined(__VER__)
|
||||||
|
/* IAR does support __attribute__((unused)), but only if the -e flag (extended language support)
|
||||||
|
* is given; the pragma always works.
|
||||||
|
* Unfortunately the pragma affects the rest of the file where it is used, but this is harmless.
|
||||||
|
* Check for version 5.2 or later - this pragma may be supported by earlier versions, but I wasn't
|
||||||
|
* able to find documentation).
|
||||||
|
*/
|
||||||
|
# if (__VER__ >= 5020000)
|
||||||
|
# define MBEDTLS_MAYBE_UNUSED _Pragma("diag_suppress=Pe177")
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#if !defined(MBEDTLS_MAYBE_UNUSED) && defined(_MSC_VER)
|
||||||
|
# define MBEDTLS_MAYBE_UNUSED __pragma(warning(suppress:4189))
|
||||||
|
#endif
|
||||||
|
#if !defined(MBEDTLS_MAYBE_UNUSED)
|
||||||
|
# define MBEDTLS_MAYBE_UNUSED
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* MBEDTLS_LIBRARY_COMMON_H */
|
#endif /* MBEDTLS_LIBRARY_COMMON_H */
|
||||||
|
@ -174,6 +174,10 @@ pre_initialize_variables () {
|
|||||||
if [ -z "${MAKEFLAGS+set}" ]; then
|
if [ -z "${MAKEFLAGS+set}" ]; then
|
||||||
export MAKEFLAGS="-j$(all_sh_nproc)"
|
export MAKEFLAGS="-j$(all_sh_nproc)"
|
||||||
fi
|
fi
|
||||||
|
# if CC is not set, use clang by default (if present) to improve build times
|
||||||
|
if [ -z "${CC+set}" ] && (type clang > /dev/null 2>&1); then
|
||||||
|
export CC="clang"
|
||||||
|
fi
|
||||||
|
|
||||||
# Include more verbose output for failing tests run by CMake or make
|
# Include more verbose output for failing tests run by CMake or make
|
||||||
export CTEST_OUTPUT_ON_FAILURE=1
|
export CTEST_OUTPUT_ON_FAILURE=1
|
||||||
@ -1666,7 +1670,7 @@ component_test_default_no_deprecated () {
|
|||||||
# configuration leaves something consistent.
|
# configuration leaves something consistent.
|
||||||
msg "build: make, default + MBEDTLS_DEPRECATED_REMOVED" # ~ 30s
|
msg "build: make, default + MBEDTLS_DEPRECATED_REMOVED" # ~ 30s
|
||||||
scripts/config.py set MBEDTLS_DEPRECATED_REMOVED
|
scripts/config.py set MBEDTLS_DEPRECATED_REMOVED
|
||||||
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
|
make CFLAGS='-O -Werror -Wall -Wextra'
|
||||||
|
|
||||||
msg "test: make, default + MBEDTLS_DEPRECATED_REMOVED" # ~ 5s
|
msg "test: make, default + MBEDTLS_DEPRECATED_REMOVED" # ~ 5s
|
||||||
make test
|
make test
|
||||||
@ -1675,7 +1679,7 @@ component_test_default_no_deprecated () {
|
|||||||
component_test_full_no_deprecated () {
|
component_test_full_no_deprecated () {
|
||||||
msg "build: make, full_no_deprecated config" # ~ 30s
|
msg "build: make, full_no_deprecated config" # ~ 30s
|
||||||
scripts/config.py full_no_deprecated
|
scripts/config.py full_no_deprecated
|
||||||
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
|
make CFLAGS='-O -Werror -Wall -Wextra'
|
||||||
|
|
||||||
msg "test: make, full_no_deprecated config" # ~ 5s
|
msg "test: make, full_no_deprecated config" # ~ 5s
|
||||||
make test
|
make test
|
||||||
@ -1689,7 +1693,7 @@ component_test_full_no_deprecated_deprecated_warning () {
|
|||||||
scripts/config.py full_no_deprecated
|
scripts/config.py full_no_deprecated
|
||||||
scripts/config.py unset MBEDTLS_DEPRECATED_REMOVED
|
scripts/config.py unset MBEDTLS_DEPRECATED_REMOVED
|
||||||
scripts/config.py set MBEDTLS_DEPRECATED_WARNING
|
scripts/config.py set MBEDTLS_DEPRECATED_WARNING
|
||||||
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
|
make CFLAGS='-O -Werror -Wall -Wextra'
|
||||||
|
|
||||||
msg "test: make, full_no_deprecated config, MBEDTLS_DEPRECATED_WARNING" # ~ 5s
|
msg "test: make, full_no_deprecated config, MBEDTLS_DEPRECATED_WARNING" # ~ 5s
|
||||||
make test
|
make test
|
||||||
@ -1702,6 +1706,8 @@ component_test_full_deprecated_warning () {
|
|||||||
scripts/config.py full
|
scripts/config.py full
|
||||||
scripts/config.py set MBEDTLS_DEPRECATED_WARNING
|
scripts/config.py set MBEDTLS_DEPRECATED_WARNING
|
||||||
# Expect warnings from '#warning' directives in check_config.h.
|
# Expect warnings from '#warning' directives in check_config.h.
|
||||||
|
# Note that gcc is required to allow the use of -Wno-error=cpp, which allows us to
|
||||||
|
# display #warning messages without them being treated as errors.
|
||||||
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=cpp' lib programs
|
make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=cpp' lib programs
|
||||||
|
|
||||||
msg "build: make tests, full config + MBEDTLS_DEPRECATED_WARNING, expect warnings" # ~ 30s
|
msg "build: make tests, full config + MBEDTLS_DEPRECATED_WARNING, expect warnings" # ~ 30s
|
||||||
@ -1871,7 +1877,7 @@ component_build_no_pk_rsa_alt_support () {
|
|||||||
scripts/config.py set MBEDTLS_X509_CRT_WRITE_C
|
scripts/config.py set MBEDTLS_X509_CRT_WRITE_C
|
||||||
|
|
||||||
# Only compile - this is primarily to test for compile issues
|
# Only compile - this is primarily to test for compile issues
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy'
|
make CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy'
|
||||||
}
|
}
|
||||||
|
|
||||||
component_test_no_use_psa_crypto_full_cmake_asan() {
|
component_test_no_use_psa_crypto_full_cmake_asan() {
|
||||||
@ -2628,7 +2634,7 @@ component_test_memory_buffer_allocator_backtrace () {
|
|||||||
scripts/config.py set MBEDTLS_PLATFORM_MEMORY
|
scripts/config.py set MBEDTLS_PLATFORM_MEMORY
|
||||||
scripts/config.py set MBEDTLS_MEMORY_BACKTRACE
|
scripts/config.py set MBEDTLS_MEMORY_BACKTRACE
|
||||||
scripts/config.py set MBEDTLS_MEMORY_DEBUG
|
scripts/config.py set MBEDTLS_MEMORY_DEBUG
|
||||||
CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
|
cmake -DCMAKE_BUILD_TYPE:String=Release .
|
||||||
make
|
make
|
||||||
|
|
||||||
msg "test: MBEDTLS_MEMORY_BUFFER_ALLOC_C and MBEDTLS_MEMORY_BACKTRACE"
|
msg "test: MBEDTLS_MEMORY_BUFFER_ALLOC_C and MBEDTLS_MEMORY_BACKTRACE"
|
||||||
@ -2639,7 +2645,7 @@ component_test_memory_buffer_allocator () {
|
|||||||
msg "build: default config with memory buffer allocator"
|
msg "build: default config with memory buffer allocator"
|
||||||
scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||||
scripts/config.py set MBEDTLS_PLATFORM_MEMORY
|
scripts/config.py set MBEDTLS_PLATFORM_MEMORY
|
||||||
CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
|
cmake -DCMAKE_BUILD_TYPE:String=Release .
|
||||||
make
|
make
|
||||||
|
|
||||||
msg "test: MBEDTLS_MEMORY_BUFFER_ALLOC_C"
|
msg "test: MBEDTLS_MEMORY_BUFFER_ALLOC_C"
|
||||||
@ -2754,7 +2760,7 @@ component_test_ssl_alloc_buffer_and_mfl () {
|
|||||||
scripts/config.py set MBEDTLS_MEMORY_DEBUG
|
scripts/config.py set MBEDTLS_MEMORY_DEBUG
|
||||||
scripts/config.py set MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
|
scripts/config.py set MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
|
||||||
scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
|
scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
|
||||||
CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
|
cmake -DCMAKE_BUILD_TYPE:String=Release .
|
||||||
make
|
make
|
||||||
|
|
||||||
msg "test: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH, MBEDTLS_MEMORY_BUFFER_ALLOC_C, MBEDTLS_MEMORY_DEBUG and MBEDTLS_SSL_MAX_FRAGMENT_LENGTH"
|
msg "test: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH, MBEDTLS_MEMORY_BUFFER_ALLOC_C, MBEDTLS_MEMORY_DEBUG and MBEDTLS_SSL_MAX_FRAGMENT_LENGTH"
|
||||||
@ -2854,7 +2860,7 @@ component_test_malloc_0_null () {
|
|||||||
component_test_aes_fewer_tables () {
|
component_test_aes_fewer_tables () {
|
||||||
msg "build: default config with AES_FEWER_TABLES enabled"
|
msg "build: default config with AES_FEWER_TABLES enabled"
|
||||||
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra'
|
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||||
|
|
||||||
msg "test: AES_FEWER_TABLES"
|
msg "test: AES_FEWER_TABLES"
|
||||||
make test
|
make test
|
||||||
@ -2863,7 +2869,7 @@ component_test_aes_fewer_tables () {
|
|||||||
component_test_aes_rom_tables () {
|
component_test_aes_rom_tables () {
|
||||||
msg "build: default config with AES_ROM_TABLES enabled"
|
msg "build: default config with AES_ROM_TABLES enabled"
|
||||||
scripts/config.py set MBEDTLS_AES_ROM_TABLES
|
scripts/config.py set MBEDTLS_AES_ROM_TABLES
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra'
|
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||||
|
|
||||||
msg "test: AES_ROM_TABLES"
|
msg "test: AES_ROM_TABLES"
|
||||||
make test
|
make test
|
||||||
@ -2873,7 +2879,7 @@ component_test_aes_fewer_tables_and_rom_tables () {
|
|||||||
msg "build: default config with AES_ROM_TABLES and AES_FEWER_TABLES enabled"
|
msg "build: default config with AES_ROM_TABLES and AES_FEWER_TABLES enabled"
|
||||||
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
scripts/config.py set MBEDTLS_AES_FEWER_TABLES
|
||||||
scripts/config.py set MBEDTLS_AES_ROM_TABLES
|
scripts/config.py set MBEDTLS_AES_ROM_TABLES
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra'
|
make CFLAGS='-O2 -Werror -Wall -Wextra'
|
||||||
|
|
||||||
msg "test: AES_FEWER_TABLES + AES_ROM_TABLES"
|
msg "test: AES_FEWER_TABLES + AES_ROM_TABLES"
|
||||||
make test
|
make test
|
||||||
@ -3108,7 +3114,7 @@ support_test_m32_everest () {
|
|||||||
component_test_mx32 () {
|
component_test_mx32 () {
|
||||||
msg "build: 64-bit ILP32, make, gcc" # ~ 30s
|
msg "build: 64-bit ILP32, make, gcc" # ~ 30s
|
||||||
scripts/config.py full
|
scripts/config.py full
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
||||||
|
|
||||||
msg "test: 64-bit ILP32, make, gcc"
|
msg "test: 64-bit ILP32, make, gcc"
|
||||||
make test
|
make test
|
||||||
@ -3135,7 +3141,7 @@ component_test_have_int32 () {
|
|||||||
scripts/config.py unset MBEDTLS_HAVE_ASM
|
scripts/config.py unset MBEDTLS_HAVE_ASM
|
||||||
scripts/config.py unset MBEDTLS_AESNI_C
|
scripts/config.py unset MBEDTLS_AESNI_C
|
||||||
scripts/config.py unset MBEDTLS_PADLOCK_C
|
scripts/config.py unset MBEDTLS_PADLOCK_C
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32'
|
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32'
|
||||||
|
|
||||||
msg "test: gcc, force 32-bit bignum limbs"
|
msg "test: gcc, force 32-bit bignum limbs"
|
||||||
make test
|
make test
|
||||||
@ -3146,7 +3152,7 @@ component_test_have_int64 () {
|
|||||||
scripts/config.py unset MBEDTLS_HAVE_ASM
|
scripts/config.py unset MBEDTLS_HAVE_ASM
|
||||||
scripts/config.py unset MBEDTLS_AESNI_C
|
scripts/config.py unset MBEDTLS_AESNI_C
|
||||||
scripts/config.py unset MBEDTLS_PADLOCK_C
|
scripts/config.py unset MBEDTLS_PADLOCK_C
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -DMBEDTLS_HAVE_INT64'
|
make CC=gcc CFLAGS='-O2 -Werror -Wall -Wextra -DMBEDTLS_HAVE_INT64'
|
||||||
|
|
||||||
msg "test: gcc, force 64-bit bignum limbs"
|
msg "test: gcc, force 64-bit bignum limbs"
|
||||||
make test
|
make test
|
||||||
@ -3554,7 +3560,7 @@ component_build_zeroize_checks () {
|
|||||||
scripts/config.py full
|
scripts/config.py full
|
||||||
|
|
||||||
# Only compile - we're looking for sizeof-pointer-memaccess warnings
|
# Only compile - we're looking for sizeof-pointer-memaccess warnings
|
||||||
make CC=gcc CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-zeroize-memset.h\"' -DMBEDTLS_TEST_DEFINES_ZEROIZE -Werror -Wsizeof-pointer-memaccess"
|
make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-zeroize-memset.h\"' -DMBEDTLS_TEST_DEFINES_ZEROIZE -Werror -Wsizeof-pointer-memaccess"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3587,12 +3593,13 @@ component_test_zeroize () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
component_test_psa_compliance () {
|
component_test_psa_compliance () {
|
||||||
|
# The arch tests build with gcc, so require use of gcc here to link properly
|
||||||
msg "build: make, default config + CMAC, libmbedcrypto.a only"
|
msg "build: make, default config + CMAC, libmbedcrypto.a only"
|
||||||
scripts/config.py set MBEDTLS_CMAC_C
|
scripts/config.py set MBEDTLS_CMAC_C
|
||||||
make -C library libmbedcrypto.a
|
CC=gcc make -C library libmbedcrypto.a
|
||||||
|
|
||||||
msg "unit test: test_psa_compliance.py"
|
msg "unit test: test_psa_compliance.py"
|
||||||
./tests/scripts/test_psa_compliance.py
|
CC=gcc ./tests/scripts/test_psa_compliance.py
|
||||||
}
|
}
|
||||||
|
|
||||||
support_test_psa_compliance () {
|
support_test_psa_compliance () {
|
||||||
|
@ -392,7 +392,7 @@ class DomainData:
|
|||||||
|
|
||||||
def __init__(self, options, conf):
|
def __init__(self, options, conf):
|
||||||
"""Gather data about the library and establish a list of domains to test."""
|
"""Gather data about the library and establish a list of domains to test."""
|
||||||
build_command = [options.make_command, 'CFLAGS=-Werror']
|
build_command = [options.make_command, 'CFLAGS=-Werror -O2']
|
||||||
build_and_test = [build_command, [options.make_command, 'test']]
|
build_and_test = [build_command, [options.make_command, 'test']]
|
||||||
self.all_config_symbols = set(conf.settings.keys())
|
self.all_config_symbols = set(conf.settings.keys())
|
||||||
# Find hash modules by name.
|
# Find hash modules by name.
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
mbedtls_ecp_point_init(x);
|
mbedtls_ecp_point_init(x);
|
||||||
|
|
||||||
/* Auxiliary function to compare two mbedtls_ecp_group objects. */
|
/* Auxiliary function to compare two mbedtls_ecp_group objects. */
|
||||||
|
MBEDTLS_MAYBE_UNUSED
|
||||||
inline static int mbedtls_ecp_group_cmp(mbedtls_ecp_group *grp1,
|
inline static int mbedtls_ecp_group_cmp(mbedtls_ecp_group *grp1,
|
||||||
mbedtls_ecp_group *grp2)
|
mbedtls_ecp_group *grp2)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user