]> Cypherpunks repositories - gostls13.git/commit
cmd/link: handle R_GOTPCREL separately on darwin
authorDavid Crawshaw <crawshaw@golang.org>
Mon, 14 Nov 2016 02:20:58 +0000 (21:20 -0500)
committerDavid Crawshaw <crawshaw@golang.org>
Wed, 16 Nov 2016 18:37:03 +0000 (18:37 +0000)
commit7ee793652307269c9fdee2c0cb222509371a6e36
tree8d41c474f6dcfe4a93ff598b6934f42afa289845
parentb75b9e1d65989753d0ee14ccc6007729e49e2e51
cmd/link: handle R_GOTPCREL separately on darwin

To generate the correct section offset the shared code path for
R_CALL, R_PCREL, and R_GOTPCREL on darwin when externally linking
walks up the symbol heirarchy adding the differences. This is fine,
except in the case where we are generating a GOT lookup, because
the topmost symbol is left in r.Xsym instead of the symbol we are
looking up. So all funcsym GOT lookups were looking up the outer
"go.func.*" symbol.

Fix this by separating out the R_GOTPCREL code path.

For #17828 (and may fix it).

Change-Id: I2c9f4d135e77c17270aa064d8c876dc6d485d659
Reviewed-on: https://go-review.googlesource.com/33211
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/data.go