summaryrefslogtreecommitdiff
path: root/src/cmd/cgo/main.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-09-30 13:47:15 -0700
committerRuss Cox <rsc@golang.org>2009-09-30 13:47:15 -0700
commit872a8a09080aee0bb54eddf8cbc3d57a61aec6ab (patch)
tree8e798c970bfa78770ae32e343c2b5807dcbbb2da /src/cmd/cgo/main.go
parentcea1e9d746c5013b6566fac3a06f817626fbcae1 (diff)
downloadgolang-872a8a09080aee0bb54eddf8cbc3d57a61aec6ab.tar.gz
cgo working on linux/386
R=r DELTA=70 (47 added, 4 deleted, 19 changed) OCL=35167 CL=35171
Diffstat (limited to 'src/cmd/cgo/main.go')
-rw-r--r--src/cmd/cgo/main.go18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
index 0832b3f40..b629f0a22 100644
--- a/src/cmd/cgo/main.go
+++ b/src/cmd/cgo/main.go
@@ -22,20 +22,34 @@ func usage() {
flag.PrintDefaults();
}
-const ptrSize = 8 // TODO
+var ptrSizeMap = map[string]int64 {
+ "386": 4,
+ "amd64": 8,
+ "arm": 4
+}
func main() {
flag.Usage = usage;
flag.Parse();
+ arch := os.Getenv("GOARCH");
+ if arch == "" {
+ fatal("$GOARCH is not set");
+ }
+ ptrSize, ok := ptrSizeMap[arch];
+ if !ok {
+ fatal("unknown architecture %s", arch);
+ }
+
args := flag.Args();
if len(args) != 1 {
usage();
os.Exit(2);
}
p := openProg(args[0]);
+ p.PtrSize = ptrSize;
p.Preamble = p.Preamble + "\n" + builtinProlog;
- p.loadDebugInfo(ptrSize);
+ p.loadDebugInfo();
p.Vardef = make(map[string]*Type);
p.Funcdef = make(map[string]*FuncType);