1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
Description: fix FTBFS on Alpha due to missing architecture support
Provides the missing function needed to compile on Alpha.
Author: Michael Cree <mcree@orcon.net.nz>
Last-Update: 2018-09-17
---
--- /dev/null
+++ python-greenlet-0.4.2/platform/switch_alpha_unix.h
@@ -0,0 +1,39 @@
+/*
+ * this is the internal transfer function.
+ *
+ * HISTORY
+ * 2012-11-01 M. J. Cree
+ * Ported from extant code for other arches.
+ */
+
+#define STACK_REFPLUS 1
+
+#ifdef SLP_EVAL
+
+#define STACK_MAGIC 0
+
+
+#define REGS_TO_SAVE "$9", "$10", "$11", "$12", "$13", "$14", "$15", \
+ "$26"
+
+static int
+slp_switch(void)
+{
+ register int *stackref, stsizediff;
+ __asm__ __volatile__ ("" : : : REGS_TO_SAVE);
+ __asm__ ("mov $sp, %0" : "=r" (stackref) : );
+ {
+ SLP_SAVE_STATE(stackref, stsizediff);
+ __asm__ __volatile__ (
+ "addq $sp, %0, $sp\n"
+ "addq $fp, %0, $fp\n"
+ : /* no outputs */
+ : "r" (stsizediff)
+ );
+ SLP_RESTORE_STATE();
+ }
+ __asm__ __volatile__ ("" : : : REGS_TO_SAVE);
+ return 0;
+}
+
+#endif
--- python-greenlet-0.4.2.orig/slp_platformselect.h
+++ python-greenlet-0.4.2/slp_platformselect.h
@@ -51,4 +51,6 @@
#include "platform/switch_csky_gcc.h" /* gcc on csky */
#elif defined(__GNUC__) && defined(__riscv)
#include "platform/switch_riscv_unix.h" /* gcc on RISC-V */
+#elif defined(__GNUC__) && defined(__alpha__)
+#include "platform/switch_alpha_unix.h" /* Alpha AXP */
#endif
|