diff options
-rw-r--r-- | src/cmd/dist/a.h | 1 | ||||
-rw-r--r-- | src/cmd/dist/build.c | 8 | ||||
-rw-r--r-- | src/cmd/dist/main.c | 1 | ||||
-rwxr-xr-x | src/make.bash | 7 |
4 files changed, 16 insertions, 1 deletions
diff --git a/src/cmd/dist/a.h b/src/cmd/dist/a.h index 5ded13d6f..9de93180f 100644 --- a/src/cmd/dist/a.h +++ b/src/cmd/dist/a.h @@ -112,6 +112,7 @@ void goc2c(char*, char*); // main.c extern int vflag; +extern int sflag; void usage(void); void xmain(int argc, char **argv); diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c index 9fe6058a5..e6e5f0cf7 100644 --- a/src/cmd/dist/build.c +++ b/src/cmd/dist/build.c @@ -720,6 +720,8 @@ install(char *dir) vadd(&link, bpathf(&b, "%s/%s", tooldir, name)); } else { vcopy(&link, gccargs.p, gccargs.len); + if(sflag) + vadd(&link, "-static"); vadd(&link, "-o"); targ = link.len; vadd(&link, bpathf(&b, "%s/%s%s", tooldir, name, exe)); @@ -1527,6 +1529,9 @@ cmdbootstrap(int argc, char **argv) case 'a': rebuildall = 1; break; + case 's': + sflag++; + break; case 'v': vflag++; break; @@ -1613,6 +1618,9 @@ cmdinstall(int argc, char **argv) int i; ARGBEGIN{ + case 's': + sflag++; + break; case 'v': vflag++; break; diff --git a/src/cmd/dist/main.c b/src/cmd/dist/main.c index 72a7579d1..fad01802a 100644 --- a/src/cmd/dist/main.c +++ b/src/cmd/dist/main.c @@ -5,6 +5,7 @@ #include "a.h" int vflag; +int sflag; char *argv0; // cmdtab records the available commands. diff --git a/src/make.bash b/src/make.bash index 30388388f..877d1e5eb 100755 --- a/src/make.bash +++ b/src/make.bash @@ -37,6 +37,11 @@ # # CC: Command line to run to get at host C compiler. # Default is "gcc". Also supported: "clang". +# CXX: Command line to run to get at host C++ compiler, only recorded +# for cgo use. Default is "g++". Also supported: "clang++". +# +# GO_DISTFLAGS: extra flags to provide to "dist bootstrap". Use "-s" +# to build a statically linked toolchain. set -e if [ ! -f run.bash ]; then @@ -140,7 +145,7 @@ buildall="-a" if [ "$1" = "--no-clean" ]; then buildall="" fi -./cmd/dist/dist bootstrap $buildall -v # builds go_bootstrap +./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap # Delay move of dist tool to now, because bootstrap may clear tool directory. mv cmd/dist/dist "$GOTOOLDIR"/dist "$GOTOOLDIR"/go_bootstrap clean -i std |