|
|
@@ -4,20 +4,18 @@
|
|
|
|
|
|
"""Provides helpers for cc rules. Intended for general consumption."""
|
|
|
|
|
|
-# The hermetic llvm-symbolizer target.
|
|
|
-_llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
|
|
|
+load("@bazel_cc_toolchain//:clang_detected_variables.bzl", "llvm_symbolizer")
|
|
|
|
|
|
def cc_env():
|
|
|
"""Returns standard environment settings for a cc_binary.
|
|
|
|
|
|
- In use, this should set both `data` and `env`, as in:
|
|
|
+ In use, this looks like:
|
|
|
|
|
|
```
|
|
|
- load("//bazel/cc_toolchains:defs.bzl", "cc_env", "cc_env_data")
|
|
|
+ load("//bazel/cc_toolchains:defs.bzl", "cc_env")
|
|
|
|
|
|
cc_binary(
|
|
|
...
|
|
|
- data = cc_env_data(),
|
|
|
env = cc_env(),
|
|
|
)
|
|
|
```
|
|
|
@@ -25,7 +23,7 @@ def cc_env():
|
|
|
We're currently setting this on a target-by-target basis, mainly because
|
|
|
it's difficult to modify default behaviors.
|
|
|
"""
|
|
|
- env = {"LLVM_SYMBOLIZER_PATH": "$(location {0})".format(_llvm_symbolizer)}
|
|
|
+ env = {"LLVM_SYMBOLIZER_PATH": llvm_symbolizer}
|
|
|
|
|
|
# On macOS, there's a nano zone allocation warning due to asan (arises
|
|
|
# in fastbuild/dbg). This suppresses the warning in `bazel run`.
|
|
|
@@ -37,10 +35,3 @@ def cc_env():
|
|
|
"//bazel/cc_toolchains:macos_asan": env.update({"MallocNanoZone": "0"}),
|
|
|
"//conditions:default": env,
|
|
|
})
|
|
|
-
|
|
|
-def cc_env_data():
|
|
|
- """Returns data needed for cc_env().
|
|
|
-
|
|
|
- Set up as a function mainly for parity, and in case we need future changes.
|
|
|
- """
|
|
|
- return [_llvm_symbolizer]
|