From b4b976c28b2000610012d683fd7b322e0e5d25c4 Mon Sep 17 00:00:00 2001 From: Leo Lara Date: Sun, 20 Feb 2022 01:17:08 +0700 Subject: [PATCH] Experimental prototype of Apple M1 processor support (#10192) * Experimental prototype of Apple M1 processor support * Enable Apple M1 compilation of herumi MCL by adding a precompiled library * Renable nogo * Fix by gazelle * Update go.mod to reflect go 1.17.6 changes in WORKSPACE * go mod tidy Co-authored-by: Raul Jordan Co-authored-by: prestonvanloon --- WORKSPACE | 2 +- crypto/bls/blst/BUILD.bazel | 17 ++ go.mod | 148 +++++++++++++++++- third_party/herumi/BUILD.bazel | 1 + third_party/herumi/bls_eth_go_binary.BUILD | 3 + third_party/herumi/mcl.BUILD | 3 + third_party/herumi/mcl_darwin_arm64_base64.o | Bin 0 -> 28848 bytes .../cc_toolchain.BUILD.bazel.tpl | 10 ++ 8 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 third_party/herumi/mcl_darwin_arm64_base64.o diff --git a/WORKSPACE b/WORKSPACE index c5c68ffc25..2d5f48c486 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -183,7 +183,7 @@ load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_depe go_rules_dependencies() go_register_toolchains( - go_version = "1.16.4", + go_version = "1.17.6", nogo = "@//:nogo", ) diff --git a/crypto/bls/blst/BUILD.bazel b/crypto/bls/blst/BUILD.bazel index 319965c0a5..4d3248cb95 100644 --- a/crypto/bls/blst/BUILD.bazel +++ b/crypto/bls/blst/BUILD.bazel @@ -25,6 +25,17 @@ config_setting( }, ) +config_setting( + name = "darwin_arm64", + constraint_values = [ + "@platforms//os:osx", + "@platforms//cpu:arm64", + ], + values = { + "define": "blst_disabled=false", + }, +) + config_setting( name = "windows_amd64", constraint_values = [ @@ -79,6 +90,7 @@ go_library( ":linux_amd64", ":linux_arm64", ":darwin_amd64", + ":darwin_arm64", ":windows_amd64", ":android_amd64", ":android_arm64", @@ -103,6 +115,7 @@ go_library( ":linux_amd64", ":linux_arm64", ":darwin_amd64", + ":darwin_arm64", ":windows_amd64", ":android_amd64", ":android_arm64", @@ -128,6 +141,7 @@ go_test( ":linux_amd64", ":linux_arm64", ":darwin_amd64", + ":darwin_arm64", ":windows_amd64", ":android_amd64", ":android_arm64", @@ -142,6 +156,7 @@ go_test( ":linux_amd64", ":linux_arm64", ":darwin_amd64", + ":darwin_arm64", ":windows_amd64", ":android_amd64", ":android_arm64", @@ -164,6 +179,7 @@ go_test( ":linux_amd64", ":linux_arm64", ":darwin_amd64", + ":darwin_arm64", ":windows_amd64", ":android_amd64", ":android_arm64", @@ -178,6 +194,7 @@ go_test( ":linux_amd64", ":linux_arm64", ":darwin_amd64", + ":darwin_arm64", ":windows_amd64", ":android_amd64", ":android_arm64", diff --git a/go.mod b/go.mod index 03918df358..8e7820af02 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/prysmaticlabs/prysm -go 1.16 +go 1.17 require ( contrib.go.opencensus.io/exporter/jaeger v0.2.1 @@ -93,6 +93,152 @@ require ( k8s.io/client-go v0.18.3 ) +require ( + github.com/BurntSushi/toml v0.3.1 // indirect + github.com/VictoriaMetrics/fastcache v1.6.0 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/btcsuite/btcd v0.22.0-beta // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/cheekybits/genny v1.0.0 // indirect + github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect + github.com/deepmap/oapi-codegen v1.8.2 // indirect + github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect + github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48 // indirect + github.com/edsrzf/mmap-go v1.0.0 // indirect + github.com/flynn/noise v1.0.0 // indirect + github.com/francoispqt/gojay v1.2.13 // indirect + github.com/go-playground/locales v0.14.0 // indirect + github.com/go-playground/universal-translator v0.18.0 // indirect + github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect + github.com/go-stack/stack v1.8.0 // indirect + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect + github.com/google/go-cmp v0.5.5 // indirect + github.com/google/gopacket v1.1.19 // indirect + github.com/gorilla/websocket v1.4.2 // indirect + github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29 // indirect + github.com/hashicorp/go-bexpr v0.1.10 // indirect + github.com/holiman/bloomfilter/v2 v2.0.3 // indirect + github.com/huin/goupnp v1.0.2 // indirect + github.com/influxdata/influxdb v1.8.3 // indirect + github.com/influxdata/influxdb-client-go/v2 v2.4.0 // indirect + github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097 // indirect + github.com/ipfs/go-cid v0.0.7 // indirect + github.com/ipfs/go-ipfs-util v0.0.2 // indirect + github.com/ipfs/go-log v1.0.5 // indirect + github.com/jackpal/go-nat-pmp v1.0.2 // indirect + github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect + github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a // indirect + github.com/karalabe/usb v0.0.0-20211005121534-4c5740d64559 // indirect + github.com/klauspost/compress v1.11.7 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect + github.com/koron/go-ssdp v0.0.2 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/libp2p/go-addr-util v0.1.0 // indirect + github.com/libp2p/go-buffer-pool v0.0.2 // indirect + github.com/libp2p/go-cidranger v1.1.0 // indirect + github.com/libp2p/go-conn-security-multistream v0.3.0 // indirect + github.com/libp2p/go-eventbus v0.2.1 // indirect + github.com/libp2p/go-flow-metrics v0.0.3 // indirect + github.com/libp2p/go-libp2p-asn-util v0.1.0 // indirect + github.com/libp2p/go-libp2p-autonat v0.7.0 // indirect + github.com/libp2p/go-libp2p-discovery v0.6.0 // indirect + github.com/libp2p/go-libp2p-mplex v0.4.1 // indirect + github.com/libp2p/go-libp2p-nat v0.1.0 // indirect + github.com/libp2p/go-libp2p-pnet v0.2.0 // indirect + github.com/libp2p/go-libp2p-quic-transport v0.15.2 // indirect + github.com/libp2p/go-libp2p-testing v0.6.0 // indirect + github.com/libp2p/go-libp2p-tls v0.3.1 // indirect + github.com/libp2p/go-libp2p-transport-upgrader v0.6.0 // indirect + github.com/libp2p/go-libp2p-yamux v0.7.0 // indirect + github.com/libp2p/go-maddr-filter v0.1.0 // indirect + github.com/libp2p/go-mplex v0.3.0 // indirect + github.com/libp2p/go-msgio v0.1.0 // indirect + github.com/libp2p/go-nat v0.1.0 // indirect + github.com/libp2p/go-netroute v0.1.6 // indirect + github.com/libp2p/go-openssl v0.0.7 // indirect + github.com/libp2p/go-reuseport v0.1.0 // indirect + github.com/libp2p/go-reuseport-transport v0.1.0 // indirect + github.com/libp2p/go-sockaddr v0.1.1 // indirect + github.com/libp2p/go-stream-muxer-multistream v0.3.0 // indirect + github.com/libp2p/go-ws-transport v0.5.0 // indirect + github.com/libp2p/go-yamux/v2 v2.3.0 // indirect + github.com/lucas-clemente/quic-go v0.24.0 // indirect + github.com/lunixbochs/vtclean v1.0.0 // indirect + github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect + github.com/marten-seemann/qtls-go1-17 v0.1.0 // indirect + github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect + github.com/miekg/dns v1.1.43 // indirect + github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect + github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect + github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect + github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect + github.com/mitchellh/mapstructure v1.4.1 // indirect + github.com/mitchellh/pointerstructure v1.2.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/mr-tron/base58 v1.2.0 // indirect + github.com/multiformats/go-base32 v0.0.3 // indirect + github.com/multiformats/go-base36 v0.1.0 // indirect + github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect + github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect + github.com/multiformats/go-multibase v0.0.3 // indirect + github.com/multiformats/go-multihash v0.0.15 // indirect + github.com/multiformats/go-multistream v0.2.2 // indirect + github.com/multiformats/go-varint v0.0.6 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/common v0.30.0 // indirect + github.com/prometheus/procfs v0.7.3 // indirect + github.com/rjeczalik/notify v0.9.1 // indirect + github.com/rogpeppe/go-internal v1.8.0 // indirect + github.com/russross/blackfriday/v2 v2.0.1 // indirect + github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect + github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect + github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/tklauser/go-sysconf v0.3.5 // indirect + github.com/tklauser/numcpus v0.2.2 // indirect + github.com/uber/jaeger-client-go v2.25.0+incompatible // indirect + github.com/wealdtech/go-eth2-types/v2 v2.5.2 // indirect + github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 // indirect + github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.7.0 // indirect + go.uber.org/zap v1.19.0 // indirect + golang.org/x/mod v0.5.1 // indirect + golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect + golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c // indirect + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect + gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect + gopkg.in/urfave/cli.v1 v1.20.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + k8s.io/apimachinery v0.18.3 // indirect + k8s.io/klog v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v3 v3.0.0 // indirect + sigs.k8s.io/yaml v1.2.0 // indirect +) + require ( github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46 // indirect github.com/allegro/bigcache v1.2.1 // indirect diff --git a/third_party/herumi/BUILD.bazel b/third_party/herumi/BUILD.bazel index e69de29bb2..79f1755a43 100644 --- a/third_party/herumi/BUILD.bazel +++ b/third_party/herumi/BUILD.bazel @@ -0,0 +1 @@ +exports_files(["mcl_darwin_arm64_base64.o"]) diff --git a/third_party/herumi/bls_eth_go_binary.BUILD b/third_party/herumi/bls_eth_go_binary.BUILD index 9ee0fc2afb..75b3c95e98 100644 --- a/third_party/herumi/bls_eth_go_binary.BUILD +++ b/third_party/herumi/bls_eth_go_binary.BUILD @@ -104,6 +104,9 @@ cc_library( "@io_bazel_rules_go//go/platform:darwin_amd64": [ "bls/lib/darwin/amd64/libbls384_256.a", ], + "@io_bazel_rules_go//go/platform:darwin_arm64": [ + "bls/lib/darwin/arm64/libbls384_256.a", + ], "@io_bazel_rules_go//go/platform:linux_amd64": [ "bls/lib/linux/amd64/libbls384_256.a", ], diff --git a/third_party/herumi/mcl.BUILD b/third_party/herumi/mcl.BUILD index 62524b7806..17fb043e87 100644 --- a/third_party/herumi/mcl.BUILD +++ b/third_party/herumi/mcl.BUILD @@ -17,6 +17,9 @@ cc_library( "@io_bazel_rules_go//go/platform:darwin_amd64": [ "src/asm/x86-64mac.s", ], + "@io_bazel_rules_go//go/platform:darwin_arm64": [ + "@prysm//third_party/herumi:mcl_darwin_arm64_base64.o", + ], "@io_bazel_rules_go//go/platform:linux_amd64": [ "src/asm/x86-64.s", ], diff --git a/third_party/herumi/mcl_darwin_arm64_base64.o b/third_party/herumi/mcl_darwin_arm64_base64.o new file mode 100644 index 0000000000000000000000000000000000000000..4d9986dd357113feb1bb7256aa9b274e92cc9de8 GIT binary patch literal 28848 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 Y(Whtg1>-kgT-n{axa01Lle;PZ7uSGF9RL6T literal 0 HcmV?d00001 diff --git a/tools/cross-toolchain/cc_toolchain.BUILD.bazel.tpl b/tools/cross-toolchain/cc_toolchain.BUILD.bazel.tpl index 33a178d3a5..c506f30292 100644 --- a/tools/cross-toolchain/cc_toolchain.BUILD.bazel.tpl +++ b/tools/cross-toolchain/cc_toolchain.BUILD.bazel.tpl @@ -40,6 +40,15 @@ config_setting( tags = ["manual"], ) +config_setting( + name = "osx_arm64", + constraint_values = [ + "@platforms//os:osx", + "@platforms//cpu:arm64", + ], + tags = ["manual"], +) + config_setting( name = "linux_arm64", constraint_values = [ @@ -156,6 +165,7 @@ toolchain( ":linux_arm64": ":cc-clang-arm64", ":linux_amd64": ":cc-clang-amd64", ":osx_amd64": ":cc-clang-osx", + ":osx_arm64": ":cc-clang-osx", ":windows_amd64": ":cc-mingw-amd64", }), toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",