summaryrefslogtreecommitdiff
path: root/src/cmd/cgo
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-10-06 09:35:45 +0200
committerOndřej Surý <ondrej@sury.org>2011-10-06 09:35:45 +0200
commit6c7ca6e4d4e26e4c8cbe0d183966011b3b088a0a (patch)
treefddeb87db026d64a1d8e597dd0c69d685f433597 /src/cmd/cgo
parent04f99b387021a8ce32a8795360cba9beaf986a81 (diff)
downloadgolang-6c7ca6e4d4e26e4c8cbe0d183966011b3b088a0a.tar.gz
Imported Upstream version 2011.09.21upstream-weekly/2011.09.21
Diffstat (limited to 'src/cmd/cgo')
-rw-r--r--src/cmd/cgo/doc.go3
-rw-r--r--src/cmd/cgo/gcc.go9
-rw-r--r--src/cmd/cgo/main.go17
3 files changed, 19 insertions, 10 deletions
diff --git a/src/cmd/cgo/doc.go b/src/cmd/cgo/doc.go
index 7faece81c..dc9edd6fd 100644
--- a/src/cmd/cgo/doc.go
+++ b/src/cmd/cgo/doc.go
@@ -95,5 +95,8 @@ process of using cgo. See $GOROOT/misc/cgo/stdio and
$GOROOT/misc/cgo/gmp for examples.
Cgo does not yet work with gccgo.
+
+See "C? Go? Cgo!" for an introduction to using cgo:
+http://blog.golang.org/2011/03/c-go-cgo.html
*/
package documentation
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go
index 7ec4d8ccf..04d95f0b9 100644
--- a/src/cmd/cgo/gcc.go
+++ b/src/cmd/cgo/gcc.go
@@ -20,7 +20,6 @@ import (
"go/parser"
"go/token"
"os"
- "runtime"
"strconv"
"strings"
"unicode"
@@ -91,9 +90,9 @@ NextLine:
case 2:
k = kf[1]
switch kf[0] {
- case runtime.GOOS:
- case runtime.GOARCH:
- case runtime.GOOS + "/" + runtime.GOARCH:
+ case goos:
+ case goarch:
+ case goos + "/" + goarch:
default:
continue NextLine
}
@@ -688,7 +687,7 @@ func (p *Package) gccName() (ret string) {
// gccMachine returns the gcc -m flag to use, either "-m32" or "-m64".
func (p *Package) gccMachine() []string {
- switch runtime.GOARCH {
+ switch goarch {
case "amd64":
return []string{"-m64"}
case "386":
diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
index be9c2bc4f..106698114 100644
--- a/src/cmd/cgo/main.go
+++ b/src/cmd/cgo/main.go
@@ -20,6 +20,7 @@ import (
"os"
"path/filepath"
"reflect"
+ "runtime"
"strings"
)
@@ -122,6 +123,8 @@ var fset = token.NewFileSet()
var dynobj = flag.String("dynimport", "", "if non-empty, print dynamic import data for that file")
+var goarch, goos string
+
func main() {
flag.Usage = usage
flag.Parse()
@@ -162,13 +165,17 @@ func main() {
goFiles := args[i:]
- arch := os.Getenv("GOARCH")
- if arch == "" {
- fatalf("$GOARCH is not set")
+ goarch = runtime.GOARCH
+ if s := os.Getenv("GOARCH"); s != "" {
+ goarch = s
+ }
+ goos = runtime.GOOS
+ if s := os.Getenv("GOOS"); s != "" {
+ goos = s
}
- ptrSize := ptrSizeMap[arch]
+ ptrSize := ptrSizeMap[goarch]
if ptrSize == 0 {
- fatalf("unknown $GOARCH %q", arch)
+ fatalf("unknown $GOARCH %q", goarch)
}
// Clear locale variables so gcc emits English errors [sic].