]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: pass gccgoflags at the end of gccgo command line, warn if user passes the...
authorShenghou Ma <minux.ma@gmail.com>
Tue, 18 Dec 2012 17:48:09 +0000 (01:48 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Tue, 18 Dec 2012 17:48:09 +0000 (01:48 +0800)
R=iant
CC=golang-dev
https://golang.org/cl/6940082

src/cmd/go/build.go

index 5f91227f151a79618673e1cfafba5a990f6e9ee6..e7046a9ef52ccb0f2cba4af4f1aabc4d5ebd86e8 100644 (file)
@@ -191,6 +191,21 @@ func runBuild(cmd *Command, args []string) {
                *buildO += exeSuffix
        }
 
+       // sanity check some often mis-used options
+       switch buildContext.Compiler {
+       case "gccgo":
+               if len(buildGcflags) != 0 {
+                       fmt.Println("go build: when using gccgo toolchain, please pass compiler flags using -gccgoflags, not -gcflags")
+               }
+               if len(buildLdflags) != 0 {
+                       fmt.Println("go build: when using gccgo toolchain, please pass linker flags using -gccgoflags, not -ldflags")
+               }
+       case "gc":
+               if len(buildGccgoflags) != 0 {
+                       fmt.Println("go build: when using gc toolchain, please pass compile flags using -gcflags, and linker flags using -ldflags")
+               }
+       }
+
        if *buildO != "" {
                if len(pkgs) > 1 {
                        fatalf("go build: cannot use -o with multiple packages")
@@ -1451,7 +1466,7 @@ func (tools gccgcToolchain) ld(b *builder, p *Package, out string, allactions []
        if usesCgo && goos == "linux" {
                ldflags = append(ldflags, "-Wl,-E")
        }
-       return b.run(".", p.ImportPath, "gccgo", "-o", out, buildGccgoflags, ofiles, "-Wl,-(", ldflags, "-Wl,-)")
+       return b.run(".", p.ImportPath, "gccgo", "-o", out, ofiles, "-Wl,-(", ldflags, "-Wl,-)", buildGccgoflags)
 }
 
 func (gccgcToolchain) cc(b *builder, p *Package, objdir, ofile, cfile string) error {