1
0
mirror of https://github.com/golang/go synced 2024-11-23 21:10:05 -07:00

runtime: add GOROOT and Version

R=r
CC=golang-dev
https://golang.org/cl/608041
This commit is contained in:
Russ Cox 2010-03-16 23:10:33 -07:00
parent 5e6203d28b
commit 0c3a93ceb7
5 changed files with 57 additions and 2 deletions

View File

@ -26,9 +26,13 @@ src/cmd/gc/yerr.h
src/pkg/Make.deps
src/pkg/exp/ogle/ogle
src/pkg/os/signal/unix.go
src/pkg/runtime/cgo2c
src/pkg/runtime/*/asm.h
src/pkg/runtime/cgo2c
src/pkg/runtime/mkversion
src/pkg/runtime/runtime.acid.*
src/pkg/runtime/version.go
src/pkg/github.com/
src/pkg/*.googlecode.com/
test/pass.out
test/run.out
test/times.out

View File

@ -23,6 +23,7 @@ CFLAGS=-I$(GOOS) -I$(GOOS)/$(GOARCH) -wF $(CFLAGS_$(SIZE)) $(CFLAGS_$(GOARCH)) $
GOFILES=\
extern.go\
type.go\
version.go\
GOFILES_pchw=\
pchw/io.go\
@ -111,7 +112,7 @@ $(pkgdir)/%.h: %.h
clean: clean-local
clean-local:
rm -f cgo2c */asm.h runtime.acid.*
rm -f cgo2c mkversion version.go */asm.h runtime.acid.*
$(GOARCH)/asm.h: mkasmh.sh runtime.acid.$(GOARCH)
./mkasmh.sh >$@.x
@ -120,6 +121,12 @@ $(GOARCH)/asm.h: mkasmh.sh runtime.acid.$(GOARCH)
cgo2c: cgo2c.c
$(QUOTED_GOBIN)/quietgcc -o $@ $<
mkversion: mkversion.c
$(QUOTED_GOBIN)/quietgcc -o $@ -I "$(GOROOT)/include" $< "$(GOROOT)/lib/lib9.a"
version.go: mkversion
mkversion >version.go
%.c: %.cgo cgo2c
./cgo2c $< > $@.tmp
mv -f $@.tmp $@

View File

@ -150,3 +150,23 @@ func GC()
// TODO(rsc): allow f to have (ignored) return values
//
func SetFinalizer(x, f interface{})
func getgoroot() string
// GOROOT returns the root of the Go tree.
// It uses the GOROOT environment variable, if set,
// or else the root used during the Go build.
func GOROOT() string {
s := getgoroot()
if s != "" {
return s
}
return defaultGoroot
}
// Version returns the Go tree's version string.
// It is either a sequence number or, when possible,
// a release tag like "release.2010-03-04".
// A trailing + indicates that the tree had local modifications
// at the time of the build.
func Version() string { return defaultVersion }

View File

@ -0,0 +1,15 @@
#include <u.h>
#include <libc.h>
char *template =
"// generated by mkversion.c; do not edit.\n"
"package runtime\n"
"const defaultGoroot = \"%s\"\n"
"const defaultVersion = \"%s\"\n";
void
main(void)
{
print(template, getgoroot(), getgoversion());
exits(0);
}

View File

@ -206,6 +206,15 @@ getenv(int8 *s)
return nil;
}
void
·getgoroot(String out)
{
byte *p;
p = getenv("GOROOT");
out = gostring(p);
FLUSH(&out);
}
int32
atoi(byte *p)