Details at golang.org/s/go15bootstrap. Comments welcome in this thread.
Details at golang.org/s/go15bootstrap. Comments welcome in this thread.
On Thu, Jan 8, 2015 at 3:35 PM, 'Matthew Dempsky' via golang-dev
<golan...@googlegroups.com> wrote:
> Suppose we add support for openvms/vax to Go 1.6.
> How would the release
> binaries be built? Would they be need to be "Canadian cross-compiled" from
> an existing Go 1.4 platform?
The Go team only builds release binaries for a subset of existing
platforms: GNU/Linux, Darwin, Windows, FreeBSD. In general we're only
going to build release binaries for systems we actually have. So I
don't think that building release binaries is an issue.
No reason for that. Since Go is strictly backward compatible, the
fact that the other builders will start from 1.4 means that
openvms/vax, starting from 1.6, will continue to work reliably.
Do we still need the cmd/dist tool after everything is in Go?
On Wed, Jan 7, 2015 at 8:06 AM, Russ Cox <r...@golang.org> wrote:Details at golang.org/s/go15bootstrap. Comments welcome in this thread.Two minor comments:In the case of building a cross-compiler toolchain, does "build Go 1.x compiler toolchain" mean building the full toolchain capable of targeting both $GOHOSTOS/$GOHOSTARCH and $GOOS/$GOARCH? If so, one minor optimization is the step #2 toolchain could omit support for $GOOS/$GOARCH as long as step #3 will follow; but if step #3 is omitted (e.g., for debugging, as described in the doc), the step #2 toolchain would need to support the target platform.
On Thu, Jan 8, 2015 at 4:13 PM, Ian Lance Taylor <ia...@golang.org> wrote:On Thu, Jan 8, 2015 at 3:35 PM, 'Matthew Dempsky' via golang-dev
<golan...@googlegroups.com> wrote:
> Suppose we add support for openvms/vax to Go 1.6.(To be clear: openvms/vax was a jestful stand-in for $FUTUREOS/$FUTUREARCH, and not a platform I anticipate anyone will actually add support for, much less that Go team would care to officially support.)> How would the release
> binaries be built? Would they be need to be "Canadian cross-compiled" from
> an existing Go 1.4 platform?
The Go team only builds release binaries for a subset of existing
platforms: GNU/Linux, Darwin, Windows, FreeBSD. In general we're only
going to build release binaries for systems we actually have. So I
don't think that building release binaries is an issue.Understood that Go team only builds release binaries for the subset of platforms that they're most interested in. I just expect that set is likely to change over time, which means Go team will someday need to tackle the release bootstrapping problem somehow.
On Wed, Jan 7, 2015 at 11:58 AM, Aram Hăvărneanu <ara...@mgk.ro> wrote:
> Are there plans for an automagic bootstrap.sh that builds Go 1.4 and
> then builds Go 1.x with it? (I'm ambivalent, just asking for
> completeness).
I do not plan to do that, at least not until there is a demonstrated need.
> Will it be possible to boostrap the gc implementation of Go 1.x with
> gccgo?
In principle, that should work. It would require setting
$GOROOT_BOOTSTRAP to point to a GOROOT tree where bin/go can be run
and invokes gccgo by default. I don't know enough about gccgo to say
how you do that, but if you have gccgo running on the machine,
probably you already know how.
> Related to this question, why is $GOROOT_BOOTSTRAP a directory
> rather than a path to a 1.4 go tool?
It is a directory because that tells us which $GOROOT to set when invoking it.
If you unpack a binary Go 1.4 release into $HOME/go1.4 it won't work
without $GOROOT set.
(Not directed at Russ); I am particularly interested in this approach (using gccgo), so if anyone tries this and is successful, please respond back for the benefit of others! (I plan to try this as soon as I can.)