Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
Currently, we're unable to build for other OS / architecture whenever the binary target depends on a cgo library. This includes any dependency on go-ethereum in the beacon-chain and potentially a future BLS library.
To reproduce the issue, try building the beacon chain with a different toolchain specified.
Building in on linux targeting windows:
bazel build --platforms=@io_bazel_rules_go//go/toolchain:windows_amd64 //beacon-chain
Building on linux amd64 targeting arm64.
bazel build --platforms=@io_bazel_rules_go//go/toolchain:linux_arm64 //beacon-chain
- We're using a [fork of go-ethereum](https://github.com/prysmaticlabs/bazel-go-ethereum) which has the generated BUILD files to support bazel.
- Removing cgo dependencies are not an option as we expect to have more cgo dependencies in the future. Pure go builds would be nice and we'd have support for windows / ARM from linux today if that were the case!
- We must support linux -> [darwin_amd64, arm64, windows_amd64] targets. When you're writing cc toolchains, adding Mac OS as the host is optional, but appreciated (expect a bounty tip if Mac OS as host is supported!).
- This is a pretty involved task. If you are up to taking it on, you'll be mostly on your own to figure it out. Good luck :)
These blocked issues may have some additional context from previous attempts to resolve this.