Commit 00055152 authored by Jay Conrod's avatar Jay Conrod

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/155480Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
parent 429bae71
......@@ -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
// 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)
if err != nil {
return "", err
......
# 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'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment