]> Cypherpunks repositories - gostls13.git/commit
cmd/link: enable internal linking of PIE binaries on ppc64le
authorPaul E. Murphy <murp@ibm.com>
Wed, 14 Jul 2021 19:09:27 +0000 (14:09 -0500)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Fri, 5 Nov 2021 19:14:22 +0000 (19:14 +0000)
commitfa16efb8358e0cb23e285803075764abbdcffe5e
tree48840800c98379e5fb0c286723c1b300297e48d7
parent93bab8a2f918afa8417f7b46da69c21d643de880
cmd/link: enable internal linking of PIE binaries on ppc64le

The amd64/arm64 relocation processing is used as a template
and updated for ppc64le.

This requires updating the TOC relocation handling code to
support linux type TOC relocations too (note, AIX uses
TOC-indirect accesses).

Noteably, the shared flag of go functions is used as a proxy
for the local entry point offset encoded in elf objects. Functions
in go ppc64le shared objects always[1] insert 2 instructions to
regenerate the TOC pointer.

[1] excepting a couple special runtime functions, see preprocess
    in obj9.go for specific details of this behavior.

Change-Id: I3646e6dc8a0a0ffe712771a976983315eae5c418
Reviewed-on: https://go-review.googlesource.com/c/go/+/352829
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Lynn Boger <laboger@linux.vnet.ibm.com>
src/cmd/dist/test.go
src/cmd/internal/sys/supported.go
src/cmd/link/internal/ld/config.go
src/cmd/link/internal/ld/data.go
src/cmd/link/internal/ppc64/asm.go
src/debug/elf/elf.go