cmd/go: silence ar with D flag failures
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 26 Jun 2019 00:04:36 +0000 (00:04 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 26 Jun 2019 00:04:36 +0000 (00:04 +0000)
    The first call of ar must not show its output in order to avoid useless
    error messages about D flag.
    The corresponding Go toolchain patch is CL 182077.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183817

From-SVN: r272661

gcc/go/gofrontend/MERGE
libgo/go/cmd/go/internal/work/gccgo.go

index ca0578ab9d49d6cdab7bc400302216b4274e82f1..caa7bf91664b3d90c0550e883996efccb75bcf6d 100644 (file)
@@ -1,4 +1,4 @@
-a857aad2f3994e6fa42a6fc65330e65d209597a0
+1d6578a20a9a2ee599a07f03cf7f8e7797d72b9c
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index a0eb2d3a8605c5e89fbb209fd478d47bcae752de..3b97209b7525afc22f5de252c45b6ee2094f925b 100644 (file)
@@ -209,9 +209,16 @@ func (tools gccgoToolchain) pack(b *Builder, a *Action, afile string, ofiles []s
        }
        absAfile := mkAbs(objdir, afile)
        // Try with D modifier first, then without if that fails.
-       if b.run(a, p.Dir, p.ImportPath, nil, tools.ar(), arArgs, "rcD", absAfile, absOfiles) != nil {
+       output, err := b.runOut(p.Dir, nil, tools.ar(), arArgs, "rcD", absAfile, absOfiles)
+       if err != nil {
                return b.run(a, p.Dir, p.ImportPath, nil, tools.ar(), arArgs, "rc", absAfile, absOfiles)
        }
+
+       if len(output) > 0 {
+               // Show the output if there is any even without errors.
+               b.showOutput(a, p.Dir, p.ImportPath, b.processOutput(output))
+       }
+
        return nil
 }