diff --git a/mingw-w64-tools-2.0.999-s390.patch b/mingw-w64-tools-2.0.999-s390.patch new file mode 100644 index 0000000..30b8305 --- /dev/null +++ b/mingw-w64-tools-2.0.999-s390.patch @@ -0,0 +1,63 @@ +diff -up mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/basetsd.h.s390 mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/basetsd.h +--- mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/basetsd.h.s390 2012-01-24 11:11:33.000000000 +0100 ++++ mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/basetsd.h 2012-03-28 14:18:17.000000000 +0200 +@@ -36,7 +36,7 @@ extern "C" { + * 64-bit. + */ + +-#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__sparc64__)) && !defined(_WIN64) ++#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__sparc64__) || defined(__s390x__)) && !defined(_WIN64) + #define _WIN64 + #endif + +@@ -305,6 +305,10 @@ typedef ULONG_PTR KAFFINITY, *PKAFFINITY + # undef WORDS_BIGENDIAN + # undef BITFIELDS_BIGENDIAN + # undef ALLOW_UNALIGNED_ACCESS ++#elif defined(__s390__) ++# define WORDS_BIGENDIAN ++# define BITFIELDS_BIGENDIAN ++# define ALLOW_UNALIGNED_ACCESS + #elif !defined(RC_INVOKED) && !defined(__WIDL__) && !defined(__midl) + # error Unknown CPU architecture! + #endif +diff -up mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/winnt.h.s390 mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/winnt.h +--- mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/winnt.h.s390 2012-01-24 11:11:33.000000000 +0100 ++++ mingw-w64-v2.0.999/mingw/mingw-w64-tools/widl/include/winnt.h 2012-03-28 14:20:07.000000000 +0200 +@@ -1910,6 +1910,36 @@ typedef struct _CONTEXT + + #endif /* __sparc__ */ + ++#ifdef __s390__ ++ ++/* ++ * FIXME: ++ * ++ * There is no official CONTEXT structure defined for the S/390 ++ * architecture, so I just made one up. ++ * ++ * This structure is completely dummy, made just to build widl. ++ * ++ */ ++ ++#define CONTEXT_S390 0x10000000 ++ ++#define CONTEXT_CONTROL (CONTEXT_S390 | 0x00000001) ++#define CONTEXT_FLOATING_POINT (CONTEXT_S390 | 0x00000002) ++#define CONTEXT_INTEGER (CONTEXT_S390 | 0x00000004) ++ ++#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) ++ ++#define EXCEPTION_READ_FAULT 0 ++#define EXCEPTION_WRITE_FAULT 1 ++#define EXCEPTION_EXECUTE_FAULT 8 ++ ++typedef struct _CONTEXT ++{ ++} CONTEXT; ++ ++#endif /* __s390__ */ ++ + #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED) + #error You need to define a CONTEXT for your CPU + #endif diff --git a/mingw-w64-tools.spec b/mingw-w64-tools.spec index 02cf473..eac0f4e 100644 --- a/mingw-w64-tools.spec +++ b/mingw-w64-tools.spec @@ -2,7 +2,7 @@ Name: mingw-w64-tools Version: 2.0.999 -Release: 0.2.trunk.%{snapshot_date}%{?dist} +Release: 0.3.trunk.%{snapshot_date}%{?dist} Summary: Supplementary tools which are part of the mingw-w64 toolchain License: Public Domain @@ -13,6 +13,8 @@ Source0: http://sourceforge.net/projects/mingw-w64/files/Toolchain%20sour %else Source0: http://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v%{version}.tar.gz %endif +# just to make widl to build on s390 +Patch0: %{name}-2.0.999-s390.patch BuildRequires: mingw32-filesystem >= 95 BuildRequires: mingw64-filesystem >= 95 @@ -33,6 +35,7 @@ tar -xf %{S:0} %else %setup -q -n mingw-w64-v%{version} %endif +%patch0 -p2 -b .s390 %build @@ -70,7 +73,10 @@ popd %changelog -* Sun Mar 11 2012 Erik van Pienbroek - 2.0.999-0.1.trunk.20120124 +* Wed Mar 28 2012 Dan HorĂ¡k - 2.0.999-0.3.trunk.20120124 +- fix build on s390(x) + +* Sun Mar 11 2012 Erik van Pienbroek - 2.0.999-0.2.trunk.20120124 - Eliminated several conditionals * Mon Jan 30 2012 Erik van Pienbroek - 2.0.999-0.1.trunk.20120124