-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add native support for Apple Silicon
After this PR, we can use a x86 version of Bazel to build an ARM64 Bazel binary for Apple Silicon by ``` bazel build --cpu=darwin_arm64 //src:bazel ``` The Bazel client, embedded tools and embedded JDK are all native ARM64 binaries. Changes in this PR: 1. Add OpenJDK definitions for ARM64 macOS 2. Manually created the embedded JDK binaries on an Apple Silicon machine and uploaded them to the bazel mirror site. 3. AutoCpuConverter.java: identify the cpu value correctly 4. cc_toolchain_config.bzl: Explicitly specify the target platform also in the x86 cc toolchain, so that we can also do cross-platform compile from ARM64 to x86. With the native arm64 Bazel binary, building Bazel itself takes only half of the time compared with the x86 Bazel binary on an Apple DTK machine: ``` $ bazel build --cpu=darwin_arm64 --disk_cache= --repository_cache= //src:bazel Starting local Bazel server and connecting to it... ... Target //src:bazel up-to-date: bazel-bin/src/bazel INFO: Elapsed time: 1044.462s, Critical Path: 180.08s INFO: 2984 processes: 179 internal, 2092 darwin-sandbox, 1 local, 712 worker. INFO: Build completed successfully, 2984 total actions cp ./bazel-bin/src/bazel ~/bin/bazel-arm64 $ bazel-arm64 clean --expunge $ bazel-arm64 build --disk_cache= --repository_cache= //src:bazel Starting local Bazel server and connecting to it... ... Target //src:bazel up-to-date: bazel-bin/src/bazel INFO: Elapsed time: 464.470s, Critical Path: 114.88s INFO: 2984 processes: 179 internal, 2092 darwin-sandbox, 1 local, 712 worker. INFO: Build completed successfully, 2984 total actions ``` Closes: #11628 Closes #12900. PiperOrigin-RevId: 354058336
- Loading branch information
1 parent
d1e9f60
commit 8c7e11a
Showing
10 changed files
with
217 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.