]> Cypherpunks.ru repositories - gostls13.git/commitdiff
cmd/go, plugin: disable plugins on darwin
authorDavid Crawshaw <crawshaw@golang.org>
Wed, 14 Dec 2016 19:48:58 +0000 (14:48 -0500)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 15 Dec 2016 05:46:20 +0000 (05:46 +0000)
We are seeing a bad stack map in #18190. In a copystack, it is
mistaking a slot for a pointer.

Presumably this is caused either by our fledgling dynlink support on
darwin, or a consequence of having two copies of the runtime in the
process. But I have been unable to work out which in the 1.8 window,
so pushing darwin support to 1.9 or later.

Change-Id: I7fa4d2dede75033d9a428f24c1837a4613bd2639
Reviewed-on: https://go-review.googlesource.com/34391
Reviewed-by: Ian Lance Taylor <iant@golang.org>
doc/go1.8.html
doc/go1.8.txt
src/cmd/dist/test.go
src/cmd/go/build.go
src/plugin/plugin.go

index d93ce9a7794b5b555da289612b2800a283ae8ddc..1ea0188af19317aab214462789acdbd1e3a6813c 100644 (file)
@@ -417,7 +417,7 @@ version of gccgo.
   plugins written in Go, and a
   new <a href="/pkg/plugin/"><code>plugin</code></a> package for
   loading such plugins at run time. Plugin support is only currently
-  available on Linux and macOS.
+  available on Linux.
 </p>
 
 <h2 id="runtime">Runtime</h2>
index e66ad387f3994dad85ffb4986ceb1f41c9bc70cd..caa9a728f804ca94e2f859f68387802d7c13265e 100644 (file)
@@ -29,7 +29,6 @@ cmd/link: fix -buildmode=pie / -linkshared combination (CL 28996)
 cmd/link: for -buildmode=exe pass -no-pie to external linker (CL 33106)
 cmd/link: insert trampolines for too-far jumps on ARM (CL 29397)
 cmd/link: non-executable stack support for Solaris (CL 24142)
-cmd/link: plugin support on darwin/amd64 (CL 29394)
 cmd/link: put text at address 0x1000000 on darwin/amd64 (CL 32185)
 cmd/link: remove the -shared flag (CL 28852)
 cmd/link: split large elf text sections on ppc64x (CL 27790)
index 1d5c9cee498febe0143cbf3d6261060d885083bd..a552966b30f6df8da82ceb510359cadea4d3dbab 100644 (file)
@@ -786,8 +786,7 @@ func (t *tester) supportedBuildmode(mode string) bool {
                // linux-arm64 is missing because it causes the external linker
                // to crash, see https://golang.org/issue/17138
                switch pair {
-               case "linux-386", "linux-amd64", "linux-arm",
-                       "darwin-amd64":
+               case "linux-386", "linux-amd64", "linux-arm":
                        return true
                }
                return false
index 8eaa768f38e7c7d5a7ea94ca04669c8bf7270d24..98a650918a30d7d6ae80ff78551b4ad93fa32d33 100644 (file)
@@ -413,8 +413,7 @@ func buildModeInit() {
                } else {
                        switch platform {
                        case "linux/amd64", "linux/arm", "linux/arm64", "linux/386",
-                               "android/amd64", "android/arm", "android/arm64", "android/386",
-                               "darwin/amd64":
+                               "android/amd64", "android/arm", "android/arm64", "android/386":
                        default:
                                fatalf("-buildmode=plugin not supported on %s\n", platform)
                        }
index 5c822bd9ba5e50768f93123483efbe3dfd704a6e..b86099a4f6f0206aeb9a0dbf182243a74d4e0712 100644 (file)
@@ -4,7 +4,7 @@
 
 // Package plugin implements loading and symbol resolution of Go plugins.
 //
-// Currently plugins only work on Linux and Darwin.
+// Currently plugins only work on Linux.
 //
 // A plugin is a Go main package with exported functions and variables that
 // has been built with: