From: Austin Clements Date: Thu, 6 Jun 2019 21:27:14 +0000 (-0400) Subject: cmd/dist,cmd/compile: remove -allabis mode X-Git-Tag: go1.13beta1~113 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=74d92db8d77e20b934821b13a92bccb01dbeeb68;p=gostls13.git cmd/dist,cmd/compile: remove -allabis mode dist passes the -allabis flag to the compiler to avoid having to recreate the cross-package ABI logic from cmd/go. However, we removed that logic from cmd/go in CL 179863 and replaced it with a different mechanism that doesn't depend on the build system. Hence, passing -allabis in dist is no longer necessary. This CL removes -allabis from dist and, since that was the only use of it, removes support for it from the compiler as well. Updates #31230. Change-Id: Ib005db95755a7028f49c885785e72c3970aea4f9 Reviewed-on: https://go-review.googlesource.com/c/go/+/181079 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Jay Conrod --- diff --git a/src/cmd/compile/internal/gc/gsubr.go b/src/cmd/compile/internal/gc/gsubr.go index 827ccf3696..51c0fffc9e 100644 --- a/src/cmd/compile/internal/gc/gsubr.go +++ b/src/cmd/compile/internal/gc/gsubr.go @@ -234,17 +234,6 @@ func (f *Func) initLSym(hasBody bool) { } } - if !needABIAlias && allABIs { - // The compiler was asked to produce ABI - // wrappers for everything. - switch f.lsym.ABI() { - case obj.ABI0: - needABIAlias, aliasABI = true, obj.ABIInternal - case obj.ABIInternal: - needABIAlias, aliasABI = true, obj.ABI0 - } - } - if needABIAlias { // These LSyms have the same name as the // native function, so we create them directly diff --git a/src/cmd/compile/internal/gc/main.go b/src/cmd/compile/internal/gc/main.go index 37e755306d..2a1fd8e4fa 100644 --- a/src/cmd/compile/internal/gc/main.go +++ b/src/cmd/compile/internal/gc/main.go @@ -259,7 +259,6 @@ func Main(archInit func(*Arch)) { flag.StringVar(&goversion, "goversion", "", "required version of the runtime") var symabisPath string flag.StringVar(&symabisPath, "symabis", "", "read symbol ABIs from `file`") - flag.BoolVar(&allABIs, "allabis", false, "generate ABI wrappers for all symbols (for bootstrap)") flag.StringVar(&traceprofile, "traceprofile", "", "write an execution trace to `file`") flag.StringVar(&blockprofile, "blockprofile", "", "write block profile to `file`") flag.StringVar(&mutexprofile, "mutexprofile", "", "write mutex profile to `file`") @@ -849,11 +848,6 @@ func readImportCfg(file string) { // name, where the local package prefix is always `"".` var symabiDefs, symabiRefs map[string]obj.ABI -// allABIs indicates that all symbol definitions should have ABI -// wrappers. This is used during toolchain bootstrapping to avoid -// having to find cross-package references. -var allABIs bool - // readSymABIs reads a symabis file that specifies definitions and // references of text symbols by ABI. // diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 3df7f09abc..9e503117ae 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -866,13 +866,6 @@ func runInstall(dir string, ch chan struct{}) { if symabis != "" { compile = append(compile, "-symabis", symabis) } - if dir == "runtime" || dir == "runtime/internal/atomic" { - // These packages define symbols referenced by - // assembly in other packages. In cmd/go, we work out - // the exact details. For bootstrapping, just tell the - // compiler to generate ABI wrappers for everything. - compile = append(compile, "-allabis") - } if goos == "android" { compile = append(compile, "-shared") }