@@ -465,7 +465,7 @@ package/glorytun/0002-aegis256.c-fix-aarch64-build-with-uclibc.patch lib_patch.U
package/gnu-efi/0001-Make.defaults-don-t-override-ARCH-when-cross-compili.patch lib_patch.Upstream
package/gnupg/0001-build-Always-use-EXTERN_UNLESS_MAIN_MODULE-pattern.patch lib_patch.Upstream
package/gnuplot/0001-configure-add-without-demo-option.patch lib_patch.Upstream
-package/go/0001-build.go-explicit-option-for-crosscompilation.patch lib_patch.Upstream
+package/go/go/0001-build.go-explicit-option-for-crosscompilation.patch lib_patch.Upstream
package/gob2/0001-dont-include-from-prefix.patch lib_patch.Upstream
package/gobject-introspection/0001-disable-tests.patch lib_patch.Upstream
package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch lib_patch.Upstream
@@ -603,9 +603,6 @@ F: package/docker-engine/
F: package/embiggen-disk/
F: package/fuse-overlayfs/
F: package/go/
-F: package/go-bootstrap-stage1/
-F: package/go-bootstrap-stage2/
-F: package/go-bootstrap-stage3/
F: package/gocryptfs/
F: package/mbpfan/
F: package/moby-buildkit/
@@ -44,9 +44,6 @@ menu "Host utilities"
source "package/genpart/Config.in.host"
source "package/gnupg/Config.in.host"
source "package/go/Config.in.host"
- source "package/go-bootstrap-stage1/Config.in.host"
- source "package/go-bootstrap-stage2/Config.in.host"
- source "package/go-bootstrap-stage3/Config.in.host"
source "package/google-breakpad/Config.in.host"
source "package/gptfdisk/Config.in.host"
source "package/imagemagick/Config.in.host"
@@ -31,3 +31,7 @@ config BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
bool
default y
depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE3_ARCH_SUPPORTS
+
+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"
similarity index 100%
rename from package/go-bootstrap-stage1/Config.in.host
rename to package/go/go-bootstrap-stage1/Config.in.host
similarity index 100%
rename from package/go-bootstrap-stage1/go-bootstrap-stage1.hash
rename to package/go/go-bootstrap-stage1/go-bootstrap-stage1.hash
similarity index 100%
rename from package/go-bootstrap-stage1/go-bootstrap-stage1.mk
rename to package/go/go-bootstrap-stage1/go-bootstrap-stage1.mk
similarity index 100%
rename from package/go-bootstrap-stage2/Config.in.host
rename to package/go/go-bootstrap-stage2/Config.in.host
similarity index 100%
rename from package/go-bootstrap-stage2/go-bootstrap-stage2.hash
rename to package/go/go-bootstrap-stage2/go-bootstrap-stage2.hash
similarity index 100%
rename from package/go-bootstrap-stage2/go-bootstrap-stage2.mk
rename to package/go/go-bootstrap-stage2/go-bootstrap-stage2.mk
similarity index 100%
rename from package/go-bootstrap-stage3/Config.in.host
rename to package/go/go-bootstrap-stage3/Config.in.host
similarity index 100%
rename from package/go-bootstrap-stage3/go-bootstrap-stage3.hash
rename to package/go/go-bootstrap-stage3/go-bootstrap-stage3.hash
similarity index 100%
rename from package/go-bootstrap-stage3/go-bootstrap-stage3.mk
rename to package/go/go-bootstrap-stage3/go-bootstrap-stage3.mk
@@ -5,14 +5,7 @@
################################################################################
GO_VERSION = 1.22.2
-GO_SITE = https://storage.googleapis.com/golang
-GO_SOURCE = go$(GO_VERSION).src.tar.gz
-GO_LICENSE = BSD-3-Clause
-GO_LICENSE_FILES = LICENSE
-GO_CPE_ID_VENDOR = golang
-
-HOST_GO_DEPENDENCIES = host-go-bootstrap-stage3
HOST_GO_GOPATH = $(HOST_DIR)/share/go-path
HOST_GO_HOST_CACHE = $(HOST_DIR)/share/host-go-cache
HOST_GO_ROOT = $(HOST_DIR)/lib/go
@@ -96,15 +89,6 @@ else
HOST_GO_CGO_ENABLED = 0
endif
-HOST_GO_CROSS_ENV = \
- CC_FOR_TARGET="$(TARGET_CC)" \
- CXX_FOR_TARGET="$(TARGET_CXX)" \
- GOOS="linux" \
- GOARCH=$(GO_GOARCH) \
- $(if $(GO_GO386),GO386=$(GO_GO386)) \
- $(if $(GO_GOARM),GOARM=$(GO_GOARM)) \
- GO_ASSUME_CROSSCOMPILING=1
-
else # !BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
# host-go can still be used to build packages for the host. No need to set all
# the arch stuff since we will not be cross-compiling.
@@ -123,27 +107,7 @@ HOST_GO_HOST_ENV = \
CGO_CXXFLAGS="$(HOST_CXXFLAGS)" \
CGO_LDFLAGS="$(HOST_LDFLAGS)"
-# The go build system is not compatible with ccache, so use
-# HOSTCC_NOCCACHE. See https://github.com/golang/go/issues/11685.
-HOST_GO_MAKE_ENV = \
- GO111MODULE=off \
- GOCACHE=$(HOST_GO_HOST_CACHE) \
- GOROOT_BOOTSTRAP=$(HOST_GO_BOOTSTRAP_STAGE3_ROOT) \
- GOROOT_FINAL=$(HOST_GO_ROOT) \
- GOROOT="$(@D)" \
- GOBIN="$(@D)/bin" \
- GOOS=linux \
- CC=$(HOSTCC_NOCCACHE) \
- CXX=$(HOSTCXX_NOCCACHE) \
- CGO_ENABLED=$(HOST_GO_CGO_ENABLED) \
- $(HOST_GO_CROSS_ENV)
-
-define HOST_GO_BUILD_CMDS
- cd $(@D)/src && \
- $(HOST_GO_MAKE_ENV) ./make.bash $(if $(VERBOSE),-v)
-endef
-
-define HOST_GO_INSTALL_CMDS
+define GO_BINARIES_INSTALL
$(INSTALL) -D -m 0755 $(@D)/bin/go $(HOST_GO_ROOT)/bin/go
$(INSTALL) -D -m 0755 $(@D)/bin/gofmt $(HOST_GO_ROOT)/bin/gofmt
@@ -165,4 +129,4 @@ define HOST_GO_INSTALL_CMDS
find $(HOST_GO_ROOT) -type f -exec touch -r $(@D)/bin/go {} \;
endef
-$(eval $(host-generic-package))
+include $(sort $(wildcard package/go/*/*.mk))
similarity index 100%
rename from package/go/0001-build.go-explicit-option-for-crosscompilation.patch
rename to package/go/go/0001-build.go-explicit-option-for-crosscompilation.patch
similarity index 100%
rename from package/go/0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.patch
rename to package/go/go/0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.patch
similarity index 100%
rename from package/go/go.hash
rename to package/go/go/go.hash
new file mode 100644
@@ -0,0 +1,53 @@
+################################################################################
+#
+# go
+#
+################################################################################
+
+GO_SITE = https://storage.googleapis.com/golang
+GO_SOURCE = go$(GO_VERSION).src.tar.gz
+
+GO_LICENSE = BSD-3-Clause
+GO_LICENSE_FILES = LICENSE
+GO_CPE_ID_VENDOR = golang
+
+HOST_GO_DEPENDENCIES = host-go-bootstrap-stage3
+
+ifeq ($(BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS),y)
+
+HOST_GO_CROSS_ENV = \
+ CC_FOR_TARGET="$(TARGET_CC)" \
+ CXX_FOR_TARGET="$(TARGET_CXX)" \
+ GOOS="linux" \
+ GOARCH=$(GO_GOARCH) \
+ $(if $(GO_GO386),GO386=$(GO_GO386)) \
+ $(if $(GO_GOARM),GOARM=$(GO_GOARM)) \
+ GO_ASSUME_CROSSCOMPILING=1
+
+endif
+
+# The go build system is not compatible with ccache, so use
+# HOSTCC_NOCCACHE. See https://github.com/golang/go/issues/11685.
+HOST_GO_MAKE_ENV = \
+ GO111MODULE=off \
+ GOCACHE=$(HOST_GO_HOST_CACHE) \
+ GOROOT_BOOTSTRAP=$(HOST_GO_BOOTSTRAP_STAGE3_ROOT) \
+ GOROOT_FINAL=$(HOST_GO_ROOT) \
+ GOROOT="$(@D)" \
+ GOBIN="$(@D)/bin" \
+ GOOS=linux \
+ CC=$(HOSTCC_NOCCACHE) \
+ CXX=$(HOSTCXX_NOCCACHE) \
+ CGO_ENABLED=$(HOST_GO_CGO_ENABLED) \
+ $(HOST_GO_CROSS_ENV)
+
+define HOST_GO_BUILD_CMDS
+ cd $(@D)/src && \
+ $(HOST_GO_MAKE_ENV) ./make.bash $(if $(VERBOSE),-v)
+endef
+
+define HOST_GO_INSTALL_CMDS
+ $(GO_BINARIES_INSTALL)
+endef
+
+$(eval $(host-generic-package))
Move every go compiler-related packages into a newly created package/go/ subdirectory. This subdirectory structure moves the GO_VERSION variable into the common package/go/go.mk file. In the next commits, host-go will be turned into a virtual-package and the common GO_VERSION force the providers to use the same Go compiler version. Common variables to all providers are kept in package/go/go.mk and package/go/Config.in.host. Also, the subdirectory structure forces the evaluation of the common GO_VERSION before the providers access it. Signed-off-by: Thomas Perale <thomas.perale@mind.be> --- .checkpackageignore | 2 +- DEVELOPERS | 3 -- package/Config.in.host | 3 -- package/go/Config.in.host | 4 ++ .../go-bootstrap-stage1/Config.in.host | 0 .../go-bootstrap-stage1.hash | 0 .../go-bootstrap-stage1.mk | 0 .../go-bootstrap-stage2/Config.in.host | 0 .../go-bootstrap-stage2.hash | 0 .../go-bootstrap-stage2.mk | 0 .../go-bootstrap-stage3/Config.in.host | 0 .../go-bootstrap-stage3.hash | 0 .../go-bootstrap-stage3.mk | 0 package/go/go.mk | 40 +------------- ...explicit-option-for-crosscompilation.patch | 0 ...ldvcs-false-when-building-go-bootstr.patch | 0 package/go/{ => go}/go.hash | 0 package/go/go/go.mk | 53 +++++++++++++++++++ 18 files changed, 60 insertions(+), 45 deletions(-) rename package/{ => go}/go-bootstrap-stage1/Config.in.host (100%) rename package/{ => go}/go-bootstrap-stage1/go-bootstrap-stage1.hash (100%) rename package/{ => go}/go-bootstrap-stage1/go-bootstrap-stage1.mk (100%) rename package/{ => go}/go-bootstrap-stage2/Config.in.host (100%) rename package/{ => go}/go-bootstrap-stage2/go-bootstrap-stage2.hash (100%) rename package/{ => go}/go-bootstrap-stage2/go-bootstrap-stage2.mk (100%) rename package/{ => go}/go-bootstrap-stage3/Config.in.host (100%) rename package/{ => go}/go-bootstrap-stage3/go-bootstrap-stage3.hash (100%) rename package/{ => go}/go-bootstrap-stage3/go-bootstrap-stage3.mk (100%) rename package/go/{ => go}/0001-build.go-explicit-option-for-crosscompilation.patch (100%) rename package/go/{ => go}/0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.patch (100%) rename package/go/{ => go}/go.hash (100%) create mode 100644 package/go/go/go.mk -- 2.44.0