Commit 5e46d540 authored by Russ Cox's avatar Russ Cox

cmd/dist: use separate args for separate compiler flags

This makes dist safe for CL 7035043 (but keeps working now too).

R=golang-dev, remyoudompheng
CC=golang-dev
https://golang.org/cl/7029047
parent 5e8ca201
...@@ -892,20 +892,27 @@ install(char *dir) ...@@ -892,20 +892,27 @@ install(char *dir)
// lib9/goos.c gets the default constants hard-coded. // lib9/goos.c gets the default constants hard-coded.
if(streq(name, "goos.c")) { if(streq(name, "goos.c")) {
vadd(&compile, bprintf(&b, "-DGOOS=\"%s\"", goos)); vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "-DGOARCH=\"%s\"", goarch)); vadd(&compile, bprintf(&b, "GOOS=\"%s\"", goos));
vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "GOARCH=\"%s\"", goarch));
bprintf(&b1, "%s", goroot_final); bprintf(&b1, "%s", goroot_final);
bsubst(&b1, "\\", "\\\\"); // turn into C string bsubst(&b1, "\\", "\\\\"); // turn into C string
vadd(&compile, bprintf(&b, "-DGOROOT=\"%s\"", bstr(&b1))); vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "-DGOVERSION=\"%s\"", goversion)); vadd(&compile, bprintf(&b, "GOROOT=\"%s\"", bstr(&b1)));
vadd(&compile, bprintf(&b, "-DGOARM=\"%s\"", goarm)); vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "-DGO386=\"%s\"", go386)); vadd(&compile, bprintf(&b, "GOVERSION=\"%s\"", goversion));
vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "GOARM=\"%s\"", goarm));
vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "GO386=\"%s\"", go386));
} }
// gc/lex.c records the GOEXPERIMENT setting used during the build. // gc/lex.c records the GOEXPERIMENT setting used during the build.
if(streq(name, "lex.c")) { if(streq(name, "lex.c")) {
xgetenv(&b, "GOEXPERIMENT"); xgetenv(&b, "GOEXPERIMENT");
vadd(&compile, bprintf(&b1, "-DGOEXPERIMENT=\"%s\"", bstr(&b))); vadd(&compile, "-D");
vadd(&compile, bprintf(&b1, "GOEXPERIMENT=\"%s\"", bstr(&b)));
} }
} else { } else {
// Supporting files for a Go package. // Supporting files for a Go package.
...@@ -913,12 +920,16 @@ install(char *dir) ...@@ -913,12 +920,16 @@ install(char *dir)
vadd(&compile, bpathf(&b, "%s/%sa", tooldir, gochar)); vadd(&compile, bpathf(&b, "%s/%sa", tooldir, gochar));
else { else {
vadd(&compile, bpathf(&b, "%s/%sc", tooldir, gochar)); vadd(&compile, bpathf(&b, "%s/%sc", tooldir, gochar));
vadd(&compile, "-FVw"); vadd(&compile, "-F");
vadd(&compile, "-V");
vadd(&compile, "-w");
} }
vadd(&compile, "-I"); vadd(&compile, "-I");
vadd(&compile, workdir); vadd(&compile, workdir);
vadd(&compile, bprintf(&b, "-DGOOS_%s", goos)); vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "-DGOARCH_%s", goarch)); vadd(&compile, bprintf(&b, "GOOS_%s", goos));
vadd(&compile, "-D");
vadd(&compile, bprintf(&b, "GOARCH_%s", goarch));
} }
bpathf(&b, "%s/%s", workdir, lastelem(files.p[i])); bpathf(&b, "%s/%s", workdir, lastelem(files.p[i]));
......
...@@ -199,13 +199,16 @@ mkzasm(char *dir, char *file) ...@@ -199,13 +199,16 @@ mkzasm(char *dir, char *file)
fatal("unknown $GOOS/$GOARCH in mkzasm"); fatal("unknown $GOOS/$GOARCH in mkzasm");
ok: ok:
// Run 6c -DGOOS_goos -DGOARCH_goarch -Iworkdir -a proc.c // Run 6c -D GOOS_goos -D GOARCH_goarch -I workdir -a proc.c
// to get acid [sic] output. // to get acid [sic] output.
vreset(&argv); vreset(&argv);
vadd(&argv, bpathf(&b, "%s/%sc", tooldir, gochar)); vadd(&argv, bpathf(&b, "%s/%sc", tooldir, gochar));
vadd(&argv, bprintf(&b, "-DGOOS_%s", goos)); vadd(&argv, "-D");
vadd(&argv, bprintf(&b, "-DGOARCH_%s", goarch)); vadd(&argv, bprintf(&b, "GOOS_%s", goos));
vadd(&argv, bprintf(&b, "-I%s", workdir)); vadd(&argv, "-D");
vadd(&argv, bprintf(&b, "GOARCH_%s", goarch));
vadd(&argv, "-I");
vadd(&argv, bprintf(&b, "%s", workdir));
vadd(&argv, "-a"); vadd(&argv, "-a");
vadd(&argv, "proc.c"); vadd(&argv, "proc.c");
runv(&in, dir, CheckExit, &argv); runv(&in, dir, CheckExit, &argv);
...@@ -299,12 +302,15 @@ mkzruntimedefs(char *dir, char *file) ...@@ -299,12 +302,15 @@ mkzruntimedefs(char *dir, char *file)
); );
// Run 6c -DGOOS_goos -DGOARCH_goarch -Iworkdir -q // Run 6c -D GOOS_goos -D GOARCH_goarch -I workdir -q
// on each of the runtimedefs C files. // on each of the runtimedefs C files.
vadd(&argv, bpathf(&b, "%s/%sc", tooldir, gochar)); vadd(&argv, bpathf(&b, "%s/%sc", tooldir, gochar));
vadd(&argv, bprintf(&b, "-DGOOS_%s", goos)); vadd(&argv, "-D");
vadd(&argv, bprintf(&b, "-DGOARCH_%s", goarch)); vadd(&argv, bprintf(&b, "GOOS_%s", goos));
vadd(&argv, bprintf(&b, "-I%s", workdir)); vadd(&argv, "-D");
vadd(&argv, bprintf(&b, "GOARCH_%s", goarch));
vadd(&argv, "-I");
vadd(&argv, bprintf(&b, "%s", workdir));
vadd(&argv, "-q"); vadd(&argv, "-q");
vadd(&argv, ""); vadd(&argv, "");
p = argv.p[argv.len-1]; p = argv.p[argv.len-1];
......
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