diff options
author | Kacper Michajłow <[email protected]> | 2025-07-17 02:38:22 +0200 |
---|---|---|
committer | Kacper Michajłow <[email protected]> | 2025-07-19 00:32:05 +0200 |
commit | 85ae10575b9a9d9d359f35115e0e8645f74238a3 (patch) | |
tree | 846509344aac0af4d853fab86e2f8d4e34ecfe64 | |
parent | 36b8c200fb788d2ea85403ec6c4f71c5e5131a41 (diff) |
configure: allow multiple sanitizers in --toolchain
For example this allows: --toolchain=clang-asan-usan.
Signed-off-by: Kacper Michajłow <[email protected]>
-rwxr-xr-x | configure | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -381,10 +381,10 @@ Toolchain options: --target-samples=DIR path to samples directory on target --tempprefix=PATH force fixed dir/prefix instead of mktemp for checks --toolchain=NAME set tool defaults according to NAME - (gcc-asan, clang-asan, gcc-msan, clang-msan, - gcc-tsan, clang-tsan, gcc-usan, clang-usan, - valgrind-massif, valgrind-memcheck, - msvc, icl, gcov, llvm-cov, hardened) + (<tool>[-sanitizer[-...]], e.g. clang-asan-usan + tools: gcc, clang, msvc, icl, gcov, llvm-cov, + valgrind-memcheck, valgrind-massif, hardened + sanitizers: asan, lsan, msan, tsan, usan) --nm=NM use nm tool NM [$nm_default] --ar=AR use archive tool AR [$ar_default] --as=AS use assembler AS [$as_default] @@ -4646,14 +4646,23 @@ add_sanitizer_flags(){ esac } +add_sanitizers(){ + IFS=- + set -- $* + unset IFS + for sanitizer; do + add_sanitizer_flags "$sanitizer" + done +} + case "$toolchain" in clang-*) - add_sanitizer_flags "${toolchain#clang-}" + add_sanitizers "${toolchain#clang-}" cc_default="clang" cxx_default="clang++" ;; gcc-*) - add_sanitizer_flags "${toolchain#gcc-}" + add_sanitizers "${toolchain#gcc-}" cc_default="gcc" cxx_default="g++" # In case of tsan with gcc, PIC has to be enabled |