mirror of
https://github.com/golang/go
synced 2024-09-15 22:20:06 +00:00
cmd/go: fix -n output in runtime/internal/atomic
When building runtime/internal/atomic, the toolchain writes a symabis2 file. This file is read back in, filtered, and appended to the symabis file. This breaks with -n, since the symabis2 file is never written. With this change, when -n is used, an equivalent "grep" command is printed instead. The output for -x is unchanged. Fixes #29346 Change-Id: Id25e06e06364fc6689e71660d000f09c649c4f0c Reviewed-on: https://go-review.googlesource.com/c/155480 Reviewed-by: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
429bae7158
commit
00055152d3
|
@ -316,6 +316,12 @@ func (gcToolchain) symabis(b *Builder, a *Action, sfiles []string) (string, erro
|
||||||
|
|
||||||
// Filter out just the symbol refs and append them to
|
// Filter out just the symbol refs and append them to
|
||||||
// the symabis file.
|
// the symabis file.
|
||||||
|
if cfg.BuildN {
|
||||||
|
// -x will print the lines from symabis2 that are actually appended
|
||||||
|
// to symabis. With -n, we don't know what those lines will be.
|
||||||
|
b.Showcmd("", `grep '^ref' <%s | grep -v '^ref\s*""\.' >>%s`, symabis2, a.Objdir+"symabis")
|
||||||
|
continue
|
||||||
|
}
|
||||||
abis2, err := ioutil.ReadFile(symabis2)
|
abis2, err := ioutil.ReadFile(symabis2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
|
4
src/cmd/go/testdata/script/build_runtime_gcflags.txt
vendored
Normal file
4
src/cmd/go/testdata/script/build_runtime_gcflags.txt
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# This test verifies the standard library (specifically runtime/internal/atomic)
|
||||||
|
# can be built with -gcflags when -n is given. See golang.org/issue/26092.
|
||||||
|
go build -n -gcflags=all='-l' std
|
||||||
|
stderr 'compile.* -l .* runtime/internal/atomic'
|
Loading…
Reference in a new issue