]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: use latest heap, sort packages for compiler bootstrap
authorRuss Cox <rsc@golang.org>
Fri, 27 Oct 2017 14:34:25 +0000 (10:34 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 27 Oct 2017 16:01:50 +0000 (16:01 +0000)
The compiler depends on the way heap and sort break ties
in some cases. Instead of trying to find them all, bundle
those packages into the bootstrap compiler builds.

The overall goal is that Go1.4 building cmd/compile during the
bootstrap process produces a semantically equivalent compiler
to cmd/compile compiling itself. After this CL, that property is true,
at least for the compiler compiling itself and the other tools.

A test for this property will be in CL 73212.

Change-Id: Icc1ba7cbe828f5673e8198ebacb18c7c01f3a735
Reviewed-on: https://go-review.googlesource.com/73952
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/dist/buildtool.go

index d86af557b24b9dae4a77acfdfcd18f424f4af4cc..2756a3b1dbffc020cc74e068a6b88cc9c1076d76 100644 (file)
@@ -77,12 +77,14 @@ var bootstrapDirs = []string{
        "cmd/link/internal/s390x",
        "cmd/link/internal/sym",
        "cmd/link/internal/x86",
+       "container/heap",
        "debug/dwarf",
        "debug/elf",
        "debug/macho",
        "debug/pe",
        "math/big",
        "math/bits",
+       "sort",
 }
 
 // File prefixes that are ignored by go/build anyway, and cause
@@ -180,7 +182,7 @@ func bootstrapBuildTools() {
                pathf("%s/bin/go", goroot_bootstrap),
                "install",
                "-gcflags=-l",
-               "-tags=math_big_pure_go",
+               "-tags=math_big_pure_go compiler_bootstrap",
                "-v",
        }
        if tool := os.Getenv("GOBOOTSTRAP_TOOLEXEC"); tool != "" {