summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorRay Donnelly <mingw.android@gmail.com>2015-10-24 00:49:56 (GMT)
committerRay Donnelly <mingw.android@gmail.com>2015-11-13 02:17:45 (GMT)
commit9e81836b8124efd11805e8050034492a8831208b (patch)
tree35677ac92a2a793a229659c548cd540628f0e317 /patches
parentf9968501eeacbe6c289c93d87243473d78eb8d5c (diff)
Add gettext and libiconv as companion libs
.. they're needed for the RPC generation in glibc on both Cygwin and MinGW-w64. Neither are built on GNU/Linux and iconv is not built on Darwin. Two patches for gettext are needed, one so that -O0 works and one so that static builds can be made. They can take a good while to build, so if not needed for_host or for_build then they are not built. Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Diffstat (limited to 'patches')
-rw-r--r--patches/gettext/0.19.6/110-Fix-linker-error-redefinition-of-vasprintf.patch31
-rw-r--r--patches/gettext/0.19.6/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch369
-rw-r--r--patches/gettext/0.19.6/130-Fix-static-Cygwin-x86_64-build-environ-is-always-dllimport.patch72
-rw-r--r--patches/libiconv/1.14/100-srclib_stdio.in.h-remove-gets-declarations.patch30
4 files changed, 502 insertions, 0 deletions
diff --git a/patches/gettext/0.19.6/110-Fix-linker-error-redefinition-of-vasprintf.patch b/patches/gettext/0.19.6/110-Fix-linker-error-redefinition-of-vasprintf.patch
new file mode 100644
index 0000000..dacdfb1
--- /dev/null
+++ b/patches/gettext/0.19.6/110-Fix-linker-error-redefinition-of-vasprintf.patch
@@ -0,0 +1,31 @@
+From a76649dae62768d0af7017b3fc0ca5f891588c78 Mon Sep 17 00:00:00 2001
+From: Andoni Morales Alastruey <ylatuya@gmail.com>
+Date: Wed, 29 Feb 2012 10:44:43 +0100
+Subject: [PATCH] Fix linker error: redefinition of vasprintf
+
+This might not be the best patch, but it works for us
+The link error was:
+.libs/autosprintf.o:autosprintf.cc:(.text$vasprintf[_vasprintf]+0x0): multiple definition of `_vasprintf'
+.libs/lib-asprintf.o:lib-asprintf.c:(.text+0x4621): first defined here
+---
+ gettext-runtime/libasprintf/autosprintf.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gettext-runtime/libasprintf/autosprintf.cc b/gettext-runtime/libasprintf/autosprintf.cc
+index ca318f7..2526210 100644
+--- a/gettext-runtime/libasprintf/autosprintf.cc
++++ b/gettext-runtime/libasprintf/autosprintf.cc
+@@ -19,8 +19,10 @@
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+ #ifndef _GNU_SOURCE
++#ifndef _WIN32
+ # define _GNU_SOURCE 1
+ #endif
++#endif
+
+ /* Specification. */
+ #include "autosprintf.h"
+--
+1.8.4
+
diff --git a/patches/gettext/0.19.6/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch b/patches/gettext/0.19.6/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch
new file mode 100644
index 0000000..d5c4143
--- /dev/null
+++ b/patches/gettext/0.19.6/120-Fix-Woe32-link-errors-when-compiling-with-O0.patch
@@ -0,0 +1,369 @@
+From d4ecf6f15ad7a428786df2efdc88b03be0a4fdbb Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno@gnu.org>
+Date: Thu, 17 Jan 2013 18:33:40 +0900
+Subject: [PATCH] Fix Woe32 link errors when compiling with -O0.
+
+---
+ gettext-tools/src/Makefile.am | 24 ++++++++++++++++++++++--
+ gettext-tools/src/color.c | 1 +
+ gettext-tools/woe32dll/c++color.cc | 1 +
+ gettext-tools/woe32dll/c++file-ostream.cc | 2 ++
+ gettext-tools/woe32dll/c++html-ostream.cc | 1 +
+ gettext-tools/woe32dll/c++styled-ostream.cc | 1 +
+ gettext-tools/woe32dll/c++term-ostream.cc | 1 +
+ gettext-tools/woe32dll/c++write-catalog.cc | 1 +
+ gettext-tools/woe32dll/c++write-po.cc | 1 +
+ gettext-tools/woe32dll/c++write-properties.cc | 1 +
+ gettext-tools/woe32dll/c++write-stringtable.cc | 1 +
+ gnulib-local/modules/file-ostream | 4 ++++
+ gnulib-local/modules/html-ostream | 4 ++++
+ gnulib-local/modules/ostream | 4 ++++
+ gnulib-local/modules/styled-ostream | 4 ++++
+ gnulib-local/modules/term-ostream | 4 ++++
+ 16 files changed, 53 insertions(+), 2 deletions(-)
+ create mode 100644 gettext-tools/woe32dll/c++color.cc
+ create mode 100644 gettext-tools/woe32dll/c++file-ostream.cc
+ create mode 100644 gettext-tools/woe32dll/c++html-ostream.cc
+ create mode 100644 gettext-tools/woe32dll/c++styled-ostream.cc
+ create mode 100644 gettext-tools/woe32dll/c++term-ostream.cc
+ create mode 100644 gettext-tools/woe32dll/c++write-catalog.cc
+ create mode 100644 gettext-tools/woe32dll/c++write-po.cc
+ create mode 100644 gettext-tools/woe32dll/c++write-properties.cc
+ create mode 100644 gettext-tools/woe32dll/c++write-stringtable.cc
+
+Additional fix (COLOR_SOURCE) by Ray Donnelly <mingw.android@gmail.com>
+
+diff -urN a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am
+--- a/gettext-tools/src/Makefile.am 2015-09-11 01:54:21.000000000 +0100
++++ b/gettext-tools/src/Makefile.am 2015-10-22 00:41:49.601786700 +0100
+@@ -145,10 +145,26 @@
+ format-lua.c \
+ format-javascript.c
+
++if !WOE32DLL
++COLOR_SOURCE = color.c
++OUTPUT_SOURCE = \
++ write-catalog.c \
++ write-properties.c \
++ write-stringtable.c \
++ write-po.c
++else
++COLOR_SOURCE = ../woe32dll/c++color.cc
++OUTPUT_SOURCE = \
++ ../woe32dll/c++write-catalog.cc \
++ ../woe32dll/c++write-properties.cc \
++ ../woe32dll/c++write-stringtable.cc \
++ ../woe32dll/c++write-po.cc
++endif
++
+ # libgettextsrc contains all code that is needed by at least two programs.
+ libgettextsrc_la_SOURCES = \
+ $(COMMON_SOURCE) read-catalog.c \
+-color.c write-catalog.c write-properties.c write-stringtable.c write-po.c \
++$(COLOR_SOURCE) $(OUTPUT_SOURCE) \
+ msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c \
+ msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c plural-eval.c \
+ plural-table.c quote.h sentence.h sentence.c libexpat-compat.c \
+diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
+--- a/gettext-tools/src/Makefile.in 2015-09-11 04:05:11.000000000 +0100
++++ b/gettext-tools/src/Makefile.in 2015-10-22 00:42:26.253852000 +0100
+@@ -387,19 +387,22 @@
+ am__libgettextsrc_la_SOURCES_DIST = message.c po-error.c po-xerror.c \
+ read-catalog-abstract.c po-lex.c po-gram-gen.y po-charset.c \
+ read-po.c read-properties.c read-stringtable.c open-catalog.c \
+- dir-list.c str-list.c read-catalog.c color.c write-catalog.c \
+- write-properties.c write-stringtable.c write-po.c msgl-ascii.c \
+- msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c \
+- msgl-english.c msgl-check.c file-list.c msgl-charset.c \
+- po-time.c plural-exp.c plural-eval.c plural-table.c quote.h \
+- sentence.h sentence.c libexpat-compat.c format.c \
+- format-invalid.h format-c.c format-c-parse.h format-sh.c \
+- format-python.c format-python-brace.c format-lisp.c \
+- format-elisp.c format-librep.c format-scheme.c format-java.c \
+- format-csharp.c format-awk.c format-pascal.c format-ycp.c \
+- format-tcl.c format-perl.c format-perl-brace.c format-php.c \
+- format-gcc-internal.c format-gfc-internal.c format-qt.c \
+- format-qt-plural.c format-kde.c format-kde-kuit.c \
++ dir-list.c str-list.c read-catalog.c color.c \
++ ../woe32dll/c++color.cc write-catalog.c write-properties.c \
++ write-stringtable.c write-po.c ../woe32dll/c++write-catalog.cc \
++ ../woe32dll/c++write-properties.cc \
++ ../woe32dll/c++write-stringtable.cc ../woe32dll/c++write-po.cc \
++ msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c \
++ msgl-header.c msgl-english.c msgl-check.c file-list.c \
++ msgl-charset.c po-time.c plural-exp.c plural-eval.c \
++ plural-table.c quote.h sentence.h sentence.c libexpat-compat.c \
++ format.c format-invalid.h format-c.c format-c-parse.h \
++ format-sh.c format-python.c format-python-brace.c \
++ format-lisp.c format-elisp.c format-librep.c format-scheme.c \
++ format-java.c format-csharp.c format-awk.c format-pascal.c \
++ format-ycp.c format-tcl.c format-perl.c format-perl-brace.c \
++ format-php.c format-gcc-internal.c format-gfc-internal.c \
++ format-qt.c format-qt-plural.c format-kde.c format-kde-kuit.c \
+ format-boost.c format-lua.c format-javascript.c \
+ ../woe32dll/c++format.cc read-desktop.c \
+ ../woe32dll/gettextsrc-exports.c
+@@ -413,7 +416,18 @@
+ libgettextsrc_la-open-catalog.lo libgettextsrc_la-dir-list.lo \
+ libgettextsrc_la-str-list.lo
+ am__dirstamp = $(am__leading_dot)dirstamp
+-@WOE32DLL_FALSE@am__objects_2 = libgettextsrc_la-format.lo \
++@WOE32DLL_FALSE@am__objects_2 = libgettextsrc_la-color.lo
++@WOE32DLL_TRUE@am__objects_2 = \
++@WOE32DLL_TRUE@ ../woe32dll/libgettextsrc_la-c++color.lo
++@WOE32DLL_FALSE@am__objects_3 = libgettextsrc_la-write-catalog.lo \
++@WOE32DLL_FALSE@ libgettextsrc_la-write-properties.lo \
++@WOE32DLL_FALSE@ libgettextsrc_la-write-stringtable.lo \
++@WOE32DLL_FALSE@ libgettextsrc_la-write-po.lo
++@WOE32DLL_TRUE@am__objects_3 = ../woe32dll/libgettextsrc_la-c++write-catalog.lo \
++@WOE32DLL_TRUE@ ../woe32dll/libgettextsrc_la-c++write-properties.lo \
++@WOE32DLL_TRUE@ ../woe32dll/libgettextsrc_la-c++write-stringtable.lo \
++@WOE32DLL_TRUE@ ../woe32dll/libgettextsrc_la-c++write-po.lo
++@WOE32DLL_FALSE@am__objects_4 = libgettextsrc_la-format.lo \
+ @WOE32DLL_FALSE@ libgettextsrc_la-format-c.lo \
+ @WOE32DLL_FALSE@ libgettextsrc_la-format-sh.lo \
+ @WOE32DLL_FALSE@ libgettextsrc_la-format-python.lo \
+@@ -440,7 +454,7 @@
+ @WOE32DLL_FALSE@ libgettextsrc_la-format-boost.lo \
+ @WOE32DLL_FALSE@ libgettextsrc_la-format-lua.lo \
+ @WOE32DLL_FALSE@ libgettextsrc_la-format-javascript.lo
+-@WOE32DLL_TRUE@am__objects_2 = \
++@WOE32DLL_TRUE@am__objects_4 = \
+ @WOE32DLL_TRUE@ ../woe32dll/libgettextsrc_la-c++format.lo \
+ @WOE32DLL_TRUE@ libgettextsrc_la-format-c.lo \
+ @WOE32DLL_TRUE@ libgettextsrc_la-format-sh.lo \
+@@ -468,13 +482,10 @@
+ @WOE32DLL_TRUE@ libgettextsrc_la-format-boost.lo \
+ @WOE32DLL_TRUE@ libgettextsrc_la-format-lua.lo \
+ @WOE32DLL_TRUE@ libgettextsrc_la-format-javascript.lo
+-@WOE32DLL_TRUE@am__objects_3 = ../woe32dll/libgettextsrc_la-gettextsrc-exports.lo
++@WOE32DLL_TRUE@am__objects_5 = ../woe32dll/libgettextsrc_la-gettextsrc-exports.lo
+ am_libgettextsrc_la_OBJECTS = $(am__objects_1) \
+- libgettextsrc_la-read-catalog.lo libgettextsrc_la-color.lo \
+- libgettextsrc_la-write-catalog.lo \
+- libgettextsrc_la-write-properties.lo \
+- libgettextsrc_la-write-stringtable.lo \
+- libgettextsrc_la-write-po.lo libgettextsrc_la-msgl-ascii.lo \
++ libgettextsrc_la-read-catalog.lo $(am__objects_2) \
++ $(am__objects_3) libgettextsrc_la-msgl-ascii.lo \
+ libgettextsrc_la-msgl-iconv.lo libgettextsrc_la-msgl-equal.lo \
+ libgettextsrc_la-msgl-cat.lo libgettextsrc_la-msgl-header.lo \
+ libgettextsrc_la-msgl-english.lo \
+@@ -482,8 +493,8 @@
+ libgettextsrc_la-msgl-charset.lo libgettextsrc_la-po-time.lo \
+ libgettextsrc_la-plural-exp.lo libgettextsrc_la-plural-eval.lo \
+ libgettextsrc_la-plural-table.lo libgettextsrc_la-sentence.lo \
+- libgettextsrc_la-libexpat-compat.lo $(am__objects_2) \
+- libgettextsrc_la-read-desktop.lo $(am__objects_3)
++ libgettextsrc_la-libexpat-compat.lo $(am__objects_4) \
++ libgettextsrc_la-read-desktop.lo $(am__objects_5)
+ libgettextsrc_la_OBJECTS = $(am_libgettextsrc_la_OBJECTS)
+ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+ am_cldr_plurals_OBJECTS = cldr_plurals-cldr-plural.$(OBJEXT) \
+@@ -1975,15 +1986,29 @@
+ @WOE32DLL_TRUE@ format-qt.c format-qt-plural.c format-kde.c \
+ @WOE32DLL_TRUE@ format-kde-kuit.c format-boost.c format-lua.c \
+ @WOE32DLL_TRUE@ format-javascript.c
++@WOE32DLL_FALSE@COLOR_SOURCE = color.c
++@WOE32DLL_TRUE@COLOR_SOURCE = ../woe32dll/c++color.cc
++@WOE32DLL_FALSE@OUTPUT_SOURCE = \
++@WOE32DLL_FALSE@ write-catalog.c \
++@WOE32DLL_FALSE@ write-properties.c \
++@WOE32DLL_FALSE@ write-stringtable.c \
++@WOE32DLL_FALSE@ write-po.c
++
++@WOE32DLL_TRUE@OUTPUT_SOURCE = \
++@WOE32DLL_TRUE@ ../woe32dll/c++write-catalog.cc \
++@WOE32DLL_TRUE@ ../woe32dll/c++write-properties.cc \
++@WOE32DLL_TRUE@ ../woe32dll/c++write-stringtable.cc \
++@WOE32DLL_TRUE@ ../woe32dll/c++write-po.cc
++
+
+ # libgettextsrc contains all code that is needed by at least two programs.
+-libgettextsrc_la_SOURCES = $(COMMON_SOURCE) read-catalog.c color.c \
+- write-catalog.c write-properties.c write-stringtable.c \
+- write-po.c msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c \
+- msgl-header.c msgl-english.c msgl-check.c file-list.c \
+- msgl-charset.c po-time.c plural-exp.c plural-eval.c \
+- plural-table.c quote.h sentence.h sentence.c libexpat-compat.c \
+- $(FORMAT_SOURCE) read-desktop.c $(am__append_1)
++libgettextsrc_la_SOURCES = $(COMMON_SOURCE) read-catalog.c \
++ $(COLOR_SOURCE) $(OUTPUT_SOURCE) msgl-ascii.c msgl-iconv.c \
++ msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c \
++ msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c \
++ plural-eval.c plural-table.c quote.h sentence.h sentence.c \
++ libexpat-compat.c $(FORMAT_SOURCE) read-desktop.c \
++ $(am__append_1)
+
+ # msggrep needs pattern matching.
+ LIBGREP = ../libgrep/libgrep.a
+@@ -2345,6 +2370,15 @@
+ ../woe32dll/$(am__dirstamp):
+ @$(MKDIR_P) ../woe32dll
+ @: > ../woe32dll/$(am__dirstamp)
++../woe32dll/libgettextsrc_la-c++color.lo: ../woe32dll/$(am__dirstamp)
++../woe32dll/libgettextsrc_la-c++write-catalog.lo: \
++ ../woe32dll/$(am__dirstamp)
++../woe32dll/libgettextsrc_la-c++write-properties.lo: \
++ ../woe32dll/$(am__dirstamp)
++../woe32dll/libgettextsrc_la-c++write-stringtable.lo: \
++ ../woe32dll/$(am__dirstamp)
++../woe32dll/libgettextsrc_la-c++write-po.lo: \
++ ../woe32dll/$(am__dirstamp)
+ ../woe32dll/libgettextsrc_la-c++format.lo: \
+ ../woe32dll/$(am__dirstamp)
+ ../woe32dll/libgettextsrc_la-gettextsrc-exports.lo: \
+@@ -3156,6 +3190,21 @@
+ .cc.lo:
+ $(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $<
+
++../woe32dll/libgettextsrc_la-c++color.lo: ../woe32dll/c++color.cc
++ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgettextsrc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ../woe32dll/libgettextsrc_la-c++color.lo `test -f '../woe32dll/c++color.cc' || echo '$(srcdir)/'`../woe32dll/c++color.cc
++
++../woe32dll/libgettextsrc_la-c++write-catalog.lo: ../woe32dll/c++write-catalog.cc
++ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgettextsrc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ../woe32dll/libgettextsrc_la-c++write-catalog.lo `test -f '../woe32dll/c++write-catalog.cc' || echo '$(srcdir)/'`../woe32dll/c++write-catalog.cc
++
++../woe32dll/libgettextsrc_la-c++write-properties.lo: ../woe32dll/c++write-properties.cc
++ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgettextsrc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ../woe32dll/libgettextsrc_la-c++write-properties.lo `test -f '../woe32dll/c++write-properties.cc' || echo '$(srcdir)/'`../woe32dll/c++write-properties.cc
++
++../woe32dll/libgettextsrc_la-c++write-stringtable.lo: ../woe32dll/c++write-stringtable.cc
++ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgettextsrc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ../woe32dll/libgettextsrc_la-c++write-stringtable.lo `test -f '../woe32dll/c++write-stringtable.cc' || echo '$(srcdir)/'`../woe32dll/c++write-stringtable.cc
++
++../woe32dll/libgettextsrc_la-c++write-po.lo: ../woe32dll/c++write-po.cc
++ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgettextsrc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ../woe32dll/libgettextsrc_la-c++write-po.lo `test -f '../woe32dll/c++write-po.cc' || echo '$(srcdir)/'`../woe32dll/c++write-po.cc
++
+ ../woe32dll/libgettextsrc_la-c++format.lo: ../woe32dll/c++format.cc
+ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgettextsrc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ../woe32dll/libgettextsrc_la-c++format.lo `test -f '../woe32dll/c++format.cc' || echo '$(srcdir)/'`../woe32dll/c++format.cc
+
+diff -urN a/gettext-tools/src/color.c b/gettext-tools/src/color.c
+--- a/gettext-tools/src/color.c 2015-08-21 08:18:27.000000000 +0100
++++ b/gettext-tools/src/color.c 2015-10-22 00:31:33.326659600 +0100
+@@ -28,6 +28,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+
++#include "ostream.h"
+ #include "term-ostream.h"
+ #include "xalloc.h"
+ #include "relocatable.h"
+diff -urN a/gettext-tools/woe32dll/c++color.cc b/gettext-tools/woe32dll/c++color.cc
+--- a/gettext-tools/woe32dll/c++color.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++color.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../src/color.c"
+diff -urN a/gettext-tools/woe32dll/c++file-ostream.cc b/gettext-tools/woe32dll/c++file-ostream.cc
+--- a/gettext-tools/woe32dll/c++file-ostream.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++file-ostream.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1,2 @@
++#include "../gnulib-lib/file-ostream.c"
++
+diff -urN a/gettext-tools/woe32dll/c++html-ostream.cc b/gettext-tools/woe32dll/c++html-ostream.cc
+--- a/gettext-tools/woe32dll/c++html-ostream.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++html-ostream.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../gnulib-lib/html-ostream.c"
+diff -urN a/gettext-tools/woe32dll/c++styled-ostream.cc b/gettext-tools/woe32dll/c++styled-ostream.cc
+--- a/gettext-tools/woe32dll/c++styled-ostream.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++styled-ostream.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../gnulib-lib/styled-ostream.c"
+diff -urN a/gettext-tools/woe32dll/c++term-ostream.cc b/gettext-tools/woe32dll/c++term-ostream.cc
+--- a/gettext-tools/woe32dll/c++term-ostream.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++term-ostream.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../gnulib-lib/term-ostream.c"
+diff -urN a/gettext-tools/woe32dll/c++write-catalog.cc b/gettext-tools/woe32dll/c++write-catalog.cc
+--- a/gettext-tools/woe32dll/c++write-catalog.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++write-catalog.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../src/write-catalog.c"
+diff -urN a/gettext-tools/woe32dll/c++write-po.cc b/gettext-tools/woe32dll/c++write-po.cc
+--- a/gettext-tools/woe32dll/c++write-po.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++write-po.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../src/write-po.c"
+diff -urN a/gettext-tools/woe32dll/c++write-properties.cc b/gettext-tools/woe32dll/c++write-properties.cc
+--- a/gettext-tools/woe32dll/c++write-properties.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++write-properties.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../src/write-properties.c"
+diff -urN a/gettext-tools/woe32dll/c++write-stringtable.cc b/gettext-tools/woe32dll/c++write-stringtable.cc
+--- a/gettext-tools/woe32dll/c++write-stringtable.cc 1970-01-01 01:00:00.000000000 +0100
++++ b/gettext-tools/woe32dll/c++write-stringtable.cc 2015-10-22 00:31:33.326659600 +0100
+@@ -0,0 +1 @@
++#include "../src/write-stringtable.c"
+diff -urN a/gnulib-local/modules/file-ostream b/gnulib-local/modules/file-ostream
+--- a/gnulib-local/modules/file-ostream 2015-08-21 06:48:27.000000000 +0100
++++ b/gnulib-local/modules/file-ostream 2015-10-22 00:31:33.326659600 +0100
+@@ -12,7 +12,11 @@
+ configure.ac:
+
+ Makefile.am:
++if !WOE32DLL
+ lib_SOURCES += file-ostream.c
++else
++lib_SOURCES += ../woe32dll/c++file-ostream.cc
++endif
+ # This is a Makefile rule that generates multiple files at once; see the
+ # automake documentation, node "Multiple Outputs", for details.
+ file-ostream.h : $(top_srcdir)/build-aux/moopp file-ostream.oo.h file-ostream.oo.c ostream.oo.h
+diff -urN a/gnulib-local/modules/html-ostream b/gnulib-local/modules/html-ostream
+--- a/gnulib-local/modules/html-ostream 2015-08-21 06:48:27.000000000 +0100
++++ b/gnulib-local/modules/html-ostream 2015-10-22 00:31:33.326659600 +0100
+@@ -15,7 +15,11 @@
+ configure.ac:
+
+ Makefile.am:
++if !WOE32DLL
+ lib_SOURCES += html-ostream.c
++else
++lib_SOURCES += ../woe32dll/c++html-ostream.cc
++endif
+ # This is a Makefile rule that generates multiple files at once; see the
+ # automake documentation, node "Multiple Outputs", for details.
+ html-ostream.h : $(top_srcdir)/build-aux/moopp html-ostream.oo.h html-ostream.oo.c ostream.oo.h
+diff -urN a/gnulib-local/modules/ostream b/gnulib-local/modules/ostream
+--- a/gnulib-local/modules/ostream 2015-08-21 06:48:27.000000000 +0100
++++ b/gnulib-local/modules/ostream 2015-10-22 00:31:33.342259600 +0100
+@@ -11,7 +11,11 @@
+ configure.ac:
+
+ Makefile.am:
++if !WOE32DLL
+ lib_SOURCES += ostream.c
++else
++lib_SOURCES += ../woe32dll/c++ostream.cc
++endif
+ # This is a Makefile rule that generates multiple files at once; see the
+ # automake documentation, node "Multiple Outputs", for details.
+ ostream.h : $(top_srcdir)/build-aux/moopp ostream.oo.h ostream.oo.c
+diff -urN a/gnulib-local/modules/styled-ostream b/gnulib-local/modules/styled-ostream
+--- a/gnulib-local/modules/styled-ostream 2015-08-21 06:48:27.000000000 +0100
++++ b/gnulib-local/modules/styled-ostream 2015-10-22 00:31:33.342259600 +0100
+@@ -11,7 +11,11 @@
+ configure.ac:
+
+ Makefile.am:
++if !WOE32DLL
+ lib_SOURCES += styled-ostream.c
++else
++lib_SOURCES += ../woe32dll/c++styled-ostream.cc
++endif
+ # This is a Makefile rule that generates multiple files at once; see the
+ # automake documentation, node "Multiple Outputs", for details.
+ styled-ostream.h : $(top_srcdir)/build-aux/moopp styled-ostream.oo.h styled-ostream.oo.c ostream.oo.h
+diff -urN a/gnulib-local/modules/term-ostream b/gnulib-local/modules/term-ostream
+--- a/gnulib-local/modules/term-ostream 2015-08-21 06:48:27.000000000 +0100
++++ b/gnulib-local/modules/term-ostream 2015-10-22 00:31:33.342259600 +0100
+@@ -22,7 +22,11 @@
+ gl_TERM_OSTREAM
+
+ Makefile.am:
++if !WOE32DLL
+ lib_SOURCES += term-ostream.c
++else
++lib_SOURCES += ../woe32dll/c++term-ostream.cc
++endif
+ # This is a Makefile rule that generates multiple files at once; see the
+ # automake documentation, node "Multiple Outputs", for details.
+ term-ostream.h : $(top_srcdir)/build-aux/moopp term-ostream.oo.h term-ostream.oo.c ostream.oo.h
diff --git a/patches/gettext/0.19.6/130-Fix-static-Cygwin-x86_64-build-environ-is-always-dllimport.patch b/patches/gettext/0.19.6/130-Fix-static-Cygwin-x86_64-build-environ-is-always-dllimport.patch
new file mode 100644
index 0000000..3487302
--- /dev/null
+++ b/patches/gettext/0.19.6/130-Fix-static-Cygwin-x86_64-build-environ-is-always-dllimport.patch
@@ -0,0 +1,72 @@
+diff -urN gettext-0.19.6.orig/gettext-tools/gnulib-lib/execute.c gettext-0.19.6/gettext-tools/gnulib-lib/execute.c
+--- gettext-0.19.6.orig/gettext-tools/gnulib-lib/execute.c 2015-10-24 16:54:39.310372500 +0100
++++ gettext-0.19.6/gettext-tools/gnulib-lib/execute.c 2015-10-24 16:55:35.261954100 +0100
+@@ -52,7 +52,7 @@
+ __cygwin_environ variable on cygwin64:
+ <https://cygwin.com/ml/cygwin/2013-06/msg00228.html>. */
+ #if defined __CYGWIN__ && defined __x86_64__
+-extern DLL_VARIABLE char **environ;
++extern __attribute__((dllimport)) char **environ;
+ #endif
+
+
+diff -urN gettext-0.19.6.orig/gettext-tools/gnulib-lib/spawn-pipe.c gettext-0.19.6/gettext-tools/gnulib-lib/spawn-pipe.c
+--- gettext-0.19.6.orig/gettext-tools/gnulib-lib/spawn-pipe.c 2015-09-11 04:03:56.000000000 +0100
++++ gettext-0.19.6/gettext-tools/gnulib-lib/spawn-pipe.c 2015-10-24 16:56:00.885918100 +0100
+@@ -52,7 +52,7 @@
+ __cygwin_environ variable on cygwin64:
+ <https://cygwin.com/ml/cygwin/2013-06/msg00228.html>. */
+ #if defined __CYGWIN__ && defined __x86_64__
+-extern DLL_VARIABLE char **environ;
++extern __attribute__((dllimport)) char **environ;
+ #endif
+
+
+diff -urN gettext-0.19.6.orig/gettext-tools/gnulib-tests/test-environ.c gettext-0.19.6/gettext-tools/gnulib-tests/test-environ.c
+--- gettext-0.19.6.orig/gettext-tools/gnulib-tests/test-environ.c 2015-09-11 04:03:58.000000000 +0100
++++ gettext-0.19.6/gettext-tools/gnulib-tests/test-environ.c 2015-10-24 16:56:51.519198900 +0100
+@@ -26,7 +26,7 @@
+ __cygwin_environ variable on cygwin64:
+ <https://cygwin.com/ml/cygwin/2013-06/msg00228.html>. */
+ #if defined __CYGWIN__ && defined __x86_64__
+-extern DLL_VARIABLE char **environ;
++extern __attribute__((dllimport)) char **environ;
+ #endif
+
+ int
+diff -urN gettext-0.19.6.orig/gnulib-local/lib/execute.c.diff gettext-0.19.6/gnulib-local/lib/execute.c.diff
+--- gettext-0.19.6.orig/gnulib-local/lib/execute.c.diff 2015-08-21 08:18:28.000000000 +0100
++++ gettext-0.19.6/gnulib-local/lib/execute.c.diff 2015-10-24 16:58:17.182285000 +0100
+@@ -10,7 +10,7 @@
+ + __cygwin_environ variable on cygwin64:
+ + <https://cygwin.com/ml/cygwin/2013-06/msg00228.html>. */
+ +#if defined __CYGWIN__ && defined __x86_64__
+-+extern DLL_VARIABLE char **environ;
+++extern __attribute__((dllimport)) char **environ;
+ +#endif
+ +
+
+diff -urN gettext-0.19.6.orig/gnulib-local/lib/spawn-pipe.c.diff gettext-0.19.6/gnulib-local/lib/spawn-pipe.c.diff
+--- gettext-0.19.6.orig/gnulib-local/lib/spawn-pipe.c.diff 2015-08-21 08:18:28.000000000 +0100
++++ gettext-0.19.6/gnulib-local/lib/spawn-pipe.c.diff 2015-10-24 16:58:11.741447300 +0100
+@@ -10,7 +10,7 @@
+ + __cygwin_environ variable on cygwin64:
+ + <https://cygwin.com/ml/cygwin/2013-06/msg00228.html>. */
+ +#if defined __CYGWIN__ && defined __x86_64__
+-+extern DLL_VARIABLE char **environ;
+++extern __attribute__((dllimport)) char **environ;
+ +#endif
+ +
+
+diff -urN gettext-0.19.6.orig/gnulib-local/tests/test-environ.c.diff gettext-0.19.6/gnulib-local/tests/test-environ.c.diff
+--- gettext-0.19.6.orig/gnulib-local/tests/test-environ.c.diff 2015-08-21 08:18:28.000000000 +0100
++++ gettext-0.19.6/gnulib-local/tests/test-environ.c.diff 2015-10-24 16:58:35.915765100 +0100
+@@ -10,7 +10,7 @@
+ + __cygwin_environ variable on cygwin64:
+ + <https://cygwin.com/ml/cygwin/2013-06/msg00228.html>. */
+ +#if defined __CYGWIN__ && defined __x86_64__
+-+extern DLL_VARIABLE char **environ;
+++extern __attribute__((dllimport)) char **environ;
+ +#endif
+ +
+ int
diff --git a/patches/libiconv/1.14/100-srclib_stdio.in.h-remove-gets-declarations.patch b/patches/libiconv/1.14/100-srclib_stdio.in.h-remove-gets-declarations.patch
new file mode 100644
index 0000000..382c841
--- /dev/null
+++ b/patches/libiconv/1.14/100-srclib_stdio.in.h-remove-gets-declarations.patch
@@ -0,0 +1,30 @@
+diff -r -u libiconv-1.14/srclib/stdio.in.h.orig libiconv-1.14/srclib/stdio.in.h
+--- libiconv-1.14/srclib/stdio.in.h.orig 2013-02-22 13:52:46.336327969 -0600
++++ libiconv-1.14/srclib/stdio.in.h 2013-02-22 13:54:27.948207059 -0600
+@@ -679,22 +679,11 @@
+ # endif
+ #endif
+
+-#if @GNULIB_GETS@
+-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+-# undef gets
+-# define gets rpl_gets
+-# endif
+-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
+-_GL_CXXALIAS_RPL (gets, char *, (char *s));
+-# else
+-_GL_CXXALIAS_SYS (gets, char *, (char *s));
+-# undef gets
+-# endif
+-_GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+- so any use of gets warrants an unconditional warning. Assume it is
+- always declared, since it is required by C89. */
++ so any use of gets warrants an unconditional warning; besides, C11
++ removed it. */
++#undef gets
++#if HAVE_RAW_DECL_GETS
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
+