diff --git a/debian/patches/include_missing_s390x_header.patch b/debian/patches/include_missing_s390x_header.patch new file mode 100644 index 0000000000..0a2b8470d3 --- /dev/null +++ b/debian/patches/include_missing_s390x_header.patch @@ -0,0 +1,98 @@ +Index: xamarin-pkg-mono/mono/mini/support-s390x.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ xamarin-pkg-mono/mono/mini/support-s390x.h 2014-10-27 22:55:28.660079050 +0000 +@@ -0,0 +1,93 @@ ++#ifndef __MONO_SUPPORT_S390X_H__ ++#define __MONO_SUPPORT_S390X_H__ ++ ++#define S390_SET(loc, dr, v) \ ++ do { \ ++ guint64 val = (guint64) v; \ ++ if (s390_is_uimm16(val)) { \ ++ s390_llill(loc, dr, val); \ ++ } else if (s390_is_uimm32(val)) { \ ++ s390_llilf(loc, dr, val); \ ++ } else { \ ++ guint32 hi = (val) >> 32; \ ++ guint32 lo = (val) & 0xffffffff; \ ++ s390_iihf(loc, dr, hi); \ ++ s390_iilf(loc, dr, lo); \ ++ } \ ++ } while (0) ++ ++#define S390_LONG(loc, opy, op, r, ix, br, off) \ ++ if (s390_is_imm20(off)) { \ ++ s390_##opy (loc, r, ix, br, off); \ ++ } else { \ ++ if (ix == 0) { \ ++ S390_SET(loc, s390_r13, off); \ ++ s390_la (loc, s390_r13, s390_r13, br, 0); \ ++ } else { \ ++ s390_la (loc, s390_r13, ix, br, 0); \ ++ S390_SET (loc, s390_r0, off); \ ++ s390_agr (loc, s390_r13, s390_r0); \ ++ } \ ++ s390_##op (loc, r, 0, s390_r13, 0); \ ++ } ++ ++#define S390_SET_MASK(loc, dr, v) \ ++ do { \ ++ if (s390_is_imm16 (v)) { \ ++ s390_lghi (loc, dr, v); \ ++ } else if (s390_is_imm32 (v)) { \ ++ s390_lgfi (loc, dr, v); \ ++ } else { \ ++ gint64 val = (gint64) v; \ ++ guint32 hi = (val) >> 32; \ ++ guint32 lo = (val) & 0xffffffff; \ ++ s390_iilf(loc, dr, lo); \ ++ s390_iihf(loc, dr, hi); \ ++ } \ ++ } while (0) ++ ++#define S390_CALL_TEMPLATE(loc, r) \ ++ do { \ ++ s390_iihf (loc, r, 0); \ ++ s390_iilf (loc, r, 0); \ ++ s390_basr (loc, s390_r14, r); \ ++ } while (0) ++ ++#define S390_BR_TEMPLATE(loc, r) \ ++ do { \ ++ s390_iihf (loc, r, 0); \ ++ s390_iilf (loc, r, 0); \ ++ s390_br (loc, r); \ ++ } while (0) ++ ++#define S390_LOAD_TEMPLATE(loc, r) \ ++ do { \ ++ s390_iihf (loc, r, 0); \ ++ s390_iilf (loc, r, 0); \ ++ } while (0) ++ ++#define S390_EMIT_CALL(loc, t) \ ++ do { \ ++ gint64 val = (gint64) t; \ ++ guint32 hi = (val) >> 32; \ ++ guint32 lo = (val) & 0xffffffff; \ ++ uintptr_t p = (uintptr_t) loc; \ ++ p += 2; \ ++ *(guint32 *) p = hi; \ ++ p += 6; \ ++ *(guint32 *) p = lo; \ ++ } while (0) ++ ++#define S390_EMIT_LOAD(loc, v) \ ++ do { \ ++ gint64 val = (gint64) v; \ ++ guint32 hi = (val) >> 32; \ ++ guint32 lo = (val) & 0xffffffff; \ ++ uintptr_t p = (uintptr_t) loc; \ ++ p += 2; \ ++ *(guint32 *) p = hi; \ ++ p += 6; \ ++ *(guint32 *) p = lo; \ ++ } while (0) ++ ++#endif /* __MONO_SUPPORT_S390X_H__ */ diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000000..6408f582fb --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +include_missing_s390x_header.patch