summaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/gc/Makefile2
-rw-r--r--src/cmd/gc/builtin.c.boot15
-rw-r--r--src/cmd/gc/go.h1
-rw-r--r--src/cmd/gc/lex.c4
-rwxr-xr-xsrc/cmd/gc/mkbuiltin9
-rw-r--r--src/cmd/gc/runtime.go9
-rw-r--r--src/cmd/gc/sys.go14
-rw-r--r--src/cmd/gobuild/gobuild.go2
-rw-r--r--src/cmd/gobuild/util.go2
9 files changed, 30 insertions, 28 deletions
diff --git a/src/cmd/gc/Makefile b/src/cmd/gc/Makefile
index 0fc15deaa..0083240e4 100644
--- a/src/cmd/gc/Makefile
+++ b/src/cmd/gc/Makefile
@@ -44,7 +44,7 @@ y.tab.h: $(YFILES)
y.tab.c: y.tab.h
test -f y.tab.c && touch y.tab.c
-builtin.c: sys.go unsafe.go mkbuiltin1.c mkbuiltin
+builtin.c: sys.go unsafe.go runtime.go mkbuiltin1.c mkbuiltin
./mkbuiltin >builtin.c || \
(echo 'mkbuiltin failed; using bootstrap copy of builtin.c'; cp builtin.c.boot builtin.c)
diff --git a/src/cmd/gc/builtin.c.boot b/src/cmd/gc/builtin.c.boot
index 0f189d363..8657944b5 100644
--- a/src/cmd/gc/builtin.c.boot
+++ b/src/cmd/gc/builtin.c.boot
@@ -55,13 +55,6 @@ char *sysimport =
"func sys.arrayslices (old *any, nel int, lb int, hb int, width int) (ary []any)\n"
"func sys.arrays2d (old *any, nel int) (ary []any)\n"
"func sys.closure ()\n"
- "func sys.Breakpoint ()\n"
- "var sys.Args []string\n"
- "var sys.Envs []string\n"
- "func sys.Gosched ()\n"
- "func sys.Goexit ()\n"
- "func sys.Exit (? int)\n"
- "func sys.Caller (n int) (pc uint64, file string, line int, ok bool)\n"
"\n"
"$$\n";
char *unsafeimport =
@@ -74,3 +67,11 @@ char *unsafeimport =
"func unsafe.Unreflect (? uint64, ? string, ? bool) (ret interface { })\n"
"\n"
"$$\n";
+char *runtimeimport =
+ "package runtime\n"
+ "func runtime.Breakpoint ()\n"
+ "func runtime.Gosched ()\n"
+ "func runtime.Goexit ()\n"
+ "func runtime.Caller (n int) (pc uint64, file string, line int, ok bool)\n"
+ "\n"
+ "$$\n";
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index a74dd645c..29e2fd64b 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -541,6 +541,7 @@ EXTERN Sym* pkgimportname; // package name from imported package
EXTERN int tptr; // either TPTR32 or TPTR64
extern char* sysimport;
extern char* unsafeimport;
+extern char* runtimeimport;
EXTERN char* filename; // name to uniqify names
EXTERN Idir* idirs;
diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c
index b84d91ba7..e5edf5051 100644
--- a/src/cmd/gc/lex.c
+++ b/src/cmd/gc/lex.c
@@ -265,6 +265,10 @@ importfile(Val *f)
cannedimports("unsafe.6", unsafeimport);
return;
}
+ if(strcmp(f->u.sval->s, "runtime") == 0) {
+ cannedimports("runtime.6", runtimeimport);
+ return;
+ }
if(!findpkg(f->u.sval))
fatal("can't find import: %Z", f->u.sval);
diff --git a/src/cmd/gc/mkbuiltin b/src/cmd/gc/mkbuiltin
index e0c29c1bb..b0cb634f5 100755
--- a/src/cmd/gc/mkbuiltin
+++ b/src/cmd/gc/mkbuiltin
@@ -5,11 +5,12 @@
set -e
gcc -o mkbuiltin1 mkbuiltin1.c
-6g sys.go
-6g unsafe.go
rm -f _builtin.c
-./mkbuiltin1 sys >_builtin.c
-./mkbuiltin1 unsafe >>_builtin.c
+for i in sys unsafe runtime
+do
+ 6g $i.go
+ ./mkbuiltin1 $i >>_builtin.c
+done
# If _builtin.c has changed vs builtin.c.boot,
# check in the new change if being run by
diff --git a/src/cmd/gc/runtime.go b/src/cmd/gc/runtime.go
new file mode 100644
index 000000000..6b9722ac5
--- /dev/null
+++ b/src/cmd/gc/runtime.go
@@ -0,0 +1,9 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package PACKAGE
+func Breakpoint();
+func Gosched();
+func Goexit();
+func Caller(n int) (pc uint64, file string, line int, ok bool);
diff --git a/src/cmd/gc/sys.go b/src/cmd/gc/sys.go
index f77771a09..67fbb0391 100644
--- a/src/cmd/gc/sys.go
+++ b/src/cmd/gc/sys.go
@@ -72,17 +72,3 @@ func arrayslices(old *any, nel int, lb int, hb int, width int) (ary []any);
func arrays2d(old *any, nel int) (ary []any);
func closure(); // has args, but compiler fills in
-
-// used by go programs
-
-func Breakpoint();
-
-var Args []string;
-var Envs []string;
-
-func Gosched();
-func Goexit();
-
-func Exit(int);
-
-func Caller(n int) (pc uint64, file string, line int, ok bool);
diff --git a/src/cmd/gobuild/gobuild.go b/src/cmd/gobuild/gobuild.go
index 9324e98ff..0db9bca04 100644
--- a/src/cmd/gobuild/gobuild.go
+++ b/src/cmd/gobuild/gobuild.go
@@ -131,7 +131,7 @@ func ScanFiles(filenames []string) *Info {
// TODO(rsc): Build a binary from package main?
z := new(Info);
- z.Args = sys.Args;
+ z.Args = os.Args;
z.Dir = PkgDir();
z.Char = theChar; // for template
z.ObjDir = ObjDir; // for template
diff --git a/src/cmd/gobuild/util.go b/src/cmd/gobuild/util.go
index 34351cea8..be50ba1ca 100644
--- a/src/cmd/gobuild/util.go
+++ b/src/cmd/gobuild/util.go
@@ -34,7 +34,7 @@ const ObjDir = "_obj"
func fatal(args ...) {
fmt.Fprintf(os.Stderr, "gobuild: %s\n", fmt.Sprint(args));
- sys.Exit(1);
+ os.Exit(1);
}
func init() {