New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0.4.12 doesn't compile on ppc64/ppc64le with gcc7 #119
Comments
|
Was 0.4.11 working before? |
|
Yep. With gcc 6.2.1. This may be a bug in gcc 7 |
|
Probably not a bug, just a different compilation mode and now See other arches for similar technique, e.g. |
|
see xianyi/OpenBLAS#1078 for the same issue in OpenBLAS |
|
Debian folks seems to have applied this patch: $ cat dont_clobber_r2_on_ppc64el.patch
Description: don't touch 'r2' register on ppc64el
It was invalid even before, now GCC 7 no longer accept this.
Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
Bug-Debian: https://bugs.debian.org/873694
Last-Update: 2017-09-09
---
--- python-greenlet-0.4.12.orig/platform/switch_ppc64_linux.h
+++ python-greenlet-0.4.12/platform/switch_ppc64_linux.h
@@ -56,7 +56,7 @@
#define ALTIVEC_REGS
#endif
-#define REGS_TO_SAVE "r2", "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
+#define REGS_TO_SAVE "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
"r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r31", \
"fr14", "fr15", "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", \
"fr22", "fr23", "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", \ |
I would like to remind everyone that Debian as an operating system can get away with it, because they control their build flag. Unfortunately greenlet as an upstream project cannot just remove the register, as it might result in silent intermittent failures for people compiling in non-pic modes. As I noted in #120 it needs more work by someone familiar with the architecture. |
|
@tuliom yes, there are some additional things that needed to be done, could you please prepare a new corrected PR? |
|
@tuliom it's been almost 6 months, I'm not sure why you would want to wait any longer. I'm not even sure who could answer you regarding I'm mostly concerned with proper attribution and correct saving/restoring of the frame pointer register. |
|
This was fixed in #130 |
Greetings.
I'm seeing ppc64/ppc64le builds fail with 0.4.12 and gcc7:
(This is Fedora rawhide)
Full build at: https://koji.fedoraproject.org/koji/taskinfo?taskID=17554406
The text was updated successfully, but these errors were encountered: