diff --git a/BUILD.bazel b/BUILD.bazel index bc229ddf67..b0b29f8128 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -179,7 +179,7 @@ cc_binary( linkopts = LINK_OPTS, features = select({ # This isn't possible on mac because there is no static library for lcrt0.o - "@platforms//os:osx": [], + "//build_defs:config_osx": [], # When cross-compiling we need to statically link all C++ libraries. "//conditions:default": ["fully_static_link"], }), diff --git a/build_defs/BUILD.bazel b/build_defs/BUILD.bazel index 4ac09c8298..0926b856d8 100644 --- a/build_defs/BUILD.bazel +++ b/build_defs/BUILD.bazel @@ -1,5 +1,6 @@ # Internal Starlark definitions for Protobuf. +load("@bazel_skylib//lib:selects.bzl", "selects") load("@rules_cc//cc:defs.bzl", starlark_cc_proto_library = "cc_proto_library") load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") load(":cc_proto_blacklist_test.bzl", "cc_proto_blacklist_test") @@ -83,6 +84,25 @@ config_setting( }, ) +config_setting( + name = "config_osx_aarch64", + values = {"cpu": "osx-aarch_64"}, +) + +config_setting( + name = "config_osx_x86_64", + values = {"cpu": "osx-aarch_64"}, +) + +selects.config_setting_group( + name = "config_osx", + match_any = [ + "@platforms//os:osx", + ":config_osx_aarch64", + ":config_osx_x86_64", + ] +) + # Internal testing: starlark_cc_proto_library(