[mingw-w64-tools] fix build on s390(x)

Dan Horák sharkcz at fedoraproject.org
Wed Mar 28 12:35:13 UTC 2012


commit a81bf195460bb18a51147cdbf593e2204424f020
Author: Dan Horák <dan at danny.cz>
Date:   Wed Mar 28 14:35:09 2012 +0200

    fix build on s390(x)

 mingw-w64-tools-2.0.999-s390.patch |   63 ++++++++++++++++++++++++++++++++++++
 mingw-w64-tools.spec               |   10 ++++-
 2 files changed, 71 insertions(+), 2 deletions(-)
---
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 <epienbro at fedoraproject.org> - 2.0.999-0.1.trunk.20120124
+* Wed Mar 28 2012 Dan Horák <dan[at]danny.cz> - 2.0.999-0.3.trunk.20120124
+- fix build on s390(x)
+
+* Sun Mar 11 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.0.999-0.2.trunk.20120124
 - Eliminated several conditionals
 
 * Mon Jan 30 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.0.999-0.1.trunk.20120124


More information about the scm-commits mailing list