prysm-pulse/tools/cross-toolchain/rbe_toolchains_config.bzl
Leo Lara 9aaa42156b
Add cross compilation for OSX ARM64 (Apple Silicon) (#10981)
* Upgrade Grail Bazel toolchain to latest release v0.7.2

This should allow Prysm to compile on Ubuntu 21.10 and 22.04

* Changes necessary in .bazelrc for new version of com_grail_bazel_toolchain

* Add cross compilation for OSX ARM64 (Apple Silicon)

* Update cross-toolchain README to include osx_arm64

* Add double quotes to shell code

* Rename install_clang_cross10.sh -> install_clang_cross.sh

* Update with prysmatic labs uploaded assets

* Touch README to trigger CI

* Revert "Touch README to trigger CI"

This reverts commit 826ac8a6d8da4fe0bd8503511b00576e50861850.

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
2022-08-11 21:40:24 +00:00

103 lines
3.5 KiB
Python

load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig")
load("@prysm//tools/cross-toolchain:configs/versions.bzl", _generated_toolchain_config_suite_autogen_spec = "TOOLCHAIN_CONFIG_AUTOGEN_SPEC")
_PRYSM_BUILD_IMAGE_REGISTRY = "gcr.io"
_PRYSM_BUILD_IMAGE_REPOSITORY = "prysmaticlabs/rbe-worker"
_PRYSM_BUILD_IMAGE_DIGEST = "sha256:9e04c71268adeb4028b4016ca8cc02d134c2e5d7e3a53fdc68154d1797bb3d70"
_PRYSM_BUILD_IMAGE_JAVA_HOME = "/usr/lib/jvm/java-8-openjdk-amd64"
_CONFIGS_OUTPUT_BASE = "tools/cross-toolchain/configs"
_CLANG_ENV = {
"BAZEL_COMPILER": "clang",
"BAZEL_LINKLIBS": "-l%:libstdc++.a",
"BAZEL_LINKOPTS": "-lm:-static-libgcc",
"BAZEL_USE_LLVM_NATIVE_COVERAGE": "1",
"GCOV": "llvm-profdata",
"CC": "clang",
"CXX": "clang++",
}
_GCC_ENV = {
"BAZEL_COMPILER": "gcc",
"BAZEL_LINKLIBS": "-l%:libstdc++.a",
"BAZEL_LINKOPTS": "-lm:-static-libgcc",
"CC": "gcc",
"CXX": "g++",
}
_TOOLCHAIN_CONFIG_SUITE_SPEC = {
"container_registry": _PRYSM_BUILD_IMAGE_REGISTRY,
"container_repo": _PRYSM_BUILD_IMAGE_REPOSITORY,
"output_base": _CONFIGS_OUTPUT_BASE,
"repo_name": "prysm",
"toolchain_config_suite_autogen_spec": _generated_toolchain_config_suite_autogen_spec,
}
def _rbe_toolchains_generator():
rbe_autoconfig(
name = "rbe_ubuntu_clang_gen",
digest = _PRYSM_BUILD_IMAGE_DIGEST,
export_configs = True,
java_home = _PRYSM_BUILD_IMAGE_JAVA_HOME,
registry = _PRYSM_BUILD_IMAGE_REGISTRY,
repository = _PRYSM_BUILD_IMAGE_REPOSITORY,
env = _CLANG_ENV,
toolchain_config_spec_name = "clang",
toolchain_config_suite_spec = _TOOLCHAIN_CONFIG_SUITE_SPEC,
use_checked_in_confs = "False",
config_repos = [
"prysm_toolchains",
],
use_legacy_platform_definition = False,
exec_compatible_with = [
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:clang",
],
)
rbe_autoconfig(
name = "rbe_ubuntu_gcc_gen",
digest = _PRYSM_BUILD_IMAGE_DIGEST,
export_configs = True,
java_home = _PRYSM_BUILD_IMAGE_JAVA_HOME,
registry = _PRYSM_BUILD_IMAGE_REGISTRY,
repository = _PRYSM_BUILD_IMAGE_REPOSITORY,
env = _GCC_ENV,
toolchain_config_spec_name = "gcc",
toolchain_config_suite_spec = _TOOLCHAIN_CONFIG_SUITE_SPEC,
use_checked_in_confs = "False",
config_repos = [
"prysm_toolchains",
],
use_legacy_platform_definition = False,
exec_compatible_with = [
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:gcc",
],
)
def _generated_rbe_toolchains():
rbe_autoconfig(
name = "rbe_ubuntu_clang",
digest = _PRYSM_BUILD_IMAGE_DIGEST,
export_configs = True,
java_home = _PRYSM_BUILD_IMAGE_JAVA_HOME,
registry = _PRYSM_BUILD_IMAGE_REGISTRY,
repository = _PRYSM_BUILD_IMAGE_REPOSITORY,
toolchain_config_spec_name = "clang",
toolchain_config_suite_spec = _TOOLCHAIN_CONFIG_SUITE_SPEC,
use_checked_in_confs = "Force",
use_legacy_platform_definition = False,
exec_compatible_with = [
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:clang",
],
)
def rbe_toolchains_config():
_rbe_toolchains_generator()
_generated_rbe_toolchains()