0
1
mirror of https://github.com/golang/go synced 2025-05-27 15:10:40 +00:00

cmd/go: report gcc ld error message when linking fails

The output of the gcc ld command is useful to understand why a package
that uses cgo can't use internal linking. We should log it.

Change-Id: Id524065fc5348be57387f2b67d1e00861f9adf15
Reviewed-on: https://go-review.googlesource.com/c/go/+/646315
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
qmuntal
2025-02-03 21:05:51 +01:00
committed by Quim Muntal
parent cd595be6d6
commit 65004c7bf4

@ -2208,7 +2208,7 @@ func (b *Builder) gccld(a *Action, objdir, outfile string, flags []string, objs
}
cmdargs := []any{cmd, "-o", outfile, objs, flags}
_, err := sh.runOut(base.Cwd(), b.cCompilerEnv(), cmdargs...)
out, err := sh.runOut(base.Cwd(), b.cCompilerEnv(), cmdargs...)
// Note that failure is an expected outcome here, so we report output only
// in debug mode and don't report the error.
@ -2217,7 +2217,7 @@ func (b *Builder) gccld(a *Action, objdir, outfile string, flags []string, objs
if err != nil {
saw = "failed"
}
sh.ShowCmd("", "%s # test for internal linking errors (%s)", joinUnambiguously(str.StringList(cmdargs...)), saw)
sh.ShowCmd("", "%s # test for internal linking errors (%s)\n%s", joinUnambiguously(str.StringList(cmdargs...)), saw, out)
}
return err