Philipp Schrader | dada107 | 2020-11-24 11:34:46 -0800 | [diff] [blame] | 1 | # Use platforms to build our code. |
| 2 | build --incompatible_enable_cc_toolchain_resolution |
| 3 | |
Austin Schuh | c26a290 | 2022-01-14 16:34:25 -0800 | [diff] [blame] | 4 | # Rewrite all URLs to be on software.frc971.org |
| 5 | common --experimental_downloader_config=tools/dependency_rewrite |
| 6 | |
Austin Schuh | 085eab9 | 2020-11-26 13:54:51 -0800 | [diff] [blame] | 7 | # Default to py3 since that's all we support |
| 8 | build --python_version=PY3 |
| 9 | |
Philipp Schrader | dada107 | 2020-11-24 11:34:46 -0800 | [diff] [blame] | 10 | # For now we only support building on x86 Linux so we can hard-code the host |
| 11 | # platform. |
| 12 | build --host_platform=//tools/platforms:linux_x86 |
Brian Silverman | fbe4fd5 | 2015-10-26 10:40:55 -0400 | [diff] [blame] | 13 | |
Brian Silverman | 5bc5434 | 2015-11-26 22:57:46 -0500 | [diff] [blame] | 14 | # Always include debug information in the non-.stripped binaries. |
| 15 | build --strip=never |
| 16 | |
Austin Schuh | da9d060 | 2019-09-15 17:29:38 -0700 | [diff] [blame] | 17 | build --noincompatible_disable_nocopts |
Austin Schuh | da9d060 | 2019-09-15 17:29:38 -0700 | [diff] [blame] | 18 | |
Brian Silverman | 516ceb2 | 2015-11-27 01:29:05 -0500 | [diff] [blame] | 19 | # Use the malloc we want. |
| 20 | build --custom_malloc=//tools/cpp:malloc |
| 21 | |
Philipp Schrader | dada107 | 2020-11-24 11:34:46 -0800 | [diff] [blame] | 22 | # Shortcuts for selecting the target platform. |
| 23 | build:k8 --platforms=//tools/platforms:linux_x86 |
| 24 | build:roborio --platforms=//tools/platforms:linux_roborio |
Brian Silverman | 4c7235a | 2021-11-17 19:04:37 -0800 | [diff] [blame] | 25 | build:armv7 --platforms=//tools/platforms:linux_armv7 |
Philipp Schrader | f1bbf34 | 2022-02-05 14:30:15 -0800 | [diff] [blame] | 26 | build:arm64 --platforms=//tools/platforms:linux_arm64 |
Philipp Schrader | dada107 | 2020-11-24 11:34:46 -0800 | [diff] [blame] | 27 | build:cortex-m4f --platforms=//tools/platforms:cortex_m4f |
Austin Schuh | 0a96ea3 | 2022-01-01 22:29:30 -0800 | [diff] [blame] | 28 | build:rp2040 --platforms=//tools/platforms:rp2040 |
Philipp Schrader | dada107 | 2020-11-24 11:34:46 -0800 | [diff] [blame] | 29 | |
Austin Schuh | c4788d1 | 2021-01-23 17:23:37 -0800 | [diff] [blame] | 30 | # Without this, we end up rebuilding from scratch every time we change compilers. This is needed to make --cpu work (even though it shouldn't be used). |
| 31 | build --crosstool_top=@//tools/cpp:toolchain --host_crosstool_top=@//tools/cpp:toolchain |
| 32 | |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 33 | build:asan --copt -fsanitize=address |
| 34 | build:asan --linkopt -fsanitize=address --linkopt -ldl |
| 35 | build:asan --platform_suffix=-asan |
| 36 | build:asan --test_env ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.6 |
| 37 | build:asan --test_env ASAN_OPTIONS=detect_leaks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=1:detect_odr_violation=2:allow_user_segv_handler=1 |
Brian Silverman | b466eef | 2015-11-28 20:33:44 -0500 | [diff] [blame] | 38 | build:asan --copt -fsanitize-blacklist=tools/cpp/asan-blacklist |
Brian Silverman | 7dc6adb | 2017-02-19 17:04:36 -0800 | [diff] [blame] | 39 | build:asan --define have_asan=true |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 40 | |
| 41 | build:tsan --copt -fsanitize=thread --copt -DAOS_SANITIZER_thread |
| 42 | build:tsan --linkopt -fsanitize=thread |
| 43 | build:tsan --platform_suffix=-tsan |
| 44 | build:tsan --test_env TSAN_OPTIONS=external_symbolizer_path=/usr/bin/llvm-symbolizer-3.6:detect_deadlocks=1:second_deadlock_stack=1 |
Brian Silverman | 7dc6adb | 2017-02-19 17:04:36 -0800 | [diff] [blame] | 45 | build:tsan --define have_tsan=true |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 46 | |
| 47 | build:isan --copt -fsanitize=integer |
| 48 | build:isan --linkopt -fsanitize=integer |
| 49 | build:isan --platform_suffix=-isan |
| 50 | build:isan --test_env LLVM_SYMBOLIZER=/usr/bin/llvm-symbolizer-3.6 |
Brian Silverman | 7dc6adb | 2017-02-19 17:04:36 -0800 | [diff] [blame] | 51 | build:isan --define have_isan=true |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 52 | |
Brian Silverman | a4a4ea6 | 2015-11-27 10:27:53 -0500 | [diff] [blame] | 53 | build:ubsan --copt -fsanitize=undefined --copt -fno-sanitize-recover |
| 54 | # Bad alignment is just slow on x86 and traps on ARM, so we'll find |
| 55 | # it other ways, and some x86 code does it on purpose. |
| 56 | build:ubsan --copt -fno-sanitize=alignment |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 57 | build:ubsan --linkopt -fsanitize=undefined |
Brian Silverman | b466eef | 2015-11-28 20:33:44 -0500 | [diff] [blame] | 58 | # TOOD(Brian): Remove this once Clang adds it itself like it should. |
| 59 | build:ubsan --linkopt /usr/lib/llvm-3.6/lib/clang/3.6.2/lib/linux/libclang_rt.ubsan_cxx-x86_64.a |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 60 | build:ubsan --platform_suffix=-ubsan |
Brian Silverman | b466eef | 2015-11-28 20:33:44 -0500 | [diff] [blame] | 61 | build:ubsan --test_env UBSAN_OPTIONS=external_symbolizer_path=/usr/bin/llvm-symbolizer-3.6:color=always:print_stacktrace=1 |
| 62 | build:ubsan --copt -fsanitize-blacklist=tools/cpp/ubsan-blacklist |
Brian Silverman | 7dc6adb | 2017-02-19 17:04:36 -0800 | [diff] [blame] | 63 | build:ubsan --define have_ubsan=true |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 64 | |
Brian Silverman | a4a4ea6 | 2015-11-27 10:27:53 -0500 | [diff] [blame] | 65 | build:msan --copt -fsanitize=memory --copt -fsanitize-memory-track-origins |
Brian Silverman | b466eef | 2015-11-28 20:33:44 -0500 | [diff] [blame] | 66 | build:msan --linkopt -fsanitize=memory --linkopt -fsanitize-memory-track-origins |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 67 | build:msan --platform_suffix=-msan |
| 68 | build:msan --test_env MSAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.6 |
Brian Silverman | 7dc6adb | 2017-02-19 17:04:36 -0800 | [diff] [blame] | 69 | build:msan --define have_msan=true |
Brian Silverman | 63889f9 | 2015-11-27 01:33:56 -0500 | [diff] [blame] | 70 | |
James Kuszmaul | 2af1ba8 | 2019-02-09 22:16:53 -0800 | [diff] [blame] | 71 | # Sometime, we want to be able to have eigen assertions run so that we can |
| 72 | # catch potential issues (e.g., accessing invalid indices). |
| 73 | build:eigen --copt -UNDEBUG |
| 74 | |
Brian Silverman | 12b3fc5 | 2015-10-11 19:38:33 -0400 | [diff] [blame] | 75 | # Show paths to a few more than just 1 target. |
Austin Schuh | 00bc093 | 2016-02-14 21:05:34 -0800 | [diff] [blame] | 76 | build --show_result 5 |
Brian Silverman | 12b3fc5 | 2015-10-11 19:38:33 -0400 | [diff] [blame] | 77 | # Dump the output of the failing test to stdout. |
| 78 | test --test_output=errors |
Brian Silverman | b200c17 | 2017-01-02 17:35:35 -0800 | [diff] [blame] | 79 | |
Philipp Schrader | 6efe573 | 2022-02-12 15:11:13 -0800 | [diff] [blame] | 80 | build --sandbox_base=/dev/shm/ |
Austin Schuh | 35c75e8 | 2017-03-11 21:54:05 -0800 | [diff] [blame] | 81 | build --experimental_multi_threaded_digest |
Austin Schuh | 9d92e6b | 2017-10-17 01:19:38 -0700 | [diff] [blame] | 82 | |
| 83 | build --sandbox_fake_hostname=true |
| 84 | build --sandbox_fake_username=true |
| 85 | |
Austin Schuh | 9d92e6b | 2017-10-17 01:19:38 -0700 | [diff] [blame] | 86 | startup --host_jvm_args=-Dbazel.DigestFunction=SHA1 |
| 87 | |
| 88 | common --watchfs |
Austin Schuh | e18baff | 2018-10-20 17:40:42 -0700 | [diff] [blame] | 89 | |
| 90 | # Switch to SHA256 for compatibility with distributed caching. |
| 91 | startup --host_jvm_args=-Dbazel.DigestFunction=SHA256 |
| 92 | |
Austin Schuh | b6043b2 | 2017-11-29 00:14:39 -0800 | [diff] [blame] | 93 | build --spawn_strategy=linux-sandbox |
Philipp Schrader | 6efe573 | 2022-02-12 15:11:13 -0800 | [diff] [blame] | 94 | build --sandbox_default_allow_network=false |
Austin Schuh | e18baff | 2018-10-20 17:40:42 -0700 | [diff] [blame] | 95 | |
Austin Schuh | 89a9505 | 2019-04-14 14:51:14 -0700 | [diff] [blame] | 96 | build --strategy=TypeScriptCompile=worker --strategy=AngularTemplateCompile=worker |
| 97 | |
Austin Schuh | e18baff | 2018-10-20 17:40:42 -0700 | [diff] [blame] | 98 | # Use our hermetic JDK. |
| 99 | # Note that this doesn't quite work fully, but it should. See |
| 100 | # https://github.com/bazelbuild/bazel/issues/6341 for ongoing discussion with |
| 101 | # upstream about this. |
Philipp Schrader | 6efe573 | 2022-02-12 15:11:13 -0800 | [diff] [blame] | 102 | build --java_runtime_version=openjdk_9 --tool_java_runtime_version=openjdk_9 |
Philipp Schrader | d64e130 | 2020-12-12 18:53:00 -0800 | [diff] [blame] | 103 | |
| 104 | # Prevent falling back to the host JDK. |
| 105 | startup --noautodetect_server_javabase |