forked from project-oak/oak
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.bazelrc
132 lines (118 loc) · 4.63 KB
/
.bazelrc
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
# Toolchain for compiling C++ code to wasm32.
build:wasm32 --crosstool_top=//toolchain:clang
build:wasm32 --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
build:wasm32 --cpu=wasm32
# Use a different symlink prefix for wasm-based artifacts.
build:wasm32 --symlink_prefix=bazel-wasm-
# Common options for clang-based compilation
# Force the usage of stack protectors for all functions.
build:clang-base --cxxopt="-fstack-protector-all"
# Pretty colours.
build:clang-base --cxxopt="-fcolor-diagnostics"
# Don't omit the frame pointer, useful for debug.
build:clang-base --cxxopt="-fno-omit-frame-pointer"
# Enable all warnings.
build:clang-base --cxxopt="-Wall"
# Enable extra warnings.
build:clang-base --cxxopt="-Wextra"
# Simple but useful static checking to detect potential race conditions.
build:clang-base --cxxopt="-Wthread-safety"
# Treat warnings as errors.
build:clang-base --cxxopt="-Werror"
# Disable some warnings:
# protobuf generates unused parameters, so skip this for now.
build:clang-base --cxxopt="-Wno-unused-parameter"
# https://stackoverflow.com/questions/1538943
build:clang-base --cxxopt="-Wno-missing-field-initializers"
build:clang-base --cxxopt="-Wno-error=sign-compare"
# Allow dependencies to make use of library functions marked deprecated,
# particularly on OS X.
build:clang-base --cxxopt="-Wno-error=deprecated-declarations"
# Workaround for missing thread-local reference in gRPC.
# https://github.com/bazelbuild/bazel/issues/4341
build:clang-base --copt=-DGRPC_BAZEL_BUILD
# Use a different symlink prefix for clang-based artifacts.
build:clang-base --symlink_prefix=bazel-clang-
build:clang --config=clang-base
build:clang --crosstool_top=//toolchain:clang
build:clang --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
build:clang --cpu=k8
# Darwin's default compiler is clang, so no need for a crosstool
build:darwin --config=clang-base
# armv8 build
build:armv8 --crosstool_top=//toolchain:clang
build:armv8 --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
build:armv8 --cpu=armv8
# Use a different symlink prefix for armv8-based artifacts.
build:armv8 --symlink_prefix=bazel-armv8-
# Emscripten toolchain for Wasm.
build:emscripten --crosstool_top=//toolchain:emscripten
build:emscripten --cpu=wasm
build:emscripten --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
build:emscripten --cxxopt="-std=c++14"
build:emscripten --cxxopt="-fno-rtti"
build:emscripten --cxxopt="-fno-exceptions"
build:emscripten --cxxopt="-fomit-frame-pointer"
build:emscripten --cxxopt="-ffast-math"
build:emscripten --copt="-ffast-math"
build:emscripten --spawn_strategy=local
# Use a different symlink prefix for emscripten-based artifacts.
build:emscripten --symlink_prefix=bazel-emscripten-
# Address Sanitizer.
# bazel build --config=asan
build:asan --config=clang
build:asan --strip=never
build:asan --copt=-fsanitize=address
build:asan --copt=-DADDRESS_SANITIZER
build:asan --copt=-O1
build:asan --copt=-g
build:asan --copt=-fno-omit-frame-pointer
build:asan --linkopt=-fsanitize=address
build:asan --compilation_mode=dbg
# Thread Sanitizer.
# bazel build --config=tsan
build:tsan --config=clang
build:tsan --strip=never
build:tsan --copt=-fsanitize=thread
build:tsan --copt=-DTHREAD_SANITIZER
build:tsan --copt=-DDYNAMIC_ANNOTATIONS_ENABLED=1
build:tsan --copt=-DDYNAMIC_ANNOTATIONS_EXTERNAL_IMPL=1
build:tsan --copt=-O1
build:tsan --copt=-g
build:tsan --copt=-fno-omit-frame-pointer
build:tsan --linkopt=-fsanitize=thread
build:tsan --compilation_mode=dbg
# Turn off TSAN checking of atomics in `bazel test`, due to false positive on absl::MutexLock:
# https://github.com/google/sanitizers/issues/953
# Note this does not affect `bazel run`: use `export TSAN_OPTIONS=report_atomic_races=0`
build:tsan --test_env=TSAN_OPTIONS=report_atomic_races=0
# Memory Sanitizer.
# bazel build --config=msan
build:msan --config=clang
build:msan --strip=never
build:msan --copt=-fsanitize=memory
build:msan --copt=-DADDRESS_SANITIZER
build:msan --copt=-O1
build:msan --copt=-fno-omit-frame-pointer
build:msan --linkopt=-fsanitize=memory
# Undefined Behavior Sanitizer.
# bazel build --config=ubsan
build:ubsan --config=clang
build:ubsan --strip=never
build:ubsan --copt=-fsanitize=undefined
build:ubsan --copt=-O1
build:ubsan --copt=-fno-omit-frame-pointer
build:ubsan --linkopt=-fsanitize=undefined
build:ubsan --linkopt=-lubsan
# Fuzzer.
# See https://llvm.org/docs/LibFuzzer.html.
# bazel build --config=fuzz
build:fuzz --config=clang
build:fuzz --strip=never
build:fuzz --copt=-fsanitize=fuzzer,address
build:fuzz --copt=-O1
build:fuzz --copt=-g
build:fuzz --copt=-fno-omit-frame-pointer
build:fuzz --compilation_mode=dbg
build:fuzz --linkopt=-fsanitize=fuzzer,address
test --test_output=all