1# temporary fix for https://github.com/bazelbuild/bazel/issues/12905 on macOS 2build --features=-debug_prefix_map_pwd_is_dot 3 4# Pin to C++17 5build --cxxopt=-std=c++17 --host_cxxopt=-std=c++17 6build:cpp17_msvc --cxxopt=/std:c++17 --host_cxxopt=/std:c++17 7 8# Use our custom-configured c++ toolchain. 9 10build:m32 --copt=-m32 --linkopt=-m32 11build:asan --copt=-fsanitize=address --linkopt=-fsanitize=address 12build:msan --copt=-fsanitize=memory --linkopt=-fsanitize=memory 13 14# For Valgrind, we have to disable checks of "possible" leaks because the Python 15# interpreter does the sorts of things that flag Valgrind "possible" leak checks. 16# Ideally we could enforce a stricter check for the non-Python tests, but I don't 17# know of an easy way to do that. 18# 19# We also have to disable pymalloc to avoid triggering Valgrind. 20build:valgrind --run_under='valgrind --leak-check=full --track-origins=yes --trace-children=yes --show-leak-kinds=all --error-exitcode=1 --num-callers=500 ' --action_env=PYTHONMALLOC=malloc 21 22build:ubsan --copt=-fsanitize=undefined --linkopt=-fsanitize=undefined --action_env=UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1 23# Workaround for the fact that Bazel links with $CC, not $CXX 24# https://github.com/bazelbuild/bazel/issues/11122#issuecomment-613746748 25build:ubsan --copt=-fno-sanitize=function --copt=-fno-sanitize=vptr 26# Workaround for https://bugs.llvm.org/show_bug.cgi?id=16404 27build:ubsan --linkopt=--rtlib=compiler-rt --linkopt=-lunwind 28 29build:Werror --copt=-Werror 30build:Werror --per_file_copt=json/parser@-Wno-error 31build:Werror --per_file_copt=com_google_protobuf@-Wno-error 32 33# GCC's -fanalyzer, a deeper static analysis than normal warnings. 34build:analyzer --copt=-fanalyzer --copt=-Werror 35build:analyzer --per_file_copt=json/parser@-fno-analyzer 36build:analyzer --per_file_copt=com_google_protobuf@-fno-analyzer 37build:analyzer --per_file_copt=com_github_google_benchmark@-fno-analyzer 38 39# --config=asan-libfuzzer 40build:asan-libfuzzer --action_env=CC=clang 41build:asan-libfuzzer --action_env=CXX=clang++ 42build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer 43build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer 44build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan 45 46# --config=msan-libfuzzer 47build:msan-libfuzzer --action_env=CC=clang 48build:msan-libfuzzer --action_env=CXX=clang++ 49build:msan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer 50build:msan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer 51build:msan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=msan 52 53# --config=ubsan-libfuzzer 54build:ubsan-libfuzzer --action_env=CC=clang 55build:ubsan-libfuzzer --action_env=CXX=clang++ 56build:ubsan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer 57build:ubsan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer 58build:ubsan-libfuzzer --copt=-fsanitize=undefined 59build:ubsan-libfuzzer --linkopt=-fsanitize=undefined 60build:ubsan-libfuzzer --linkopt=-fsanitize-link-c++-runtime 61