ci: Add commands for building clang ubsan/asan.

Signed-off-by: Jeff Epler <jepler@gmail.com>
This commit is contained in:
Jeff Epler 2025-08-14 20:17:08 -05:00
parent 2822d83aff
commit 5be032be9a

View file

@ -529,6 +529,22 @@ CI_UNIX_OPTS_SANITIZE_UNDEFINED=(
LDFLAGS_EXTRA="-fsanitize=undefined -fno-sanitize=nonnull-attribute"
)
CI_UNIX_OPTS_SANITIZE_ADDRESS_CLANG=(
VARIANT=coverage
CFLAGS_EXTRA="-fsanitize=address --param asan-use-after-return=0"
LDFLAGS_EXTRA="-fsanitize=address --param asan-use-after-return=0 -fsanitize-ignorelist=variants/coverage/clang-asan-ignorelist.txt"
CXX=clang++
CC=clang
)
CI_UNIX_OPTS_SANITIZE_UNDEFINED_CLANG=(
VARIANT=coverage
CFLAGS_EXTRA="-fsanitize=undefined -fno-sanitize=nonnull-attribute"
LDFLAGS_EXTRA="-fsanitize=undefined -fno-sanitize=nonnull-attribute -fsanitize-ignorelist=variants/coverage/clang-ubsan-ignorelist.txt"
CXX=clang++
CC=clang
)
function ci_unix_build_helper {
make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/unix "$@" submodules
@ -762,6 +778,28 @@ function ci_unix_settrace_stackless_run_tests {
ci_unix_run_tests_full_helper standard "${CI_UNIX_OPTS_SYS_SETTRACE_STACKLESS[@]}"
}
function ci_unix_sanitize_address_clang_build {
make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/unix submodules
make ${MAKEOPTS} -C ports/unix "${CI_UNIX_OPTS_SANITIZE_UNDEFINED_CLANG[@]}"
ci_unix_build_ffi_lib_helper gcc
}
function ci_unix_sanitize_address_clang_run_tests {
MICROPY_TEST_TIMEOUT=60 ci_unix_run_tests_helper "${CI_UNIX_OPTS_SANITIZE_UNDEFINED_CLANG[@]}"
}
function ci_unix_sanitize_undefined_clang_build {
make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/unix submodules
make ${MAKEOPTS} -C ports/unix "${CI_UNIX_OPTS_SANITIZE_UNDEFINED_CLANG[@]}"
ci_unix_build_ffi_lib_helper gcc
}
function ci_unix_sanitize_undefined_clang_run_tests {
MICROPY_TEST_TIMEOUT=60 ci_unix_run_tests_helper "${CI_UNIX_OPTS_SANITIZE_UNDEFINED_CLANG[@]}"
}
function ci_unix_sanitize_undefined_build {
make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/unix submodules