]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: add AIX operating system.
authorClément Chigot <clement.chigot@atos.net>
Fri, 28 Sep 2018 12:34:00 +0000 (14:34 +0200)
committerIan Lance Taylor <iant@golang.org>
Wed, 3 Oct 2018 13:38:38 +0000 (13:38 +0000)
This commit adds AIX operating system to cmd/dist package for ppc64
architecture.

The stack guard is increased because of syscalls made inside the runtime
which need a larger stack.

Disable cmd/vet/all tests until aix/ppc64 is fully available.

Change-Id: I7e3caf86724249ae564a152d90c1cbd4de288814
Reviewed-on: https://go-review.googlesource.com/c/138715
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/dist/build.go
src/cmd/dist/buildruntime.go
src/cmd/dist/main.go
src/cmd/internal/objabi/head.go
src/cmd/vet/all/main.go

index b27d3aac4de032fc4f7154e8d93592e4dfcaf6d2..49f4a5e6a7d6a8d31dc4bb9cf2dfc6c96c98f78c 100644 (file)
@@ -87,6 +87,7 @@ var okgoos = []string{
        "openbsd",
        "plan9",
        "windows",
+       "aix",
 }
 
 // find reports the first index of p in l[0:n], or else -1.
@@ -1388,6 +1389,7 @@ func checkNotStale(goBinary string, targets ...string) {
 // single point of truth for supported platforms. This list is used
 // by 'go tool dist list'.
 var cgoEnabled = map[string]bool{
+       "aix/ppc64":       false,
        "darwin/386":      true,
        "darwin/amd64":    true,
        "darwin/arm":      true,
index acf2230cb4927d4c379171e76550b4f7b50c255d..10d1552c944d27bdf53473e2925c6f9574b74b95 100644 (file)
@@ -87,6 +87,10 @@ func mkzbootstrap(file string) {
 // stack guard size. Larger multipliers are used for non-optimized
 // builds that have larger stack frames.
 func stackGuardMultiplier() int {
+       // On AIX, a larger stack is needed for syscalls
+       if goos == "aix" {
+               return 2
+       }
        for _, s := range strings.Split(os.Getenv("GO_GCFLAGS"), " ") {
                if s == "-N" {
                        return 2
index 37e37e2733566a44433df976954a1f1366c8b9a1..bf08869afb7f2565bfa0c72f08ba2d10f3e49f79 100644 (file)
@@ -81,6 +81,9 @@ func main() {
                }
        case "windows":
                exe = ".exe"
+       case "aix":
+               // uname -m doesn't work under AIX
+               gohostarch = "ppc64"
        }
 
        sysinit()
index 23c7b62daf62062584eb5dd1393b39b1a98288db..db2221d6b145e1cddb162bb4f495899739802177 100644 (file)
@@ -48,10 +48,13 @@ const (
        Hplan9
        Hsolaris
        Hwindows
+       Haix
 )
 
 func (h *HeadType) Set(s string) error {
        switch s {
+       case "aix":
+               *h = Haix
        case "darwin":
                *h = Hdarwin
        case "dragonfly":
@@ -82,6 +85,8 @@ func (h *HeadType) Set(s string) error {
 
 func (h *HeadType) String() string {
        switch *h {
+       case Haix:
+               return "aix"
        case Hdarwin:
                return "darwin"
        case Hdragonfly:
index 24dfafd7bf67a1af7b19bc8babaf7ab6b1d0e7a8..7e4a68101f045786501776336325b17d6b01a39f 100644 (file)
@@ -204,6 +204,12 @@ func (p platform) vet() {
                return
        }
 
+       if p.os == "aix" && p.arch == "ppc64" {
+               // TODO(aix): enable as soon as the aix/ppc64 port has fully landed
+               fmt.Println("skipping aix/ppc64")
+               return
+       }
+
        var buf bytes.Buffer
        fmt.Fprintf(&buf, "go run main.go -p %s\n", p)