package/go: bump version to 1.6.2
PATCH 1/1 package/go: bump version to 1.6.2
Golang has significant improvements to support for multiarch in later versions. This bump is required to make many go programs functional under arm64, for example.
--- package/go/go.hash | 2 +- package/go/go.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
package/go/go.hash +1 -1
@@ -1,2 +1,2 @@ # Locally computed: -sha256 754e06dab1c31ab168fc9db9e32596734015ea9e24bc44cae7f237f417ce4efe go1.5.3.src.tar.gz +sha256 787b0b750d037016a30c6ed05a8a70a91b2e9db4bd9b1a2453aa502a63f1bccc go1.6.2.src.tar.gz
package/go/go.mk +1 -1
@@ -4,7 +4,7 @@ # ################################################################################ -GO_VERSION = 1.5.3 +GO_VERSION = 1.6.2 GO_SITE = https://storage.googleapis.com/golang GO_SOURCE = go$(GO_VERSION).src.tar.gz
Signature · 1 line
2.7.3
PATCH 1/1 package/go: bump version to 1.6.2
Quoted 3 lines · Christian Stewart
Golang has significant improvements to support for multiarch in later versions. This bump is required to make many go programs functional under arm64, for example.
MIPS support was added in 1.6.
Otherwise, Acked-by: Geoff Levand <[email protected]>
package/go/Config.in.host +1 -1
@@ -2,5 +2,5 @@ config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS bool default y depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le + depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le || BR2_mips64 || BR2_mips64el depends on !BR2_ARM_CPU_ARMV4
package/go/go.mk +4 -0
@@ -30,6 +30,10 @@ else ifeq ($(BR2_powerpc64),y) GO_GOARCH = ppc64 else ifeq ($(BR2_powerpc64le),y) GO_GOARCH = ppc64le +else ifeq ($(BR2_mips64),y) +GO_GOARCH = mips64 +else ifeq ($(BR2_mips64el),y) +GO_GOARCH = mips64le endif HOST_GO_DEPENDENCIES = host-go-bootstrap
Signature · 1 line
2.5.0
PATCH 1/1 package/go: bump version to 1.6.2
Hello,
Quoted 13 lines · Geoff Levand
package/go/Config.in.host +1
-1@@ -2,5 +2,5 @@ config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS bool default y depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le + depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le || BR2_mips64 || BR2_mips64el depends on !BR2_ARM_CPU_ARMV4
package/go/go.mk else ifeq ($(BR2_powerpc64),y) · line 39
Quoted 10 lines
package/go/go.mk +4
-0@@ -30,6 +30,10 @@ else ifeq ($(BR2_powerpc64),y) GO_GOARCH = ppc64 else ifeq ($(BR2_powerpc64le),y) GO_GOARCH = ppc64le +else ifeq ($(BR2_mips64),y) +GO_GOARCH = mips64 +else ifeq ($(BR2_mips64el),y) +GO_GOARCH = mips64le endif HOST_GO_DEPENDENCIES = host-go-bootstrap
Could you submit this as a proper patch, with a description and your SoB ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/go: bump version to 1.6.2
It initially looks to me like we should add -fPIC to the cgo compilation flags. Will test and see.
Thanks for the patch.
Best,
Christian
Quoted 33 lines · Thomas Petazzoni
Hello,
package/go/Config.in.host config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS · line 5
Quoted 7 lines · Geoff Levand
package/go/Config.in.host +0
-1@@ -2,5 +2,5 @@ config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS bool default y depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 ||
BR2_powerpc64||BR2_powerpc64lepackage/go/Config.in.host config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS · line 5
Quoted 1 line
package/go/Config.in.host +1
-0+ depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 ||
BR2_powerpc64||BR2_powerpc64le||BR2_mips64||BR2_mips64elQuoted 5 lines
package/go/Config.in.host +0
-0depends on !BR2_ARM_CPU_ARMV4package/go/go.mk else ifeq ($(BR2_powerpc64),y) · line 39
Quoted 10 lines
package/go/go.mk +4
-0@@ -30,6 +30,10 @@ else ifeq ($(BR2_powerpc64),y) GO_GOARCH = ppc64 else ifeq ($(BR2_powerpc64le),y) GO_GOARCH = ppc64le +else ifeq ($(BR2_mips64),y) +GO_GOARCH = mips64 +else ifeq ($(BR2_mips64el),y) +GO_GOARCH = mips64le endif HOST_GO_DEPENDENCIES = host-go-bootstrapCould you submit this as a proper patch, with a description and your SoB ?
Quoted 8 lines
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160507/b51cee72/attachment.html>
Thomas Petazzoni
AppliedPATCH 1/1 package/go: bump version to 1.6.2
In reply to Christian StewartHello,
Quoted 9 lines · Christian Stewart
Golang has significant improvements to support for multiarch in later versions. This bump is required to make many go programs functional under arm64, for example.
Signed-off-by Christian Stewart <[email protected]>--- package/go/go.hash | 2 +- package/go/go.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
Applied to master, thanks. However, I've noticed that on my machine, host-go-bootstrap doesn't build:
net/rpc/jsonrpc
# cmd/pprof /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? runtime/cgo(.text): unexpected relocation type 298 runtime/cgo(.text): unexpected relocation type 298 # cmd/go /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? runtime/cgo(.text): unexpected relocation type 298 runtime/cgo(.text): unexpected relocation type 298 package/pkg-generic.mk:195: recipe for target '/home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/.stamp_built' failed make[1]: *** [/home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/.stamp_built] Error 2 Makefile:36: recipe for target '_all' failed make: *** [_all] Error 2
You should be able to reproduce with the following defconfig:
BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.02-3-g762b7c9.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_4_7=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_FLANNEL=y
# BR2_TARGET_ROOTFS_TAR is not set
Could you look into this?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/go: bump version to 1.6.2
Hi Thomas, Christian,
Quoted 4 lines · Thomas Petazzoni
Applied to master, thanks. However, I've noticed that on my machine, host-go-bootstrap doesn't build:
net/rpc/jsonrpc
Quoted 14 lines
# cmd/pprof /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? runtime/cgo(.text): unexpected relocation type 298 runtime/cgo(.text): unexpected relocation type 298 # cmd/go /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? /home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic? runtime/cgo(.text): unexpected relocation type 298 runtime/cgo(.text): unexpected relocation type 298 package/pkg-generic.mk:195: recipe for target '/home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/.stamp_built' failed make[1]: *** [/home/thomas/projets/buildroot/output/build/host-go-bootstrap-1.4.2/.stamp_built] Error 2 Makefile:36: recipe for target '_all' failed make: *** [_all] Error 2
Seems to be fixed in 1.5.2. See
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807136.
Quoted 1 line
You should be able to reproduce with the following defconfig:
You'll most likely also need a relatively recent host binutils to reproduce.
baruch
Quoted 18 lines
BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.02-3-g762b7c9.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_4_7=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
#BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUGis not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
#BR2_PACKAGE_BUSYBOXis not set
BR2_PACKAGE_FLANNEL=y
#BR2_TARGET_ROOTFS_TARis not setCould you look into this?
Signature · 3 lines
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 1/1 package/go: bump version to 1.6.2
Hello,
Quoted 2 lines · Baruch Siach
Seems to be fixed in 1.5.2. See
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807136.
As far as I understand, we can't use go 1.5.2 as the bootstrap compiler, because since 1.5.x, Go is written in Go. I guess we will have to backport the patch.
Christian, Geoff, do you know if the Go community intends to maintain Go 1.4.x for the foreseeable future, so that we can still officially rely on it as a bootstrap Go compiler?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/go: bump version to 1.6.2
Quoted 11 lines · Thomas Petazzoni
Hello,
Quoted 2 lines · Baruch Siach
Seems to be fixed in 1.5.2. See
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807136.As far as I understand, we can't use go 1.5.2 as the bootstrap compiler, because since 1.5.x, Go is written in Go. I guess we will have to backport the patch.
I think it should be sufficient to build the go-bootstrap compiler with "CGO_ENABLED=0" in its environment. This worked for me when I played with it and looks like the correct solution according to
https://github.com/golang/go/issues/13114
PATCH 1/1 package/go: bump version to 1.6.2
Hello,
Quoted 8 lines · Cam Hutchison
Quoted 3 lines
As far as I understand, we can't use go 1.5.2 as the bootstrap compiler, because since 1.5.x, Go is written in Go. I guess we will have to backport the patch.
I think it should be sufficient to build the go-bootstrap compiler with "CGO_ENABLED=0" in its environment. This worked for me when I played with it and looks like the correct solution according to
https://github.com/golang/go/issues/13114
When the packaging of Go was added to Buildroot, I was pointed to
https://docs.google.com/document/d/1OaatvGhEAq7VseQ9kkavxKNAfepWy2yhPUBs96FGV28/edit,
which says that using Go 1.4 as the bootstrap compiler to build Go 1.5 was the proper solution.
Now, if it is possible to use a two-stage build of go 1.5, then that's also fine with me, but it somewhat contradicts the above document.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/go: bump version to 1.6.2
Quoted 13 lines · Thomas Petazzoni
Hello,
Quoted 8 lines · Cam Hutchison
Quoted 3 lines
As far as I understand, we can't use go 1.5.2 as the bootstrap compiler, because since 1.5.x, Go is written in Go. I guess we will have to backport the patch.
I think it should be sufficient to build the go-bootstrap compiler with "CGO_ENABLED=0" in its environment. This worked for me when I played with it and looks like the correct solution according to
https://github.com/golang/go/issues/13114
Quoted 7 lines
When the packaging of Go was added to Buildroot, I was pointed to
https://docs.google.com/document/d/1OaatvGhEAq7VseQ9kkavxKNAfepWy2yhPUBs96FGV28/edit,
which says that using Go 1.4 as the bootstrap compiler to build Go 1.5 was the proper solution.Now, if it is possible to use a two-stage build of go 1.5, then that's also fine with me, but it somewhat contradicts the above document.
Sorry, I was unclear.
I don't know anything about bootstraping the compiler with anything other than go 1.4 - as far as my limited understanding goes, that is still necessary.
What I meant was that it should not be necessary to backport the patch as you suggested, but instead compile the bootstrap compiler with CGO_ENABLED=0 in the environment. That worked for me when I saw the same problem building the bootstrap compiler (but the problem was not consistent and no one else seemed to have it, so I just assumed there was an issue in my build environment - so I never posted this fix).
PATCH 1/1 package/go: bump version to 1.6.2
Hello,
Quoted 10 lines · Cam Hutchison
I don't know anything about bootstraping the compiler with anything other than go 1.4 - as far as my limited understanding goes, that is still necessary.
What I meant was that it should not be necessary to backport the patch as you suggested, but instead compile the bootstrap compiler with CGO_ENABLED=0 in the environment. That worked for me when I saw the same problem building the bootstrap compiler (but the problem was not consistent and no one else seemed to have it, so I just assumed there was an issue in my build environment - so I never posted this fix).
Aah, OK! I can indeed confirm that the following patch fixes the build problem for me.
Geoff, if that's OK for you, could you send a proper patch that does this?
package/go-bootstrap/go-bootstrap.mk +2 -1
@@ -17,7 +17,8 @@ HOST_GO_BOOTSTRAP_MAKE_ENV = \ GOOS=linux \ GOROOT_FINAL="$(HOST_GO_BOOTSTRAP_ROOT)" \ GOROOT="$(@D)" \ - GOBIN="$(@D)/bin" + GOBIN="$(@D)/bin" \ + CGO_ENABLED=0 define HOST_GO_BOOTSTRAP_BUILD_CMDS cd $(@D)/src && $(HOST_GO_BOOTSTRAP_MAKE_ENV) ./make.bash
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/1 package/go: bump version to 1.6.2
Quoted 8 lines · Thomas Petazzoni
Geoff, if that's OK for you, could you send a proper patch that does this?
package/go-bootstrap/go-bootstrap.mk +0
-0
package/go-bootstrap/go-bootstrap.mk HOST_GO_BOOTSTRAP_MAKE_ENV = \ · line 21
Quoted 6 lines
package/go-bootstrap/go-bootstrap.mk +2
-1@@ -17,7 +17,8 @@ HOST_GO_BOOTSTRAP_MAKE_ENV = \ GOOS=linux \ GOROOT_FINAL="$(HOST_GO_BOOTSTRAP_ROOT)" \ GOROOT="$(@D)" \ - GOBIN="$(@D)/bin" + GOBIN="$(@D)/bin" \ + CGO_ENABLED=0
We do not need cgo support in the bootstrap compiler, so this should be the correct fix. I'll test and send out a patch.
-Geoff
PATCH v2 1/1 package/go: bump version to 1.6.2
In reply to Christian StewartGolang has significant improvements to support for multiarch in later versions. This bump is required to make many go programs functional under arm64, for example.
[Also enable go language support for mips64 and mips64el (mips64le), which were added in go-1.6.2.]
--- package/go/Config.in.host | 2 +- package/go/go.hash | 2 +- package/go/go.mk | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-)
package/go/Config.in.host +1 -1
@@ -2,5 +2,5 @@ config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS bool default y depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le + depends on BR2_arm || BR2_aarch64 || BR2_i386 || BR2_x86_64 || BR2_powerpc64 || BR2_powerpc64le || BR2_mips64 || BR2_mips64el depends on !BR2_ARM_CPU_ARMV4
package/go/go.hash +1 -1
@@ -1,2 +1,2 @@ # Locally computed: -sha256 754e06dab1c31ab168fc9db9e32596734015ea9e24bc44cae7f237f417ce4efe go1.5.3.src.tar.gz +sha256 787b0b750d037016a30c6ed05a8a70a91b2e9db4bd9b1a2453aa502a63f1bccc go1.6.2.src.tar.gz
package/go/go.mk +5 -1
@@ -4,7 +4,7 @@ # ################################################################################ -GO_VERSION = 1.5.3 +GO_VERSION = 1.6.2 GO_SITE = https://storage.googleapis.com/golang GO_SOURCE = go$(GO_VERSION).src.tar.gz
@@ -30,6 +30,10 @@ else ifeq ($(BR2_powerpc64),y) GO_GOARCH = ppc64 else ifeq ($(BR2_powerpc64le),y) GO_GOARCH = ppc64le +else ifeq ($(BR2_mips64),y) +GO_GOARCH = mips64 +else ifeq ($(BR2_mips64el),y) +GO_GOARCH = mips64le endif HOST_GO_DEPENDENCIES = host-go-bootstrap
Signature · 1 line
2.5.0
PATCH v2 1/1 package/go: bump version to 1.6.2
Quoted 9 lines · Geoff Levand
Golang has significant improvements to support for multiarch in later versions. This bump is required to make many go programs functional under arm64, for example.
Signed-off-by Christian Stewart <[email protected]>[Also enable go language support for mips64 and mips64el (mips64le), which
were added in go-1.6.2.]Signed-off-by Geoff Levand <[email protected]>
Sorry I didn't see that the base patch was merged already.
I'll send out a seperate patch that just enables MIPS.
-Geoff