Przeglądaj źródła

Replace llvm_symbolizer with a cc_env_data() array. (#4354)

This is a minor adjustment to make it easier to modify (or omit) data
where needed. Also, makes it pair better with cc_env().
Jon Ross-Perkins 1 rok temu
rodzic
commit
9d1d8d75be

+ 11 - 4
bazel/cc_toolchains/defs.bzl

@@ -5,7 +5,7 @@
 """Provides helpers for cc rules. Intended for general consumption."""
 """Provides helpers for cc rules. Intended for general consumption."""
 
 
 # The hermetic llvm-symbolizer target.
 # The hermetic llvm-symbolizer target.
-llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
+_llvm_symbolizer = "@llvm-project//llvm:llvm-symbolizer"
 
 
 def cc_env():
 def cc_env():
     """Returns standard environment settings for a cc_binary.
     """Returns standard environment settings for a cc_binary.
@@ -13,11 +13,11 @@ def cc_env():
     In use, this should set both `data` and `env`, as in:
     In use, this should set both `data` and `env`, as in:
 
 
     ```
     ```
-    load("//bazel/cc_toolchains:defs.bzl", "cc_env", "llvm_symbolizer")
+    load("//bazel/cc_toolchains:defs.bzl", "cc_env", "cc_env_data")
 
 
     cc_binary(
     cc_binary(
       ...
       ...
-      data = [llvm_symbolizer],
+      data = cc_env_data(),
       env = cc_env(),
       env = cc_env(),
     )
     )
     ```
     ```
@@ -25,7 +25,7 @@ def cc_env():
     We're currently setting this on a target-by-target basis, mainly because
     We're currently setting this on a target-by-target basis, mainly because
     it's difficult to modify default behaviors.
     it's difficult to modify default behaviors.
     """
     """
-    env = {"LLVM_SYMBOLIZER_PATH": "$(location {0})".format(llvm_symbolizer)}
+    env = {"LLVM_SYMBOLIZER_PATH": "$(location {0})".format(_llvm_symbolizer)}
 
 
     # On macOS, there's a nano zone allocation warning due to asan (arises
     # On macOS, there's a nano zone allocation warning due to asan (arises
     # in fastbuild/dbg). This suppresses the warning in `bazel run`.
     # in fastbuild/dbg). This suppresses the warning in `bazel run`.
@@ -37,3 +37,10 @@ def cc_env():
         "//bazel/cc_toolchains:macos_asan": env.update({"MallocNanoZone": "0"}),
         "//bazel/cc_toolchains:macos_asan": env.update({"MallocNanoZone": "0"}),
         "//conditions:default": env,
         "//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]

+ 2 - 2
explorer/BUILD

@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
-load("//bazel/cc_toolchains:defs.bzl", "cc_env", "llvm_symbolizer")
+load("//bazel/cc_toolchains:defs.bzl", "cc_env", "cc_env_data")
 load("//testing/file_test:rules.bzl", "file_test")
 load("//testing/file_test:rules.bzl", "file_test")
 
 
 package(default_visibility = [
 package(default_visibility = [
@@ -36,7 +36,7 @@ cc_library(
 cc_binary(
 cc_binary(
     name = "explorer",
     name = "explorer",
     srcs = ["main_bin.cpp"],
     srcs = ["main_bin.cpp"],
-    data = [llvm_symbolizer],
+    data = cc_env_data(),
     env = cc_env(),
     env = cc_env(),
     # Running clang-tidy is slow, and explorer is currently feature frozen, so
     # Running clang-tidy is slow, and explorer is currently feature frozen, so
     # don't spend time linting it.
     # don't spend time linting it.

+ 2 - 2
toolchain/driver/BUILD

@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel/cc_toolchains:defs.bzl", "cc_env", "llvm_symbolizer")
+load("//bazel/cc_toolchains:defs.bzl", "cc_env", "cc_env_data")
 load("//testing/fuzzing:rules.bzl", "cc_fuzz_test")
 load("//testing/fuzzing:rules.bzl", "cc_fuzz_test")
 
 
 package(default_visibility = ["//visibility:public"])
 package(default_visibility = ["//visibility:public"])
@@ -167,7 +167,7 @@ cc_fuzz_test(
 cc_binary(
 cc_binary(
     name = "carbon",
     name = "carbon",
     srcs = ["driver_main.cpp"],
     srcs = ["driver_main.cpp"],
-    data = [llvm_symbolizer],
+    data = cc_env_data(),
     env = cc_env(),
     env = cc_env(),
     deps = [
     deps = [
         ":driver",
         ":driver",

+ 2 - 5
toolchain/install/BUILD

@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
-load("//bazel/cc_toolchains:defs.bzl", "cc_env", "llvm_symbolizer")
+load("//bazel/cc_toolchains:defs.bzl", "cc_env", "cc_env_data")
 load("install_filegroups.bzl", "install_filegroup", "install_symlink", "install_target", "make_install_filegroups")
 load("install_filegroups.bzl", "install_filegroup", "install_symlink", "install_target", "make_install_filegroups")
 load("pkg_helpers.bzl", "pkg_naming_variables", "pkg_tar_and_test")
 load("pkg_helpers.bzl", "pkg_naming_variables", "pkg_tar_and_test")
 load("run_tool.bzl", "run_tool")
 load("run_tool.bzl", "run_tool")
@@ -142,10 +142,7 @@ pkg_tar_and_test(
 # Support `bazel run` on specific binaries.
 # Support `bazel run` on specific binaries.
 run_tool(
 run_tool(
     name = "run_carbon",
     name = "run_carbon",
-    data = [
-        ":install_data",
-        llvm_symbolizer,
-    ],
+    data = [":install_data"] + cc_env_data(),
     env = cc_env(),
     env = cc_env(),
     tool = "prefix_root/bin/carbon",
     tool = "prefix_root/bin/carbon",
 )
 )

+ 2 - 2
toolchain/testing/BUILD

@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
 
 load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
 load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
-load("//bazel/cc_toolchains:defs.bzl", "cc_env", "llvm_symbolizer")
+load("//bazel/cc_toolchains:defs.bzl", "cc_env", "cc_env_data")
 load("//testing/file_test:rules.bzl", "file_test")
 load("//testing/file_test:rules.bzl", "file_test")
 
 
 package(default_visibility = ["//visibility:public"])
 package(default_visibility = ["//visibility:public"])
@@ -12,7 +12,7 @@ file_test(
     name = "file_test",
     name = "file_test",
     size = "small",
     size = "small",
     srcs = ["file_test.cpp"],
     srcs = ["file_test.cpp"],
-    data = [llvm_symbolizer],
+    data = cc_env_data(),
     env = cc_env(),
     env = cc_env(),
     tests = [
     tests = [
         "//toolchain/check:testdata",
         "//toolchain/check:testdata",