summaryrefslogtreecommitdiff
path: root/src/cmd/cgo/main.go
diff options
context:
space:
mode:
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);