-
Notifications
You must be signed in to change notification settings - Fork 84
Expand file tree
/
Copy path.bazelrc
More file actions
151 lines (123 loc) · 6.84 KB
/
.bazelrc
File metadata and controls
151 lines (123 loc) · 6.84 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# bazel configurations for tensorboard plugin build.
build --repo_env=TF_PYTHON_VERSION=3.10
build --experimental_repo_remote_exec
build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17
build --noenable_bzlmod
build --incompatible_enable_cc_toolchain_resolution
build --repo_env USE_HERMETIC_CC_TOOLCHAIN=1
# TODO: Migrate for https://github.com/bazelbuild/bazel/issues/7260
build:clang_local --noincompatible_enable_cc_toolchain_resolution
build:clang_local --repo_env USE_HERMETIC_CC_TOOLCHAIN=0
build:macos --apple_platform_type=macos
build:macos --copt=-DGRPC_BAZEL_BUILD
# Bazel 7.0.0 no longer supports dynamic symbol lookup on macOS. To resolve
# undefined symbol errors in macOS arm64 builds, explicitly add the necessary
# linker flags until dependencies are well defined. See
# https://github.com/bazelbuild/bazel/issues/19730.
build:macos --linkopt=-Wl,-undefined,dynamic_lookup
build:macos --host_linkopt=-Wl,-undefined,dynamic_lookup
build:macos --config=clang_local
build:macos --apple_crosstool_top=@local_config_apple_cc//:toolchain
build:macos --crosstool_top=@local_config_apple_cc//:toolchain
build:macos --host_crosstool_top=@local_config_apple_cc//:toolchain
# XLA uses M_* math constants that only get defined by MSVC headers if
# _USE_MATH_DEFINES is defined. We use -D for clang compatibility.
build:windows --copt=-D_USE_MATH_DEFINES
build:windows --host_copt=-D_USE_MATH_DEFINES
# Make sure to include as little of windows.h as possible
build:windows --copt=-DWIN32_LEAN_AND_MEAN
build:windows --host_copt=-DWIN32_LEAN_AND_MEAN
build:windows --copt=-DNOGDI
build:windows --host_copt=-DNOGDI
build:windows --incompatible_strict_action_env=true
# Windows x86 CI configs
build:ci_windows_amd64 --crosstool_top="@xla//tools/toolchains/win2022/20241118:toolchain"
build:ci_windows_amd64 --extra_toolchains="@xla//tools/toolchains/win2022/20241118:cc-toolchain-x64_windows-clang-cl"
build:ci_windows_amd64 --color=yes
build:ci_windows_amd64 --enable_runfiles
# Fixes C++17 and /FORCE:MULTIPLE for clang-cl without passing raw MSVC flags into WASM cross-compilation toolchain.
# Inject MSVC flags via environment variables that emcc seamlessly ignores
build:ci_windows_amd64 --action_env=_CL_="/std:c++17 /Zc:__cplusplus"
build:ci_windows_amd64 --host_action_env=_CL_="/std:c++17 /Zc:__cplusplus"
build:ci_windows_amd64 --action_env=_LINK_="/FORCE:MULTIPLE"
build:ci_windows_amd64 --host_action_env=_LINK_="/FORCE:MULTIPLE"
# #############################################################################
# RBE config options below. These inherit the CI configs above and set the
# remote execution backend and authentication options required to run builds
# with RBE. Linux x86 and Windows builds use RBE.
# Based off of https://github.com/tensorflow/tensorflow/blob/master/.bazelrc
# #############################################################################
# Allow creation of resultstore URLs for any bazel invocation
build:resultstore --google_default_credentials
build:resultstore --bes_backend=buildeventservice.googleapis.com
build:resultstore --bes_instance_name="tensorflow-testing"
build:resultstore --bes_results_url="https://source.cloud.google.com/results/invocations"
build:resultstore --bes_timeout=600s
build:avx_linux --copt=-mavx
build:avx_linux --host_copt=-mavx
build:avx_linux --copt=-Wno-error=array-parameter
build:avx_linux --copt=-w
# Flag to enable remote config
common --experimental_repo_remote_exec
# Temporary flag to ensure ci_linux_x86_64 config still exists
build:ci_linux_x86_64 --color=yes
# Make Bazel not try to probe the host system for a C++ toolchain.
build:rbe_base --config=resultstore
build:rbe_base --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
build:rbe_base --define=EXECUTOR=remote
build:rbe_base --jobs=800
build:rbe_base --remote_executor=grpcs://remotebuildexecution.googleapis.com
build:rbe_base --remote_timeout=3600
build:rbe_base --spawn_strategy=remote,worker,standalone,local
# Attempt to minimize the amount of data transfer between bazel and the remote
# workers:
build:rbe_base --remote_download_toplevel
test:rbe_base --test_env=USER=anon
build:rbe_linux --extra_execution_platforms="@ubuntu20.04-clang_manylinux2014-cuda12.3-cudnn9.1_config_platform//:platform"
build:rbe_linux --host_platform="@ubuntu20.04-clang_manylinux2014-cuda12.3-cudnn9.1_config_platform//:platform"
build:rbe_linux --platforms="@ubuntu20.04-clang_manylinux2014-cuda12.3-cudnn9.1_config_platform//:platform"
build:rbe_linux --config=rbe_base
build:rbe_linux --action_env=PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin"
# Non-rbe settings we should include because we do not run configure
build:rbe_linux --linkopt=-lrt
build:rbe_linux --host_linkopt=-lrt
build:rbe_linux --linkopt=-lm
build:rbe_linux --host_linkopt=-lm
build:rbe_linux_cpu --config=rbe_linux
build:rbe_linux_cpu --config=ci_linux_x86_64
# Python config is the same across all containers because the binary is the same
build:rbe_linux_cpu --python_path="/usr/bin/python3"
common:rbe_linux_cpu --remote_instance_name=projects/tensorflow-testing/instances/default_instance
# RBE configs for Windows
# Set the remote worker pool
common:rbe_windows_amd64 --remote_instance_name=projects/ml-oss-rbe-general/instances/default_instance
build:rbe_windows_amd64 --config=rbe_base
common:rbe_windows_amd64 --bes_instance_name="ml-oss-rbe-general"
# Set the host, execution, and target platform
build:rbe_windows_amd64 --host_platform="@xla//tools/toolchains/win2022:windows_ltsc2022_clang_new"
build:rbe_windows_amd64 --extra_execution_platforms="@xla//tools/toolchains/win2022:windows_ltsc2022_clang_new"
build:rbe_windows_amd64 --platforms="@xla//tools/toolchains/win2022:windows_ltsc2022_clang_new"
build:rbe_windows_amd64 --shell_executable=C:\\tools\\msys64\\usr\\bin\\bash.exe
build:rbe_windows_amd64 --define=override_eigen_strong_inline=true
# Don't build the python zip archive in the RBE build.
build:rbe_windows_amd64 --nobuild_python_zip
build:rbe_windows_amd64 --config=ci_windows_amd64
## AArch64 configs
build:ci_linux_aarch64 --color=yes
build:ci_linux_aarch64 --config=clang_local
build:ci_linux_aarch64 --repo_env=CC=clang
build:wasm --crosstool_top=//emscripten_toolchain:everything
build:wasm --cpu=wasm
build:wasm --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
build:wasm --copt=-msimd128
build:wasm --copt=-Wno-unused-command-line-argument
build:wasm --cxxopt=-std=c++17
build:wasm --host_cxxopt=-std=c++17
# #############################################################################
# Cache options below.
# #############################################################################
# Public read-only cache
build:public_cache --remote_cache="https://storage.googleapis.com/xprof-bazel-cache/" --remote_upload_local_results=false
# Cache pushes are limited to XProf's CI system.
build:public_cache_push --config=public_cache --remote_upload_local_results=true --google_default_credentials