aboutsummaryrefslogtreecommitdiffstats
path: root/community/py-greenlet
diff options
context:
space:
mode:
authorBreno Leitao <breno.leitao@gmail.com>2017-04-10 19:19:17 +0000
committerBreno Leitao <breno.leitao@gmail.com>2017-04-10 19:19:17 +0000
commit511302fea2c845092f279db823049b331a9bdbb9 (patch)
tree92d2a2781518a98656fac36c2861ed315f72fe74 /community/py-greenlet
parentb018af9d1f2748059631200e82a4406ce12dfe0f (diff)
downloadaports-511302fea2c845092f279db823049b331a9bdbb9.tar.bz2
aports-511302fea2c845092f279db823049b331a9bdbb9.tar.xz
community/py-greenlet: Re-enabling build on ppc64le
Fixing py-greenlet to build on ppc64le. This package was FTBFS because it is being compiled without omiting the frame pointer, and trying, at the same time, to clobber r31 (frame pointer register).
Diffstat (limited to 'community/py-greenlet')
-rw-r--r--community/py-greenlet/APKBUILD9
-rw-r--r--community/py-greenlet/ppc64le_clobbering.patch21
2 files changed, 27 insertions, 3 deletions
diff --git a/community/py-greenlet/APKBUILD b/community/py-greenlet/APKBUILD
index 8432e3de6a..b37567421f 100644
--- a/community/py-greenlet/APKBUILD
+++ b/community/py-greenlet/APKBUILD
@@ -7,12 +7,14 @@ pkgrel=1
pkgdesc="Lightweight in-process concurrent programming"
url="http://pypi.python.org/pypi/greenlet"
# does not build on ppc64le yet
-arch="all !ppc64le"
+arch="all"
license="MIT"
depends=""
makedepends="python2-dev py-setuptools python3-dev"
subpackages="py3-${pkgname/py-/}:_py3 py2-${pkgname/py-/}:_py2"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ ppc64le_clobbering.patch"
+
builddir="$srcdir/$_pkgname-$pkgver"
build() {
@@ -44,4 +46,5 @@ _py3() {
_py python3
}
-sha512sums="f3bf0f82b6e3bc687fc9b89469339cfb05e64518d1e49bc96066e8d47b8559f1c1aa53692cd25d839437a2f1b81df6fd9a4509a1b4063ec4ce1d97b73842e9f6 greenlet-0.4.12.tar.gz"
+sha512sums="f3bf0f82b6e3bc687fc9b89469339cfb05e64518d1e49bc96066e8d47b8559f1c1aa53692cd25d839437a2f1b81df6fd9a4509a1b4063ec4ce1d97b73842e9f6 greenlet-0.4.12.tar.gz
+fdadaefaa69a07c1926a000c70ed58b92e2103942b7031310575e3b2feefa15d56d2f9df72db3cab583b97d1f6607df5e09bd85bc3be284a0de18d2d1ffbe869 ppc64le_clobbering.patch"
diff --git a/community/py-greenlet/ppc64le_clobbering.patch b/community/py-greenlet/ppc64le_clobbering.patch
new file mode 100644
index 0000000000..c4d237f4f6
--- /dev/null
+++ b/community/py-greenlet/ppc64le_clobbering.patch
@@ -0,0 +1,21 @@
+Author: Breno Leitao <breno.leitao@gmail.com>
+Date: Mon Apr 10 23:22:01 2017 +0000
+
+ Do not clobber r31 if you are not omitting frame pointer
+
+ R31 is the register that is defined in the ABI v2 as the frame pointer.
+ It should not be clobbered unless we omit the frame pointer.
+
+ Signed-off-by: Breno Leitao <breno.leitao@gmail.com>
+
+--- greenlet-0.4.12/platform/switch_ppc64_linux.h.old 2017-04-10 19:14:26.808511638 +0000
++++ greenlet-0.4.12/platform/switch_ppc64_linux.h 2017-04-10 19:14:34.556511856 +0000
+@@ -57,7 +57,7 @@
+ #endif
+
+ #define REGS_TO_SAVE "r2", "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
+- "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r31", \
++ "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", \
+ "fr14", "fr15", "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", \
+ "fr22", "fr23", "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", \
+ "fr30", "fr31", \