-
Notifications
You must be signed in to change notification settings - Fork 207
Expand file tree
/
Copy path.bazelrc
More file actions
91 lines (77 loc) · 4.07 KB
/
Copy path.bazelrc
File metadata and controls
91 lines (77 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Copyright 2023 The StableHLO Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Disable Bzlmod for now
common --noenable_bzlmod
build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17
# llvm builds typically without rtti
# disable it to be consistent with the llvm build
# this also helps later on when using sanitizers
build --cxxopt=-fno-rtti
build --host_cxxopt=-fno-rtti
# support layering_check similar to Google internal
# this only works for Clang toolchain AFAIK
# https://github.com/bazelbuild/bazel/pull/11440
build --features=layering_check
# turn on fission https://gcc.gnu.org/wiki/DebugFission
# this separates the debug information and can improve link times
build --fission=dbg
common --incompatible_enable_cc_toolchain_resolution
common --repo_env USE_HERMETIC_CC_TOOLCHAIN=1
# Some targets have the same py source file, but use different configurations
# via `requires-` tags. This results in an action conflict when precompiling.
# Disable to avoid that problem.
# See https://github.com/bazel-contrib/rules_python/issues/2445
common --@rules_python//python/config_settings:precompile=force_disabled
common --@rules_python//python/config_settings:bootstrap_impl=script --repo_env=RULES_PYTHON_ENABLE_PIPSTAR=0
# Config to disable hermetic toolchain and use local tools.
# Useful for local builds and CI on self-hosted runners without RBE.
common:clang_local --noincompatible_enable_cc_toolchain_resolution
common:clang_local --@rules_ml_toolchain//common:enable_hermetic_cc=False
common:clang_local --repo_env=USE_HERMETIC_CC_TOOLCHAIN=0
build:san-common --copt=-fno-omit-frame-pointer
build:asan --config=san-common
build:asan --features=asan
# We explicitly disable strict_init_order because LLVM is "hostile to init order"
# TODO(fzakaria): disabling due to costs of test execution
# build:asan --action_env=ASAN_OPTIONS=detect_odr_violations=2:detect_leaks=1:strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=0
# build:asan --action_env=LSAN_OPTIONS=report_objects=1
build:asan --cc_output_directory_tag=asan
# asan tests tend to take longer, so increase the timeouts
# defaults are: 60,300,900,3600
test:asan --test_timeout=300,600,1800,-1
build:ubsan --config=san-common
build:ubsan --features=ubsan
# This is needed on account of
# https://github.com/bazelbuild/bazel/issues/11122#issuecomment-896613570
# tl;dr; bazel uses clang and not clang++ to be the driver
# that discrepenancy causes some issues with ubsan
build:ubsan --linkopt=-fsanitize-link-c++-runtime
build:ubsan --copt=-fsanitize-link-c++-runtime
build:ubsan --linkopt=--driver-mode=g++
build:ubsan --host_linkopt=-fsanitize-link-c++-runtime
build:ubsan --action_env=UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1
# Disabling runfiles links drastically increases performance in slow disk IO situations
# Do not build runfile trees by default. If an execution strategy relies on runfile
# symlink tree, the tree is created on-demand. See: https://github.com/bazelbuild/bazel/issues/6627
# and https://github.com/bazelbuild/bazel/commit/03246077f948f2790a83520e7dccc2625650e6df
build --nobuild_runfile_links
test --nobuild_runfile_links
# https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles
build --nolegacy_external_runfiles
test --nolegacy_external_runfiles
# We normally enable this option (which disallows empty globs unless explicitly
# declared using `allow_empty=True`) but we have to disable it for now due to a
# dependency that contains an undeclared empty glob. Re-enable it when possible.
common --incompatible_disallow_empty_glob=False