Skip to content

Commit

Permalink
Remove armeabi-v7a from Apple crosstool
Browse files Browse the repository at this point in the history
This is still needed in general, but instead of baking it into this crosstool we can use the separate setup for it.

Closes #13449.

PiperOrigin-RevId: 374990658
  • Loading branch information
keith authored and copybara-github committed May 21, 2021
1 parent 21db4bb commit a7e0e29
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 416 deletions.
5 changes: 5 additions & 0 deletions tools/cpp/osx_cc_configure.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ def configure_osx_toolchain(repository_ctx, overriden_tools):
overriden_tools: dictionary of overriden tools.
"""
paths = resolve_labels(repository_ctx, [
"@bazel_tools//tools/cpp:armeabi_cc_toolchain_config.bzl",
"@bazel_tools//tools/cpp:osx_cc_wrapper.sh.tpl",
"@bazel_tools//tools/objc:libtool.sh",
"@bazel_tools//tools/objc:libtool_check_unique.cc",
Expand Down Expand Up @@ -132,6 +133,10 @@ def configure_osx_toolchain(repository_ctx, overriden_tools):
"%{env}": escape_string(get_env(repository_ctx)),
},
)
repository_ctx.symlink(
paths["@bazel_tools//tools/cpp:armeabi_cc_toolchain_config.bzl"],
"armeabi_cc_toolchain_config.bzl",
)
repository_ctx.symlink(
paths["@bazel_tools//tools/objc:xcrunwrapper.sh"],
"xcrunwrapper.sh",
Expand Down
25 changes: 23 additions & 2 deletions tools/osx/crosstool/BUILD.toolchains
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
load(":osx_archs.bzl", "OSX_TOOLS_ARCHS")

package(default_visibility = ["//visibility:public"])

load(":osx_archs.bzl", "OSX_TOOLS_ARCHS", "OSX_TOOLS_CONSTRAINTS")
# Target constraints for each arch.
# TODO(apple-rules): Rename osx constraint to macOS.
OSX_TOOLS_CONSTRAINTS = {
"armeabi-v7a": ["@platforms//cpu:arm"],
"darwin_arm64": ["@platforms//os:osx", "@platforms//cpu:aarch64"],
"darwin_arm64e": ["@platforms//os:osx", "@platforms//cpu:aarch64"],
"darwin_x86_64": ["@platforms//os:osx", "@platforms//cpu:x86_64"],
"ios_arm64": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
"ios_arm64e": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
"ios_armv7": ["@platforms//os:ios", "@platforms//cpu:arm"],
"ios_i386": ["@platforms//os:ios", "@platforms//cpu:x86_32"],
"ios_x86_64": ["@platforms//os:ios", "@platforms//cpu:x86_64"],
"tvos_arm64": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
"tvos_x86_64": ["@platforms//os:ios", "@platforms//cpu:x86_64"],
"watchos_arm64_32": ["@platforms//os:ios", "@platforms//cpu:aarch64"],
"watchos_armv7k": ["@platforms//os:ios", "@platforms//cpu:arm"],
"watchos_i386": ["@platforms//os:ios", "@platforms//cpu:x86_32"],
"watchos_x86_64": ["@platforms//os:ios", "@platforms//cpu:x86_64"],
}

OSX_DEVELOPER_PLATFORM_CPUS = [
"aarch64",
Expand All @@ -19,5 +39,6 @@ OSX_DEVELOPER_PLATFORM_CPUS = [
toolchain = "@local_config_cc//:cc-compiler-" + arch,
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)
for arch in OSX_TOOLS_ARCHS for cpu in OSX_DEVELOPER_PLATFORM_CPUS
for arch in OSX_TOOLS_ARCHS + ["armeabi-v7a"]
for cpu in OSX_DEVELOPER_PLATFORM_CPUS
]
31 changes: 24 additions & 7 deletions tools/osx/crosstool/BUILD.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package(default_visibility = ["//visibility:public"])

load("@local_config_cc_toolchains//:osx_archs.bzl", "OSX_TOOLS_ARCHS")
load("@rules_cc//cc:defs.bzl", "cc_toolchain_suite", "cc_library")
load(":armeabi_cc_toolchain_config.bzl", "armeabi_cc_toolchain_config")
load(":cc_toolchain_config.bzl", "cc_toolchain_config")

# Reexporting osx_arch.bzl for backwards compatibility
Expand All @@ -22,6 +23,8 @@ CC_TOOLCHAINS = [(
("darwin|compiler", ":cc-compiler-darwin_x86_64"),
("k8", ":cc-compiler-darwin_x86_64"),
("darwin", ":cc-compiler-darwin_x86_64"),
("armeabi-v7a|compiler", ":cc-compiler-armeabi-v7a"),
("armeabi-v7a", ":cc-compiler-armeabi-v7a"),
]

cc_library(
Expand Down Expand Up @@ -71,19 +74,15 @@ cc_toolchain_suite(
objcopy_files = ":empty",
strip_files = ":osx_tools_" + arch,
supports_param_files = 1,
toolchain_config = ":" + (
arch if arch != "armeabi-v7a" else "stub_armeabi-v7a"
),
toolchain_identifier = (
arch if arch != "armeabi-v7a" else "stub_armeabi-v7a"
),
toolchain_config = arch,
toolchain_identifier = arch,
)
for arch in OSX_TOOLS_ARCHS
]

[
cc_toolchain_config(
name = (arch if arch != "armeabi-v7a" else "stub_armeabi-v7a"),
name = arch,
compiler = "compiler",
cpu = arch,
cxx_builtin_include_directories = [
Expand All @@ -93,3 +92,21 @@ cc_toolchain_suite(
)
for arch in OSX_TOOLS_ARCHS
]

# Android tooling requires a default toolchain for the armeabi-v7a cpu.
cc_toolchain(
name = "cc-compiler-armeabi-v7a",
toolchain_identifier = "stub_armeabi-v7a",
toolchain_config = ":stub_armeabi-v7a",
all_files = ":empty",
ar_files = ":empty",
as_files = ":empty",
compiler_files = ":empty",
dwp_files = ":empty",
linker_files = ":empty",
objcopy_files = ":empty",
strip_files = ":empty",
supports_param_files = 1,
)

armeabi_cc_toolchain_config(name = "stub_armeabi-v7a")
Loading

0 comments on commit a7e0e29

Please sign in to comment.