Commit c1ada22b authored by David Crawshaw's avatar David Crawshaw Committed by Brad Fitzpatrick

cmd/go, plugin: disable plugins on darwin

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/34391Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 2adc2d1b
...@@ -417,7 +417,7 @@ version of gccgo. ...@@ -417,7 +417,7 @@ version of gccgo.
plugins written in Go, and a plugins written in Go, and a
new <a href="/pkg/plugin/"><code>plugin</code></a> package for new <a href="/pkg/plugin/"><code>plugin</code></a> package for
loading such plugins at run time. Plugin support is only currently loading such plugins at run time. Plugin support is only currently
available on Linux and macOS. available on Linux.
</p> </p>
<h2 id="runtime">Runtime</h2> <h2 id="runtime">Runtime</h2>
......
...@@ -29,7 +29,6 @@ cmd/link: fix -buildmode=pie / -linkshared combination (CL 28996) ...@@ -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: 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: insert trampolines for too-far jumps on ARM (CL 29397)
cmd/link: non-executable stack support for Solaris (CL 24142) 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: put text at address 0x1000000 on darwin/amd64 (CL 32185)
cmd/link: remove the -shared flag (CL 28852) cmd/link: remove the -shared flag (CL 28852)
cmd/link: split large elf text sections on ppc64x (CL 27790) cmd/link: split large elf text sections on ppc64x (CL 27790)
......
...@@ -786,8 +786,7 @@ func (t *tester) supportedBuildmode(mode string) bool { ...@@ -786,8 +786,7 @@ func (t *tester) supportedBuildmode(mode string) bool {
// linux-arm64 is missing because it causes the external linker // linux-arm64 is missing because it causes the external linker
// to crash, see https://golang.org/issue/17138 // to crash, see https://golang.org/issue/17138
switch pair { switch pair {
case "linux-386", "linux-amd64", "linux-arm", case "linux-386", "linux-amd64", "linux-arm":
"darwin-amd64":
return true return true
} }
return false return false
......
...@@ -413,8 +413,7 @@ func buildModeInit() { ...@@ -413,8 +413,7 @@ func buildModeInit() {
} else { } else {
switch platform { switch platform {
case "linux/amd64", "linux/arm", "linux/arm64", "linux/386", case "linux/amd64", "linux/arm", "linux/arm64", "linux/386",
"android/amd64", "android/arm", "android/arm64", "android/386", "android/amd64", "android/arm", "android/arm64", "android/386":
"darwin/amd64":
default: default:
fatalf("-buildmode=plugin not supported on %s\n", platform) fatalf("-buildmode=plugin not supported on %s\n", platform)
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// Package plugin implements loading and symbol resolution of Go plugins. // 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 // A plugin is a Go main package with exported functions and variables that
// has been built with: // has been built with:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment