summaryrefslogtreecommitdiff
path: root/src/cmd/cgo
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-06-10 10:59:18 +0200
committerOndřej Surý <ondrej@sury.org>2011-06-10 10:59:18 +0200
commitc29cace1e8f3260389ea78fa4ef86d80cd5e5275 (patch)
tree947e4435053998a194caacab99bf614d8fd5bc78 /src/cmd/cgo
parent56135c623a865c501ab31cc940c0e22ece2673f4 (diff)
downloadgolang-c29cace1e8f3260389ea78fa4ef86d80cd5e5275.tar.gz
Imported Upstream version 2011.06.09upstream-weekly/2011.06.09
Diffstat (limited to 'src/cmd/cgo')
-rw-r--r--src/cmd/cgo/gcc.go18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go
index fa7602cf2..10411e94f 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
}