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 | |
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.
-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 + |