This libgo patch by Clément Chigot adds -maix32 when running GCC on 32-bit AIX. As gcc might now be compiled in 64bit, -maix32 must always be added to ensure that created objects will be 32bit. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
0c223b02b6e4dfbdeac9f1dcd64ee9d1cd04a5a2 diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 2f0865b7c80..780588aabc5 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -aac2b382839154d74eeef160522c0a5c1ea8aadf +9aed2d2c5e9c69aa530bf09d72d33c66e497d720 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/cmd/cgo/gcc.go b/libgo/go/cmd/cgo/gcc.go index 249cfe4675d..f774cbb9353 100644 --- a/libgo/go/cmd/cgo/gcc.go +++ b/libgo/go/cmd/cgo/gcc.go @@ -1573,6 +1573,10 @@ func (p *Package) gccMachine() []string { if goos == "aix" { return []string{"-maix64"} } + case "ppc": + if goos == "aix" { + return []string{"-maix32"} + } } return nil } @@ -1615,7 +1619,6 @@ func (p *Package) gccCmd() []string { c = append(c, p.GccOptions...) c = append(c, p.gccMachine()...) if goos == "aix" { - c = append(c, "-maix64") c = append(c, "-mcmodel=large") } c = append(c, "-") //read input from standard input diff --git a/libgo/go/cmd/go/internal/work/exec.go b/libgo/go/cmd/go/internal/work/exec.go index d610410a72c..65f3011adfa 100644 --- a/libgo/go/cmd/go/internal/work/exec.go +++ b/libgo/go/cmd/go/internal/work/exec.go @@ -2503,6 +2503,10 @@ func (b *Builder) gccArchArgs() []string { if cfg.Goos == "aix" { return []string{"-maix64"} } + case "ppc": + if cfg.Goos == "aix" { + return []string{"-maix32"} + } } return nil }