unix: fix errors in syscalls when using -linkshared on ppc64x

When using -linkshared, the external linker on ppc64x cannot
always handle the direct branch to syscall.Syscall and similar
similar functions when the offset is too far. Instead it should
be done as a BL which can then be called through a procedure
linkage table entry.

This change removes functions Syscall, Syscall6,
RawSyscall, RawSyscall6 from asm_linux_ppc64x.s and instead
creates Go functions which call their corresponding
functions in the syscall package. As Go functions, they can be
inlined with the help of CL 147361.

Fixes golang/go#16662

Change-Id: Ibd2b6ec15b0781c3d7db25e249a3ffc9e1c2884b
Reviewed-on: https://go-review.googlesource.com/c/146518
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
3 files changed
tree: 4b95f8c4b559be5c9fd0b08c4cd0ed8d29688cfd
  1. cpu/
  2. plan9/
  3. unix/
  4. windows/
  5. .gitattributes
  6. .gitignore
  7. AUTHORS
  8. codereview.cfg
  9. CONTRIBUTING.md
  10. CONTRIBUTORS
  11. LICENSE
  12. PATENTS
  13. README.md
README.md

sys

This repository holds supplemental Go packages for low-level interactions with the operating system.

Download/Install

The easiest way to install is to run go get -u golang.org/x/sys. You can also manually git clone the repository to $GOPATH/src/golang.org/x/sys.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the sys repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/sys:” in the subject line, so it is easy to find.