diff options
author | Dave Cheney <dave@cheney.net> | 2011-06-07 16:59:35 +1000 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2011-06-07 16:59:35 +1000 |
commit | 4881e7744ab3f125a60fda1d32583dcb59f9d817 (patch) | |
tree | 51cd84aa3218005c444319a9fdba914ca08f4ecc | |
parent | 5e03143c1aff5e62a8181f73fc52e5b7684d76de (diff) | |
download | go-4881e7744ab3f125a60fda1d32583dcb59f9d817.tar.gz go-4881e7744ab3f125a60fda1d32583dcb59f9d817.zip |
cgo: support non intel gcc machine flags
R=adg
CC=golang-dev
https://golang.org/cl/4528124
-rw-r--r-- | src/cmd/cgo/gcc.go | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index fa7602cf29..10411e94f3 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -660,11 +660,14 @@ func (p *Package) gccName() (ret string) { } // gccMachine returns the gcc -m flag to use, either "-m32" or "-m64". -func (p *Package) gccMachine() string { - if p.PtrSize == 8 { - return "-m64" - } - return "-m32" +func (p *Package) gccMachine() []string { + switch runtime.GOARCH { + case "amd64": + return []string{"-m64"} + case "386": + return []string{"-m32"} + } + return nil } const gccTmp = "_obj/_cgo_.o" @@ -674,7 +677,6 @@ const gccTmp = "_obj/_cgo_.o" func (p *Package) gccCmd() []string { c := []string{ p.gccName(), - p.gccMachine(), "-Wall", // many warnings "-Werror", // warnings are errors "-o" + gccTmp, // write object to tmp @@ -684,6 +686,7 @@ func (p *Package) gccCmd() []string { "-xc", // input language is C } c = append(c, p.GccOptions...) + c = append(c, p.gccMachine()...) c = append(c, "-") //read input from standard input return c } @@ -719,7 +722,8 @@ func (p *Package) gccDebug(stdin []byte) *dwarf.Data { // #defines that gcc encountered while processing the input // and its included files. func (p *Package) gccDefines(stdin []byte) string { - base := []string{p.gccName(), p.gccMachine(), "-E", "-dM", "-xc"} + base := []string{p.gccName(), "-E", "-dM", "-xc"} + base = append(base, p.gccMachine()...) stdout, _ := runGcc(stdin, append(append(base, p.GccOptions...), "-")) return stdout } |