You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxe/src/gettext-1.patch

80 lines
2.8 KiB

# This file is part of MXE. See LICENSE.md for licensing information.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 18 May 2019 18:01:31 +0200
Subject: [PATCH 1/1] build: Avoid trouble on mingw caused by mingw's *printf
functions.
Reported by Michele Locati <michele@locati.it>
in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00103.html>.
* gettext-runtime/intl/Makefile.am (AM_CPPFLAGS): Define __USE_MINGW_ANSI_STDIO
to 0.
* gettext-runtime/libasprintf/Makefile.am (DEFS): Likewise.
* libtextstyle/lib/Makefile.am (AM_CPPFLAGS): Likewise.
(cherry picked from commit 45500ab1765581d6a3b7d2e6a6c2595466de70af)
diff --git a/gettext-runtime/intl/Makefile.am b/gettext-runtime/intl/Makefile.am
index 1111111..2222222 100644
--- a/gettext-runtime/intl/Makefile.am
+++ b/gettext-runtime/intl/Makefile.am
@@ -61,6 +61,15 @@ if WOE32
AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=0
endif
+if WOE32
+# On mingw, disable the declarations of *printf functions as aliases to the
+# corresponding __mingw_*printf functions, because
+# - these functions are useless for i18n purposes (not POSIX/XSI compliant),
+# - they pull in a dependency to the libgcc_s_sjlj DLL (through the symbols
+# __udivdi3, __umoddi3).
+AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=0
+endif
+
# Parametrization of the 'relocatable-lib-lgpl' module.
AM_CPPFLAGS += \
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
diff --git a/gettext-runtime/libasprintf/Makefile.am b/gettext-runtime/libasprintf/Makefile.am
index 1111111..2222222 100644
--- a/gettext-runtime/libasprintf/Makefile.am
+++ b/gettext-runtime/libasprintf/Makefile.am
@@ -35,6 +35,17 @@ if WOE32
DEFS += -D__USE_MINGW_ANSI_STDIO=0
endif
+DEFS = -DIN_LIBASPRINTF @DEFS@
+
+if WOE32
+# On mingw, disable the declarations of *printf functions as aliases to the
+# corresponding __mingw_*printf functions, because
+# - these functions are useless for i18n purposes (not POSIX/XSI compliant),
+# - they pull in a dependency to the libgcc_s_sjlj DLL (through the symbols
+# __udivdi3, __umoddi3).
+DEFS += -D__USE_MINGW_ANSI_STDIO=0
+endif
+
# Library include file.
diff --git a/libtextstyle/lib/Makefile.am b/libtextstyle/lib/Makefile.am
index 1111111..2222222 100644
--- a/libtextstyle/lib/Makefile.am
+++ b/libtextstyle/lib/Makefile.am
@@ -56,6 +56,13 @@ if WOE32
AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=0
endif
+if WOE32
+# On mingw, disable the declarations of *printf functions as aliases to the
+# corresponding __mingw_*printf functions, because they pull in a dependency
+# to the libgcc_s_sjlj DLL (through the symbols __udivdi3, __umoddi3).
+AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=0
+endif
+
# Rules generated and collected by gnulib-tool.
include Makefile.gnulib