diff options
author | Roberto Oliveira <robertoguimaraes8@gmail.com> | 2017-09-12 23:34:06 +0000 |
---|---|---|
committer | Roberto Oliveira <robertoguimaraes8@gmail.com> | 2017-09-12 23:35:39 +0000 |
commit | fdb4bb35e35ac6d76b3f7868f134dd14bf76a6ca (patch) | |
tree | 27160bd16e2da4f795a8aaadff26be7b3a0f0f40 /community/go | |
parent | a26ff41439ab61518459293c7aa8b4c96d828d31 (diff) | |
download | aports-fdb4bb35e35ac6d76b3f7868f134dd14bf76a6ca.tar.bz2 aports-fdb4bb35e35ac6d76b3f7868f134dd14bf76a6ca.tar.xz |
community/go: backport ppc64le fix for _main
_main has an early check to verify if a binary is statically or dynamically
linked that depends on R0 being zero. R0 is not guaranteed to be zero at that
point and this can break Go on ppc64le.
Diffstat (limited to 'community/go')
-rw-r--r-- | community/go/APKBUILD | 6 | ||||
-rw-r--r-- | community/go/make-sure-R0-is-zero-before-main-on-ppc64le.patch | 32 |
2 files changed, 36 insertions, 2 deletions
diff --git a/community/go/APKBUILD b/community/go/APKBUILD index 08b807b106..83b24a0770 100644 --- a/community/go/APKBUILD +++ b/community/go/APKBUILD @@ -4,7 +4,7 @@ pkgname=go pkgver=1.9 # This should be the latest commit on the corresponding release branch _toolsver="5d2fd3ccab986d52112bf301d47a819783339d0e" -pkgrel=0 +pkgrel=1 pkgdesc="Go programming language compiler" url="http://www.golang.org/" arch="all" @@ -20,6 +20,7 @@ source="http://golang.org/dl/go${pkgver/_/}.src.tar.gz go-tools-${pkgver/_/}.tar.gz::https://github.com/golang/tools/archive/${_toolsver}.tar.gz default-buildmode-pie.patch set-external-linker.patch + make-sure-R0-is-zero-before-main-on-ppc64le.patch " # NOTE: building go for x86 with grsec kernel requires: @@ -167,4 +168,5 @@ _crosspkg() { sha512sums="70c4b892b6883fb21fc1a547a2b8d174df8c7aca282a3906e3816b4442b16c5da578b69c19443122a4a45e66fc95d170528d826b70932af09f4afd2a46615d74 go1.9.src.tar.gz d679873082dbac6a47b7c43ac74c47cb19616fb053a4faa3e6ee78004ece86aa5c432fba3d24c030d47396089d7ec7c6357af5648bd767341056396066ff9a04 go-tools-1.9.tar.gz ef9da66d76e4698314eaf2aa88cf40a8430a15f8f6cb9ad17ee9d72498ec049b60e63e1ff5acf13a916c5ea365f9d9a282b6f2b06e28de9e3484eb9a3d7dd98e default-buildmode-pie.patch -6b36f3780ab10e5c4902473a8ab5c0417220ece584b537517e9e60979bdc5a548ed14dd2546605392c89ec5ea6691769d337d34e2e19b92eba5bbca1898f4ada set-external-linker.patch" +6b36f3780ab10e5c4902473a8ab5c0417220ece584b537517e9e60979bdc5a548ed14dd2546605392c89ec5ea6691769d337d34e2e19b92eba5bbca1898f4ada set-external-linker.patch +451ca02dea91d74d8e3216c7a48d963bbfc040b43d15868087d6339a1815c4996817c5ace265a20abcdb9d1da4e9ff58e373397d98df773b729876f4623b1cc8 make-sure-R0-is-zero-before-main-on-ppc64le.patch" diff --git a/community/go/make-sure-R0-is-zero-before-main-on-ppc64le.patch b/community/go/make-sure-R0-is-zero-before-main-on-ppc64le.patch new file mode 100644 index 0000000000..88f8877144 --- /dev/null +++ b/community/go/make-sure-R0-is-zero-before-main-on-ppc64le.patch @@ -0,0 +1,32 @@ +From 9aea0e89b6df032c29d0add8d69ba2c95f1106d9 Mon Sep 17 00:00:00 2001 +From: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> +Date: Thu, 10 Aug 2017 14:48:36 -0300 +Subject: [PATCH] runtime: make sure R0 is zero before _main on ppc64le + +_main has an early check to verify if a binary is statically or dynamically +linked that depends on R0 being zero. R0 is not guaranteed to be zero at that +point and this was breaking Go on Alpine for ppc64le. + +Change-Id: I4a1059ff7fd3db6fc489e7dcfe631c1814dd965b +Reviewed-on: https://go-review.googlesource.com/54730 +Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com> +Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> +--- + src/runtime/rt0_linux_ppc64le.s | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/runtime/rt0_linux_ppc64le.s b/src/runtime/rt0_linux_ppc64le.s +index 134858bff8..73b9ae392d 100644 +--- a/src/runtime/rt0_linux_ppc64le.s ++++ b/src/runtime/rt0_linux_ppc64le.s +@@ -2,6 +2,7 @@ + #include "textflag.h" + + TEXT _rt0_ppc64le_linux(SB),NOSPLIT,$0 ++ XOR R0, R0 // Make sure R0 is zero before _main + BR _main<>(SB) + + TEXT _rt0_ppc64le_linux_lib(SB),NOSPLIT,$-8 +-- +2.14.1 + |