summaryrefslogtreecommitdiff
path: root/src/plugin
Commit message (Collapse)AuthorAgeFilesLines
* plugin: resolve plugin import path issueTodd Neal2017-04-261-1/+42
| | | | | | | | | | | | Resolve import paths to get plugin symbol prefixes. Fixes #19534 Change-Id: Ic25d83e72465ba8f6be0337218a1627b5dc702dc Reviewed-on: https://go-review.googlesource.com/40994 Run-TryBot: Todd Neal <todd@tneal.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
* plugin: resolve random crash when calling exported functionsTodd Neal2017-04-121-3/+6
| | | | | | | | | | | | | | open modified the plugin symbols map while ranging over it. This is normally harmless, except that the operations performed were not idempotent leading to function pointers being corrupted. Fixes #19269 Change-Id: I4b6eb1d45567161412e4a34b41f1ebf647bcc942 Reviewed-on: https://go-review.googlesource.com/40431 Run-TryBot: Todd Neal <todd@tneal.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
* plugin: remove unnecessary import "C" from exampleFrancesc Campoy2017-02-091-3/+0
| | | | | | | | | | It seems that it is not needed to import the pseudo package "C" for the plugin to be built correctly. Removing it to avoid confusion. Change-Id: I62838a953ad2889881bfbfd1a36141661565f033 Reviewed-on: https://go-review.googlesource.com/36638 Reviewed-by: David Crawshaw <crawshaw@golang.org>
* cmd/go, plugin: disable plugins on darwinDavid Crawshaw2016-12-151-1/+1
| | | | | | | | | | | | | | 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>
* cmd/link, runtime, plugin: versioningDavid Crawshaw2016-11-151-2/+6
| | | | | | | | | | | | | | | | | | In plugins and every program that opens a plugin, include a hash of every imported package. There are two versions of each hash: one local and one exported. As the program starts and plugins are loaded, the first exported symbol for each package becomes the canonical version. Any subsequent plugin's local package hash symbol has to match the canonical version. Fixes #17832 Change-Id: I4e62c8e1729d322e14b1673bada40fa7a74ea8bc Reviewed-on: https://go-review.googlesource.com/33161 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* plugin: fix doc example fmt usageLeon Klingele2016-11-051-1/+1
| | | | | | Change-Id: I0520a37a48a56d231a8ac2dc58b2bf1762282760 Reviewed-on: https://go-review.googlesource.com/32795 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* plugin: do not leak cRelName on error pathDavid Crawshaw2016-11-011-1/+1
| | | | | | | | | | Fixes #17683 Change-Id: I46f45c63796b58e8a8f14e37592231cbe7cd6934 Reviewed-on: https://go-review.googlesource.com/32438 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* cmd/link, plugin: use full plugin path for symbolsDavid Crawshaw2016-10-312-15/+15
| | | | | | | | | | | | | | | | Plumb the import path of a plugin package through to the linker, and use it as the prefix on the exported symbol names. Before this we used the basename of the plugin file as the prefix, which could conflict and result in multiple loaded plugins sharing symbols that are distinct. Fixes #17155 Fixes #17579 Change-Id: I7ce966ca82d04e8507c0bcb8ea4ad946809b1ef5 Reviewed-on: https://go-review.googlesource.com/32355 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* plugin: mention OS X support and concurrencyDavid Crawshaw2016-10-191-1/+4
| | | | | | Change-Id: I4270bf81511a5bf80ed146f5e66e4f8aeede2aa2 Reviewed-on: https://go-review.googlesource.com/31463 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* plugin: darwin supportDavid Crawshaw2016-09-232-5/+14
| | | | | | | | Change-Id: I76981d1d83da401178226634d076371a04f5ccb7 Reviewed-on: https://go-review.googlesource.com/29392 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
* plugin: cast dlerror return value for androidDavid Crawshaw2016-09-171-2/+2
| | | | | | | | | | | | | Until a few weeks ago, bionic, the Andoid libc, incorrectly returned const char* (instead of char*) from dlerror(3). https://android.googlesource.com/platform/bionic/+/5e071a18ce88d93fcffaebb9e0f62524ae504908 Change-Id: I30d33240c63a9f35b6c20ca7e3928ad33bc5e33f Reviewed-on: https://go-review.googlesource.com/29352 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
* plugin: new package for loading pluginsDavid Crawshaw2016-09-163-0/+212
Includes a linux implementation. Change-Id: Iacc2ed7da760ae9deebc928adf2b334b043b07ec Reviewed-on: https://go-review.googlesource.com/27823 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>