]> Cypherpunks repositories - gostls13.git/commit
cmd/link: limit darwin dynlink symbol exports
authorDavid Crawshaw <crawshaw@golang.org>
Fri, 9 Dec 2016 17:38:34 +0000 (12:38 -0500)
committerDavid Crawshaw <crawshaw@golang.org>
Sat, 10 Dec 2016 17:03:45 +0000 (17:03 +0000)
commitab5a2173f91c1e2779cdf49a2fc8a7abafecd5f1
tree8d8af0f1466eb48eb0b493537b2e3c5a16aa3566
parent4c71af71b43f8fcface5f63cdb3620203b58d45e
cmd/link: limit darwin dynlink symbol exports

The pclntable contains pointers to functions. If the function symbol
is exported in a plugin, and there is a matching symbol in the host
binary, then the pclntable of a plugin ends up pointing at the
function in the host module.

This doesn't work because the traceback code expects the pointer to
be in the same module space as the PC value.

So don't export functions that might overlap with the host binary.
This way the pointer stays in its module.

Updates #18190

Change-Id: Ifb77605b35fb0a1e7edeecfd22b1e335ed4bb392
Reviewed-on: https://go-review.googlesource.com/34196
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
misc/cgo/testplugin/src/plugin1/plugin1.go
src/cmd/link/internal/ld/macho.go