Commit 76f1b901 authored by Keith Randall's avatar Keith Randall

runtime: keep build version around in binaries

So we can tell from a binary which version of
Go built it.

LGTM=minux, rsc
R=golang-codereviews, minux, khr, rsc, dave
CC=golang-codereviews
https://golang.org/cl/117040043
parent d9079cc8
...@@ -30,7 +30,8 @@ mkzversion(char *dir, char *file) ...@@ -30,7 +30,8 @@ mkzversion(char *dir, char *file)
"package runtime\n" "package runtime\n"
"\n" "\n"
"const defaultGoroot = `%s`\n" "const defaultGoroot = `%s`\n"
"const theVersion = `%s`\n", goroot_final, goversion)); "const theVersion = `%s`\n"
"var buildVersion = theVersion\n", goroot_final, goversion));
writefile(&out, file, 0); writefile(&out, file, 0);
......
...@@ -129,6 +129,8 @@ static bool exitsyscallfast(void); ...@@ -129,6 +129,8 @@ static bool exitsyscallfast(void);
static bool haveexperiment(int8*); static bool haveexperiment(int8*);
static void allgadd(G*); static void allgadd(G*);
extern String runtime·buildVersion;
// The bootstrap sequence is: // The bootstrap sequence is:
// //
// call osinit // call osinit
...@@ -188,6 +190,13 @@ runtime·schedinit(void) ...@@ -188,6 +190,13 @@ runtime·schedinit(void)
runtime·copystack = false; runtime·copystack = false;
mstats.enablegc = 1; mstats.enablegc = 1;
if(runtime·buildVersion.str == nil) {
// Condition should never trigger. This code just serves
// to ensure runtime·buildVersion is kept in the resulting binary.
runtime·buildVersion.str = (uint8*)"unknown";
runtime·buildVersion.len = 7;
}
} }
extern void main·init(void); extern void main·init(void);
......
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