From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Thomas Perale <thomas.perale@essensium.com>
Cc: Christian Stewart <christian@paral.in>,
Thomas Perale <thomas.perale@mind.be>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2 2/6] package/go: new subdirectory for go variants
Date: Sat, 1 Jun 2024 17:41:36 +0200 [thread overview]
Message-ID: <ZltBMAVYJwl5dANu@landeda> (raw)
In-Reply-To: <20240415162229.1357491-3-thomas.perale@mind.be>
Thomas, All,
On 2024-04-15 18:22 +0200, Thomas Perale via buildroot spake thusly:
> 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>
Applied to next, thanks.
Note that we had since bumped to go 1.22.3, so I did fix the conflict
when applying; please have a look and shout at me if I borked something.
Regards,
Yann E. MORIN.
> ---
> .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
>
> diff --git a/.checkpackageignore b/.checkpackageignore
> index 1b336ce7a3..b3eab26071 100644
> --- a/.checkpackageignore
> +++ b/.checkpackageignore
> @@ -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
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 039b803d50..51fc4962c9 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -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/
> diff --git a/package/Config.in.host b/package/Config.in.host
> index 9543a22ffc..2c481cfae7 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -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"
> diff --git a/package/go/Config.in.host b/package/go/Config.in.host
> index 0d89e875ad..7edf45850d 100644
> --- a/package/go/Config.in.host
> +++ b/package/go/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"
> diff --git a/package/go-bootstrap-stage1/Config.in.host b/package/go/go-bootstrap-stage1/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
> diff --git a/package/go-bootstrap-stage1/go-bootstrap-stage1.hash b/package/go/go-bootstrap-stage1/go-bootstrap-stage1.hash
> similarity index 100%
> rename from package/go-bootstrap-stage1/go-bootstrap-stage1.hash
> rename to package/go/go-bootstrap-stage1/go-bootstrap-stage1.hash
> diff --git a/package/go-bootstrap-stage1/go-bootstrap-stage1.mk b/package/go/go-bootstrap-stage1/go-bootstrap-stage1.mk
> similarity index 100%
> rename from package/go-bootstrap-stage1/go-bootstrap-stage1.mk
> rename to package/go/go-bootstrap-stage1/go-bootstrap-stage1.mk
> diff --git a/package/go-bootstrap-stage2/Config.in.host b/package/go/go-bootstrap-stage2/Config.in.host
> similarity index 100%
> rename from package/go-bootstrap-stage2/Config.in.host
> rename to package/go/go-bootstrap-stage2/Config.in.host
> diff --git a/package/go-bootstrap-stage2/go-bootstrap-stage2.hash b/package/go/go-bootstrap-stage2/go-bootstrap-stage2.hash
> similarity index 100%
> rename from package/go-bootstrap-stage2/go-bootstrap-stage2.hash
> rename to package/go/go-bootstrap-stage2/go-bootstrap-stage2.hash
> diff --git a/package/go-bootstrap-stage2/go-bootstrap-stage2.mk b/package/go/go-bootstrap-stage2/go-bootstrap-stage2.mk
> similarity index 100%
> rename from package/go-bootstrap-stage2/go-bootstrap-stage2.mk
> rename to package/go/go-bootstrap-stage2/go-bootstrap-stage2.mk
> diff --git a/package/go-bootstrap-stage3/Config.in.host b/package/go/go-bootstrap-stage3/Config.in.host
> similarity index 100%
> rename from package/go-bootstrap-stage3/Config.in.host
> rename to package/go/go-bootstrap-stage3/Config.in.host
> diff --git a/package/go-bootstrap-stage3/go-bootstrap-stage3.hash b/package/go/go-bootstrap-stage3/go-bootstrap-stage3.hash
> similarity index 100%
> rename from package/go-bootstrap-stage3/go-bootstrap-stage3.hash
> rename to package/go/go-bootstrap-stage3/go-bootstrap-stage3.hash
> diff --git a/package/go-bootstrap-stage3/go-bootstrap-stage3.mk b/package/go/go-bootstrap-stage3/go-bootstrap-stage3.mk
> similarity index 100%
> rename from package/go-bootstrap-stage3/go-bootstrap-stage3.mk
> rename to package/go/go-bootstrap-stage3/go-bootstrap-stage3.mk
> diff --git a/package/go/go.mk b/package/go/go.mk
> index 0e39ad9f8c..104a4a73fb 100644
> --- a/package/go/go.mk
> +++ b/package/go/go.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))
> diff --git a/package/go/0001-build.go-explicit-option-for-crosscompilation.patch b/package/go/go/0001-build.go-explicit-option-for-crosscompilation.patch
> 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
> diff --git a/package/go/0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.patch b/package/go/go/0002-cmd-dist-set-buildvcs-false-when-building-go-bootstr.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
> diff --git a/package/go/go.hash b/package/go/go/go.hash
> similarity index 100%
> rename from package/go/go.hash
> rename to package/go/go/go.hash
> diff --git a/package/go/go/go.mk b/package/go/go/go.mk
> new file mode 100644
> index 0000000000..c3c40922f4
> --- /dev/null
> +++ b/package/go/go/go.mk
> @@ -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))
> --
> 2.44.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2024-06-01 15:41 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-15 16:22 [Buildroot] [PATCH v2 0/6] support for a pre-built Go compiler Thomas Perale via buildroot
2024-04-15 16:22 ` [Buildroot] [PATCH v2 1/6] DEVELOPERS: add Thomas Perale for 'go' Thomas Perale via buildroot
2024-04-15 16:44 ` Yann E. MORIN
2024-04-15 17:38 ` Thomas Perale via buildroot
2024-04-15 20:20 ` Yann E. MORIN
2024-06-01 15:39 ` Yann E. MORIN
2024-04-15 16:22 ` [Buildroot] [PATCH v2 2/6] package/go: new subdirectory for go variants Thomas Perale via buildroot
2024-06-01 15:41 ` Yann E. MORIN [this message]
2024-04-15 16:22 ` [Buildroot] [PATCH v2 3/6] package/pkg-golang: select BR2_PACKAGE_HOST_GO Thomas Perale via buildroot
2024-06-01 15:41 ` Yann E. MORIN
2024-06-06 11:44 ` Yann E. MORIN
2024-04-15 16:22 ` [Buildroot] [PATCH v2 4/6] package/go: make host package a virtual package Thomas Perale via buildroot
2024-06-01 15:42 ` Yann E. MORIN
2024-04-15 16:22 ` [Buildroot] [PATCH v2 5/6] package/go/go-bin: new host-go provider Thomas Perale via buildroot
2024-06-01 15:51 ` Yann E. MORIN
2024-06-14 4:07 ` Christian Stewart via buildroot
2024-06-14 5:44 ` Yann E. MORIN
2024-06-15 7:20 ` Yann E. MORIN
2024-08-19 21:22 ` Yann E. MORIN
2024-04-15 16:22 ` [Buildroot] [PATCH v2 6/6] support/testing: add tests for Go providers Thomas Perale via buildroot
2024-06-01 15:51 ` Yann E. MORIN
2024-06-01 15:54 ` [Buildroot] [PATCH v2 0/6] support for a pre-built Go compiler Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZltBMAVYJwl5dANu@landeda \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=christian@paral.in \
--cc=thomas.perale@essensium.com \
--cc=thomas.perale@mind.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.