All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [Bug 13866] New: host-go: not supported on arm64 hosts
@ 2021-06-22  1:52 bugzilla at busybox.net
  2021-06-22  2:25 ` [Buildroot] [Bug 13866] " bugzilla at busybox.net
  2021-06-22  2:27 ` bugzilla at busybox.net
  0 siblings, 2 replies; 3+ messages in thread
From: bugzilla at busybox.net @ 2021-06-22  1:52 UTC (permalink / raw)
  To: buildroot

https://bugs.busybox.net/show_bug.cgi?id=13866

            Bug ID: 13866
           Summary: host-go: not supported on arm64 hosts
           Product: buildroot
           Version: unspecified
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P5
         Component: Other
          Assignee: unassigned at buildroot.uclibc.org
          Reporter: christian at paral.in
                CC: buildroot at uclibc.org
  Target Milestone: ---

All Go compiler versions > 1.4.x (old) are written in Go, and require a
existing compiled Go version to use to build from source.

https://golang.org/doc/install/source#bootstrapFromSource

The process for "bootstrapping" the Go compiler in Buildroot is:

1. Compile a C/C++ cross-compiler (gcc) as the host toolchain.
2. Build go-bootstrap (which is Go 1.4.x and written in C)
3. Build go 1.16.x (written in Go) using go-bootstrap.

The problem is that step 2 - build go-bootstrap - does not work on 64-bit arm.
The Go compiler from 1.4.x is compatible with x86, x86_64, and arm (32 bit)
only.

This means that arm64 host machines will skip building Go and all go-based
packages like Docker.

Due to BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS

The best fix to this for Buildroot is to continue using go-bootstrap on x86_64
or arm32 platforms (when BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS is set).
This is the most flexible option in terms of supporting third-party toolchains
to bootstrap Go.

Support for gccgo (the Go compiler built-in to GCC 5 and greater) should be
added with a conditional flag for the Buildroot toolchain (which would set
--enable-languages=go).

If the compiler supports gccgo (toolchain sets GCCGO_SUPPORTS) flag, and
GO_BOOTSTRAP_ARCH_SUPPORTS is false, then the host-go package should use the
toolchain Gccgo to compile the Go compiler.

The toolchain gccgo would install a "go" binary into the host tree provided by
gcc. (This binary is drop-in compatible with the normal Go compiler).

The Go compiler can then be instructed to use gccgo by simply setting
$GOROOT_BOOTSTRAP to host/usr.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [Bug 13866] host-go: not supported on arm64 hosts
  2021-06-22  1:52 [Buildroot] [Bug 13866] New: host-go: not supported on arm64 hosts bugzilla at busybox.net
@ 2021-06-22  2:25 ` bugzilla at busybox.net
  2021-06-22  2:27 ` bugzilla at busybox.net
  1 sibling, 0 replies; 3+ messages in thread
From: bugzilla at busybox.net @ 2021-06-22  2:25 UTC (permalink / raw)
  To: buildroot

https://bugs.busybox.net/show_bug.cgi?id=13866

Christian Stewart <christian@paral.in> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |christian at paral.in

--- Comment #1 from Christian Stewart <christian@paral.in> ---
Created attachment 9011
  --> https://bugs.busybox.net/attachment.cgi?id=9011&action=edit
The attached patch configures host-go package to use the host /usr/bin/go
compiler to bootstrap Golang when go-bootstrap is not supported (i.e. arm64).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [Bug 13866] host-go: not supported on arm64 hosts
  2021-06-22  1:52 [Buildroot] [Bug 13866] New: host-go: not supported on arm64 hosts bugzilla at busybox.net
  2021-06-22  2:25 ` [Buildroot] [Bug 13866] " bugzilla at busybox.net
@ 2021-06-22  2:27 ` bugzilla at busybox.net
  1 sibling, 0 replies; 3+ messages in thread
From: bugzilla at busybox.net @ 2021-06-22  2:27 UTC (permalink / raw)
  To: buildroot

https://bugs.busybox.net/show_bug.cgi?id=13866

Christian Stewart <christian@paral.in> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Attachment #9011|The attached patch          |0001-package-go-use-host-co
        description|configures host-go package  |mpiler-when-go-bootstrap-un
                   |to use the host /usr/bin/go |supported.patch
                   |compiler to bootstrap       |
                   |Golang when go-bootstrap is |
                   |not supported (i.e. arm64). |

--- Comment #2 from Christian Stewart <christian@paral.in> ---
Comment on attachment 9011
  --> https://bugs.busybox.net/attachment.cgi?id=9011
0001-package-go-use-host-compiler-when-go-bootstrap-unsupported.patch

The attached patch configures host-go package to use the host /usr/bin/go
compiler to bootstrap Golang when go-bootstrap is not supported (i.e. arm64).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-06-22  2:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-22  1:52 [Buildroot] [Bug 13866] New: host-go: not supported on arm64 hosts bugzilla at busybox.net
2021-06-22  2:25 ` [Buildroot] [Bug 13866] " bugzilla at busybox.net
2021-06-22  2:27 ` bugzilla at busybox.net

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.