diff options
author | Russ Cox <rsc@golang.org> | 2009-09-30 13:47:15 -0700 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-09-30 13:47:15 -0700 |
commit | 872a8a09080aee0bb54eddf8cbc3d57a61aec6ab (patch) | |
tree | 8e798c970bfa78770ae32e343c2b5807dcbbb2da /src/cmd/cgo/main.go | |
parent | cea1e9d746c5013b6566fac3a06f817626fbcae1 (diff) | |
download | golang-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.go | 18 |
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); |