[mingw32-gettext] Added a patch to fix compatibility with mingw-w64

epienbro epienbro at fedoraproject.org
Mon Feb 27 21:16:31 UTC 2012


commit fded1ce3a158f7d5e3050a842ff0f53c9b3bd93e
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Mon Feb 27 22:16:26 2012 +0100

    Added a patch to fix compatibility with mingw-w64

 gettext-0.18.1.1-tml.patch |  177 ++++++++++++++++++++++++++++++++++++++++++++
 mingw32-gettext.spec       |    9 ++-
 2 files changed, 185 insertions(+), 1 deletions(-)
---
diff --git a/gettext-0.18.1.1-tml.patch b/gettext-0.18.1.1-tml.patch
new file mode 100644
index 0000000..55e295f
--- /dev/null
+++ b/gettext-0.18.1.1-tml.patch
@@ -0,0 +1,177 @@
+--- gettext-runtime/intl/printf.c
++++ gettext-runtime/intl/printf.c
+@@ -69,7 +69,7 @@
+ #define STATIC static
+ 
+ /* This needs to be consistent with libgnuintl.h.in.  */
+-#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
++#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__
+ /* Don't break __attribute__((format(printf,M,N))).
+    This redefinition is only possible because the libc in NetBSD, Cygwin,
+    mingw does not have a function __printf__.  */
+--- gettext-runtime/intl/libgnuintl.h.in
++++ gettext-runtime/intl/libgnuintl.h.in
+@@ -330,7 +330,7 @@
+ 
+ #if !(defined printf && defined _GL_STDIO_H) /* don't override gnulib */
+ #undef printf
+-#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
++#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__
+ /* Don't break __attribute__((format(printf,M,N))).
+    This redefinition is only possible because the libc in NetBSD, Cygwin,
+    mingw does not have a function __printf__.
+---- gettext-tools/gnulib-lib/clean-temp.c
++++ gettext-tools/gnulib-lib/clean-temp.c
+@@ -66,9 +66,11 @@
+ # endif
+ #endif
+ 
++#ifndef _WIN64
+ #ifndef uintptr_t
+ # define uintptr_t unsigned long
+ #endif
++#endif
+ 
+ #if !GNULIB_FCNTL_SAFER
+ /* The results of open() in this file are not used with fchdir,
+--- gettext-tools/gnulib-lib/fstrcmp.c
++++ gettext-tools/gnulib-lib/fstrcmp.c
+@@ -55,9 +55,11 @@
+ #include "minmax.h"
+ #include "xalloc.h"
+ 
++#ifndef _WIN64
+ #ifndef uintptr_t
+ # define uintptr_t unsigned long
+ #endif
++#endif
+ 
+ 
+ #define ELEMENT char
+--- gettext-tools/gnulib-lib/gl_array_list.c
++++ gettext-tools/gnulib-lib/gl_array_list.c
+@@ -55,9 +55,11 @@
+ /* Checked size_t computations.  */
+ #include "xsize.h"
+ 
++#ifndef _WIN64
+ #ifndef uintptr_t
+ # define uintptr_t unsigned long
+ #endif
++#endif
+ 
+ /* -------------------------- gl_list_t Data Type -------------------------- */
+ 
+--- gettext-tools/gnulib-lib/gl_linkedhash_list.c
++++ gettext-tools/gnulib-lib/gl_linkedhash_list.c
+@@ -55,9 +55,11 @@
+ 
+ #include "xsize.h"
+ 
++#ifndef _WIN64
+ #ifndef uintptr_t
+ # define uintptr_t unsigned long
+ #endif
++#endif
+ 
+ #define WITH_HASHTABLE 1
+ 
+--- gettext-tools/gnulib-lib/stdio.in.h
++++ gettext-tools/gnulib-lib/stdio.in.h
+@@ -642,10 +642,6 @@
+ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \
+      || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@)
+ #  if defined __GNUC__
+-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+-/* Don't break __attribute__((format(printf,M,N))).  */
+-#    define printf __printf__
+-#   endif
+ _GL_FUNCDECL_RPL_1 (__printf__, int,
+                     (const char *format, ...)
+                     __asm__ (@ASM_SYMBOL_PREFIX@
+--- gettext-tools/gnulib-lib/tempname.c
++++ gettext-tools/gnulib-lib/tempname.c
+@@ -54,6 +54,10 @@
+ #include <stdint.h>
+ #include <unistd.h>
+ 
++#ifdef _WIN32
++# include <direct.h>
++#endif
++
+ #include <sys/stat.h>
+ 
+ #if _LIBC
+@@ -73,6 +73,10 @@
+ # define __xstat64(version, file, buf) stat (file, buf)
+ #endif
+ 
++#ifdef _WIN32
++# define mkdir(path,mode) _mkdir(path)
++#endif
++
+ #if ! (HAVE___SECURE_GETENV || _LIBC)
+ # define __secure_getenv getenv
+ #endif
+--- gettext-tools/src/write-java.c
++++ gettext-tools/src/write-java.c
+@@ -30,6 +30,10 @@
+ #include <stdio.h>
+ #include <string.h>
+ 
++#ifdef _WIN32
++# include <direct.h>
++#endif
++
+ #include <sys/stat.h>
+ #if !defined S_ISDIR && defined S_IFDIR
+ # define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+@@ -53,6 +53,10 @@
+ # define S_IXUSR 00100
+ #endif
+ 
++#ifdef _WIN32
++# define mkdir(path,mode) _mkdir(path)
++#endif
++
+ #include "c-ctype.h"
+ #include "error.h"
+ #include "xerror.h"
+--- gettext-tools/src/write-csharp.c
++++ gettext-tools/src/write-csharp.c
+@@ -29,6 +29,10 @@
+ #include <stdio.h>
+ #include <string.h>
+ 
++#ifdef _WIN32
++# include <direct.h>
++#endif
++
+ #include <sys/stat.h>
+ #if !defined S_ISDIR && defined S_IFDIR
+ # define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+@@ -70,6 +70,10 @@
+ # define S_IXOTH (S_IXUSR >> 6)
+ #endif
+ 
++#ifdef _WIN32
++# define mkdir(path,mode) _mkdir(path)
++#endif
++
+ #include "c-ctype.h"
+ #include "relocatable.h"
+ #include "error.h"
+--- gettext-tools/woe32dll/export.h
++++ gettext-tools/woe32dll/export.h
+@@ -90,7 +90,11 @@
+    --export-all-symbols is used.  */
+ 
+  /* IMP(x) is a symbol that contains the address of x.  */
++#ifdef _WIN64
++#define IMP(x) __imp_##x
++#else
+ #define IMP(x) _imp__##x
++#endif
+ 
+  /* Ensure that the variable x is exported from the library, and that a
+     pseudo-variable IMP(x) is available.  */
diff --git a/mingw32-gettext.spec b/mingw32-gettext.spec
index 2d05031..244f9bd 100644
--- a/mingw32-gettext.spec
+++ b/mingw32-gettext.spec
@@ -12,6 +12,9 @@ Group:     Development/Libraries
 URL:       http://www.gnu.org/software/gettext/
 Source0:   http://ftp.gnu.org/pub/gnu/gettext/gettext-%{version}.tar.gz
 
+# Fix compatibility with mingw-w64
+Patch0:    gettext-0.18.1.1-tml.patch
+
 BuildArch: noarch
 
 BuildRequires: mingw32-filesystem >= 68
@@ -48,10 +51,13 @@ Static version of the MinGW Windows Gettext library.
 
 %prep
 %setup -q -n gettext-%{version}
+%patch0 -p0
 
 
 %build
-echo "gl_cv_func_memchr_works='yes'" >> %{_mingw32_cache}
+# Some build workarounds
+export gl_cv_func_memchr_works="yes"
+export ac_cv_func_strnlen_working="yes"
 %{_mingw32_configure} \
   --disable-java \
   --disable-native-java \
@@ -128,6 +134,7 @@ rm -rf $RPM_BUILD_ROOT%{_mingw32_datadir}/info/
 %changelog
 * Mon Feb 27 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 0.18.1.1-5
 - Rebuild against the mingw-w64 toolchain
+- Added a patch to fix compatibility with mingw-w64
 
 * Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.18.1.1-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild


More information about the mingw mailing list