[Buildroot] [PATCH 5/6] package/go/go-bin: new go provider
Thomas Perale
thomas.perale at essensium.com
Fri Apr 12 13:26:57 UTC 2024
This package provides a pre-built version for the host-go virtual
package introduced in the previous commits.
host-go-bin install a pre-built version of the Go compiler.
The menuconfig entry for host-go is updated to expose the host-go-bin
provider. The dependencies are set as such as if host-go-src does not
support the host architecture, it will automatically fall back to
host-go-bin and vice versa.
Signed-off-by: Thomas Perale <thomas.perale at mind.be>
---
package/go/Config.in.host | 14 ++++++++++++--
package/go/go-bin/Config.in.host | 14 ++++++++++++++
package/go/go-bin/go-bin.hash | 8 ++++++++
package/go/go-bin/go-bin.mk | 19 +++++++++++++++++++
4 files changed, 53 insertions(+), 2 deletions(-)
create mode 100644 package/go/go-bin/Config.in.host
create mode 100644 package/go/go-bin/go-bin.hash
create mode 100644 package/go/go-bin/go-bin.mk
diff --git a/package/go/Config.in.host b/package/go/Config.in.host
index a213ee94bf..c98e41483d 100644
--- a/package/go/Config.in.host
+++ b/package/go/Config.in.host
@@ -30,7 +30,7 @@ config BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
config BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
bool
default y
- depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE3_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE3_ARCH_SUPPORTS || BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_GO
bool "host go compiler"
@@ -44,7 +44,8 @@ if BR2_PACKAGE_HOST_GO
choice
prompt "Go compiler variant"
- default BR2_PACKAGE_HOST_GO_SRC
+ default BR2_PACKAGE_HOST_GO_SRC if BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE3_ARCH_SUPPORTS
+ default BR2_PACKAGE_HOST_GO_BIN if BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
help
Select a Go compiler variant.
@@ -52,18 +53,27 @@ choice
config BR2_PACKAGE_HOST_GO_SRC
bool "host go (source)"
+ depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE3_ARCH_SUPPORTS
help
This package will build the go compiler for the host.
+config BR2_PACKAGE_HOST_GO_BIN
+ bool "host go (pre-built)"
+ depends on BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
+ help
+ This package will install pre-built versions of the compiler
+
endchoice
config BR2_PACKAGE_PROVIDES_HOST_GO
string
# Default to host-go-src
default "host-go-src" if BR2_PACKAGE_HOST_GO_SRC
+ default "host-go-bin" if BR2_PACKAGE_HOST_GO_BIN
endif
+source "package/go/go-bin/Config.in.host"
source "package/go/go-bootstrap-stage1/Config.in.host"
source "package/go/go-bootstrap-stage2/Config.in.host"
source "package/go/go-bootstrap-stage3/Config.in.host"
diff --git a/package/go/go-bin/Config.in.host b/package/go/go-bin/Config.in.host
new file mode 100644
index 0000000000..b259afa197
--- /dev/null
+++ b/package/go/go-bin/Config.in.host
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH
+ string "Translate the HOSTARCH into the architecture name used by the Go compiler"
+ default armv6l if BR2_HOSTARCH = "arm"
+ default arm64 if BR2_HOSTARCH = "aarch64"
+ default ppc64le if BR2_HOSTARCH = "powerpc64le"
+ default s390x if BR2_HOSTARCH = "s390x"
+ default 386 if BR2_HOSTARCH = "x86"
+ default amd64 if BR2_HOSTARCH = "x86_64"
+ default ""
+
+config BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH_SUPPORTS
+ bool
+ default y
+ depends on BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH != ""
diff --git a/package/go/go-bin/go-bin.hash b/package/go/go-bin/go-bin.hash
new file mode 100644
index 0000000000..298503c156
--- /dev/null
+++ b/package/go/go-bin/go-bin.hash
@@ -0,0 +1,8 @@
+# sha256 checksum from https://go.dev/dl/
+sha256 586d9eb7fe0489ab297ad80dd06414997df487c5cf536c490ffeaa8d8f1807a7 go1.22.2.linux-386.tar.gz
+sha256 5901c52b7a78002aeff14a21f93e0f064f74ce1360fce51c6ee68cd471216a17 go1.22.2.linux-amd64.tar.gz
+sha256 36e720b2d564980c162a48c7e97da2e407dfcc4239e1e58d98082dfa2486a0c1 go1.22.2.linux-arm64.tar.gz
+sha256 9243dfafde06e1efe24d59df6701818e6786b4adfdf1191098050d6d023c5369 go1.22.2.linux-armv6l.tar.gz
+sha256 32ea3dfef75d6a4d42a28a315148ba54c4f6f9a8dc93a522d421d13df0e6c3b7 go1.22.2.linux-ppc64le.tar.gz
+sha256 2b39019481c28c560d65e9811a478ae10e3ef765e0f59af362031d386a71bfef go1.22.2.linux-s390x.tar.gz
+sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE
diff --git a/package/go/go-bin/go-bin.mk b/package/go/go-bin/go-bin.mk
new file mode 100644
index 0000000000..6c5c1b6485
--- /dev/null
+++ b/package/go/go-bin/go-bin.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# go-bin
+#
+################################################################################
+
+GO_BIN_SITE = https://go.dev/dl
+GO_BIN_LICENSE = BSD-3-Clause
+GO_BIN_LICENSE_FILES = LICENSE
+
+HOST_GO_BIN_PROVIDES = host-go
+
+HOST_GO_BIN_SOURCE = go$(GO_VERSION).linux-$(call qstrip, $(BR2_PACKAGE_HOST_GO_BIN_HOST_ARCH)).tar.gz
+
+define HOST_GO_BIN_INSTALL_CMDS
+ $(GO_BINARIES_INSTALL)
+endef
+
+$(eval $(host-generic-package))
--
2.44.0
More information about the buildroot
mailing list