Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/10
363 lines
12 KiB
Diff
363 lines
12 KiB
Diff
From b33dca8eecdc1eb30bb3747df563faabf729f001 Mon Sep 17 00:00:00 2001
|
|
From: Bruno Haible <bruno@clisp.org>
|
|
Date: Thu, 4 Jul 2019 16:27:33 +0200
|
|
Subject: [PATCH 1/2] build: Fix build errors with MSVC.
|
|
|
|
* gettext-tools/libgettextpo/exported.sh.in: Remove one level of eval.
|
|
* gettext-tools/libgettextpo/Makefile.am (config.h): Redirect compiler output to
|
|
stderr. Remove symbols that contain an '@'.
|
|
* libtextstyle/lib/Makefile.am (config.h): Likewise.
|
|
|
|
build: Fix build error with MSVC.
|
|
|
|
* gettext-runtime/intl/export.h (LIBINTL_DLL_EXPORTED): Define differently for
|
|
MSVC.
|
|
|
|
build: Fix build error with MSVC.
|
|
|
|
* gettext-runtime/intl/Makefile.am (INTL_WINDOWS_LIBS): New variable.
|
|
(OTHER_LDFLAGS): Add it.
|
|
|
|
build: Fix build errors with MSVC.
|
|
|
|
* gettext-tools/src/lang-table.h (language_table, language_variant_table):
|
|
Declare with C linkage.
|
|
* gettext-tools/src/read-po.h (input_format_po): Likewise.
|
|
* gettext-tools/src/read-properties.h (input_format_properties): Likewise.
|
|
* gettext-tools/src/read-stringtable.h (input_format_stringtable): Likewise.
|
|
* gettext-tools/src/write-properties.h (output_format_properties): Likewise.
|
|
* gettext-tools/src/write-stringtable.h (output_format_stringtable): Likewise.
|
|
|
|
intl: Don't export the glwthread* symbols from libintl on native Windows.
|
|
|
|
* gettext-runtime/intl/Makefile.am (OTHER_LDFLAGS): Add an -export-symbols-regex
|
|
option.
|
|
---
|
|
gettext-runtime/intl/Makefile.in | 10 +++++++++-
|
|
gettext-runtime/intl/export.h | 2 ++
|
|
gettext-tools/intl/Makefile.in | 10 +++++++++-
|
|
gettext-tools/libgettextpo/Makefile.in | 4 ++--
|
|
gettext-tools/libgettextpo/exported.sh.in | 5 ++---
|
|
gettext-tools/src/lang-table.h | 14 +++++++++++++-
|
|
gettext-tools/src/read-po.h | 14 +++++++++++++-
|
|
gettext-tools/src/read-properties.h | 14 +++++++++++++-
|
|
gettext-tools/src/read-stringtable.h | 14 +++++++++++++-
|
|
gettext-tools/src/write-properties.h | 14 +++++++++++++-
|
|
gettext-tools/src/write-stringtable.h | 14 +++++++++++++-
|
|
libtextstyle/lib/Makefile.in | 4 ++--
|
|
12 files changed, 104 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/gettext-runtime/intl/Makefile.in b/gettext-runtime/intl/Makefile.in
|
|
index fe59cd4aa..10aaa89fe 100644
|
|
--- a/gettext-runtime/intl/Makefile.in
|
|
+++ b/gettext-runtime/intl/Makefile.in
|
|
@@ -1416,6 +1416,11 @@ libintl_la_DEPENDENCIES = $(WOE32_LIBADD)
|
|
libgnuintl_la_LIBADD = $(WOE32_LIBADD)
|
|
libgnuintl_la_DEPENDENCIES = $(WOE32_LIBADD)
|
|
|
|
+# langprefs.c (_nl_language_preferences_win32_95) uses functions from
|
|
+# advapi32.dll.
|
|
+@WOE32_TRUE@INTL_WINDOWS_LIBS = -ladvapi32
|
|
+@WOE32_FALSE@INTL_WINDOWS_LIBS =
|
|
+
|
|
# Libtool's library version information for libintl.
|
|
# Before making a gettext release, you must change this according to the
|
|
# libtool documentation, section "Library interface versions".
|
|
@@ -1424,8 +1429,11 @@ LTV_REVISION = 6
|
|
LTV_AGE = 1
|
|
|
|
# How to build libintl.la and libgnuintl.la.
|
|
+# Limit the exported symbols: Don't export glwthread* (from gnulib modules).
|
|
OTHER_LDFLAGS = \
|
|
- @LTLIBICONV@ @INTL_MACOSX_LIBS@ @LTLIBTHREAD@ -no-undefined \
|
|
+ @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(INTL_WINDOWS_LIBS) @LTLIBTHREAD@ \
|
|
+ -no-undefined \
|
|
+ -export-symbols-regex '^([^g]|g[^l]|gl[^w]|glw[^t]|glwt[^h]|glwth[^r]|glwthr[^e]|glwthre[^a]|glwthrea[^d]).*' \
|
|
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
|
|
-rpath $(libdir)
|
|
|
|
diff --git a/gettext-runtime/intl/export.h b/gettext-runtime/intl/export.h
|
|
index b5c47ad5b..10253e338 100644
|
|
--- a/gettext-runtime/intl/export.h
|
|
+++ b/gettext-runtime/intl/export.h
|
|
@@ -1,6 +1,8 @@
|
|
|
|
#if @HAVE_VISIBILITY@ && BUILDING_LIBINTL
|
|
#define LIBINTL_DLL_EXPORTED __attribute__((__visibility__("default")))
|
|
+#elif defined _MSC_VER && BUILDING_LIBINTL
|
|
+#define LIBINTL_DLL_EXPORTED __declspec(dllexport)
|
|
#else
|
|
#define LIBINTL_DLL_EXPORTED
|
|
#endif
|
|
diff --git a/gettext-tools/intl/Makefile.in b/gettext-tools/intl/Makefile.in
|
|
index 9bdfe2238..6eabf22af 100644
|
|
--- a/gettext-tools/intl/Makefile.in
|
|
+++ b/gettext-tools/intl/Makefile.in
|
|
@@ -2120,6 +2120,11 @@ libintl_la_DEPENDENCIES = $(WOE32_LIBADD)
|
|
libgnuintl_la_LIBADD = $(WOE32_LIBADD)
|
|
libgnuintl_la_DEPENDENCIES = $(WOE32_LIBADD)
|
|
|
|
+# langprefs.c (_nl_language_preferences_win32_95) uses functions from
|
|
+# advapi32.dll.
|
|
+@WOE32_TRUE@INTL_WINDOWS_LIBS = -ladvapi32
|
|
+@WOE32_FALSE@INTL_WINDOWS_LIBS =
|
|
+
|
|
# Libtool's library version information for libintl.
|
|
# Before making a gettext release, you must change this according to the
|
|
# libtool documentation, section "Library interface versions".
|
|
@@ -2128,8 +2133,11 @@ LTV_REVISION = 6
|
|
LTV_AGE = 1
|
|
|
|
# How to build libintl.la and libgnuintl.la.
|
|
+# Limit the exported symbols: Don't export glwthread* (from gnulib modules).
|
|
OTHER_LDFLAGS = \
|
|
- @LTLIBICONV@ @INTL_MACOSX_LIBS@ @LTLIBTHREAD@ -no-undefined \
|
|
+ @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(INTL_WINDOWS_LIBS) @LTLIBTHREAD@ \
|
|
+ -no-undefined \
|
|
+ -export-symbols-regex '^([^g]|g[^l]|gl[^w]|glw[^t]|glwt[^h]|glwth[^r]|glwthr[^e]|glwthre[^a]|glwthrea[^d]).*' \
|
|
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
|
|
-rpath $(libdir)
|
|
|
|
diff --git a/gettext-tools/libgettextpo/Makefile.in b/gettext-tools/libgettextpo/Makefile.in
|
|
index 59356fa1d..444ef7807 100644
|
|
--- a/gettext-tools/libgettextpo/Makefile.in
|
|
+++ b/gettext-tools/libgettextpo/Makefile.in
|
|
@@ -2942,8 +2942,8 @@ config.h: $(BUILT_SOURCES)
|
|
;; \
|
|
esac; \
|
|
done; \
|
|
- } 5>&1 \
|
|
- | sed -e 's,.* ,,' | LC_ALL=C sort | LC_ALL=C uniq \
|
|
+ } 5>&1 1>&2 \
|
|
+ | sed -e 's,.* ,,' | grep -v '@' | LC_ALL=C sort | LC_ALL=C uniq \
|
|
| sed -e 's,^obstack_free$$,__obstack_free,' \
|
|
| sed -e 's,^\(.*\)$$,#define \1 libgettextpo_\1,' > config.h-t && \
|
|
if test -f config.h; then \
|
|
diff --git a/gettext-tools/libgettextpo/exported.sh.in b/gettext-tools/libgettextpo/exported.sh.in
|
|
index 2e6b89ab6..be7fb38bd 100644
|
|
--- a/gettext-tools/libgettextpo/exported.sh.in
|
|
+++ b/gettext-tools/libgettextpo/exported.sh.in
|
|
@@ -1,6 +1,6 @@
|
|
#! /bin/sh
|
|
#
|
|
-# Copyright (C) 2006 Free Software Foundation, Inc.
|
|
+# Copyright (C) 2006, 2009, 2019 Free Software Foundation, Inc.
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -20,5 +20,4 @@
|
|
# This is a separate script because $(GLOBAL_SYMBOL_PIPE) cannot be used in a
|
|
# Makefile, since it may contain dollar signs.
|
|
|
|
-nm_cmd="@NM@ $1 | @GLOBAL_SYMBOL_PIPE@"
|
|
-eval $nm_cmd
|
|
+@NM@ "$1" | @GLOBAL_SYMBOL_PIPE@
|
|
diff --git a/gettext-tools/src/lang-table.h b/gettext-tools/src/lang-table.h
|
|
index 7ac197669..ebf193b98 100644
|
|
--- a/gettext-tools/src/lang-table.h
|
|
+++ b/gettext-tools/src/lang-table.h
|
|
@@ -1,5 +1,5 @@
|
|
/* Table of languages.
|
|
- Copyright (C) 2001-2007 Free Software Foundation, Inc.
|
|
+ Copyright (C) 2001-2007, 2019 Free Software Foundation, Inc.
|
|
Written by Bruno Haible <haible@clisp.cons.org>, 2005.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -20,6 +20,12 @@
|
|
|
|
#include <stddef.h>
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
struct language_table_entry
|
|
{
|
|
const char *code;
|
|
@@ -32,4 +38,10 @@ extern const size_t language_table_size;
|
|
extern struct language_table_entry language_variant_table[];
|
|
extern const size_t language_variant_table_size;
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
#endif /* _LANG_TABLE_H */
|
|
diff --git a/gettext-tools/src/read-po.h b/gettext-tools/src/read-po.h
|
|
index 6852a22a0..98fc893b2 100644
|
|
--- a/gettext-tools/src/read-po.h
|
|
+++ b/gettext-tools/src/read-po.h
|
|
@@ -1,5 +1,5 @@
|
|
/* Reading PO files.
|
|
- Copyright (C) 2006 Free Software Foundation, Inc.
|
|
+ Copyright (C) 2006, 2019 Free Software Foundation, Inc.
|
|
Written by Bruno Haible <bruno@clisp.org>, 2006.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -20,7 +20,19 @@
|
|
|
|
#include "read-catalog-abstract.h"
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
/* Describes a .po / .pot file parser. */
|
|
extern DLL_VARIABLE const struct catalog_input_format input_format_po;
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
#endif /* _READ_PO_H */
|
|
diff --git a/gettext-tools/src/read-properties.h b/gettext-tools/src/read-properties.h
|
|
index e04abe524..9c299e6c2 100644
|
|
--- a/gettext-tools/src/read-properties.h
|
|
+++ b/gettext-tools/src/read-properties.h
|
|
@@ -1,5 +1,5 @@
|
|
/* Reading Java .properties files.
|
|
- Copyright (C) 2003, 2006 Free Software Foundation, Inc.
|
|
+ Copyright (C) 2003, 2006, 2019 Free Software Foundation, Inc.
|
|
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -20,7 +20,19 @@
|
|
|
|
#include "read-catalog-abstract.h"
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
/* Describes a .properties file parser. */
|
|
extern DLL_VARIABLE const struct catalog_input_format input_format_properties;
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
#endif /* _READ_PROPERTIES_H */
|
|
diff --git a/gettext-tools/src/read-stringtable.h b/gettext-tools/src/read-stringtable.h
|
|
index 43d1ba505..4a107f2ff 100644
|
|
--- a/gettext-tools/src/read-stringtable.h
|
|
+++ b/gettext-tools/src/read-stringtable.h
|
|
@@ -1,5 +1,5 @@
|
|
/* Reading NeXTstep/GNUstep .strings files.
|
|
- Copyright (C) 2003, 2006 Free Software Foundation, Inc.
|
|
+ Copyright (C) 2003, 2006, 2019 Free Software Foundation, Inc.
|
|
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -20,7 +20,19 @@
|
|
|
|
#include "read-catalog-abstract.h"
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
/* Describes a .strings file parser. */
|
|
extern DLL_VARIABLE const struct catalog_input_format input_format_stringtable;
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
#endif /* _READ_STRINGTABLE_H */
|
|
diff --git a/gettext-tools/src/write-properties.h b/gettext-tools/src/write-properties.h
|
|
index f0d18a7e4..7671afb30 100644
|
|
--- a/gettext-tools/src/write-properties.h
|
|
+++ b/gettext-tools/src/write-properties.h
|
|
@@ -1,5 +1,5 @@
|
|
/* Writing Java .properties files.
|
|
- Copyright (C) 2003, 2006 Free Software Foundation, Inc.
|
|
+ Copyright (C) 2003, 2006, 2019 Free Software Foundation, Inc.
|
|
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -20,7 +20,19 @@
|
|
|
|
#include "write-catalog.h"
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
/* Describes a PO file in Java .properties syntax. */
|
|
extern DLL_VARIABLE const struct catalog_output_format output_format_properties;
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
#endif /* _WRITE_PROPERTIES_H */
|
|
diff --git a/gettext-tools/src/write-stringtable.h b/gettext-tools/src/write-stringtable.h
|
|
index 7d4981826..af0b081c8 100644
|
|
--- a/gettext-tools/src/write-stringtable.h
|
|
+++ b/gettext-tools/src/write-stringtable.h
|
|
@@ -1,5 +1,5 @@
|
|
/* Writing NeXTstep/GNUstep .strings files.
|
|
- Copyright (C) 2003, 2006 Free Software Foundation, Inc.
|
|
+ Copyright (C) 2003, 2006, 2019 Free Software Foundation, Inc.
|
|
Written by Bruno Haible <bruno@clisp.org>, 2003.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -20,7 +20,19 @@
|
|
|
|
#include "write-catalog.h"
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+
|
|
+
|
|
/* Describes a PO file in .strings syntax. */
|
|
extern DLL_VARIABLE const struct catalog_output_format output_format_stringtable;
|
|
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
+
|
|
+
|
|
#endif /* _WRITE_STRINGTABLE_H */
|
|
diff --git a/libtextstyle/lib/Makefile.in b/libtextstyle/lib/Makefile.in
|
|
index 4a11d73a1..ebee4845a 100644
|
|
--- a/libtextstyle/lib/Makefile.in
|
|
+++ b/libtextstyle/lib/Makefile.in
|
|
@@ -4536,8 +4536,8 @@ config.h: $(BUILT_SOURCES) libtextstyle.sym
|
|
;; \
|
|
esac; \
|
|
done; \
|
|
- } 5>&1 \
|
|
- | sed -e 's,.* ,,' | LC_ALL=C sort | LC_ALL=C uniq \
|
|
+ } 5>&1 1>&2 \
|
|
+ | sed -e 's,.* ,,' | grep -v '@' | LC_ALL=C sort | LC_ALL=C uniq \
|
|
| LC_ALL=C join -v 1 - libtextstyle.sym \
|
|
| sed -e 's,^\(.*\)$$,#define \1 libtextstyle_\1,' > config.h-t; \
|
|
} 6>&1 && \
|
|
--
|
|
2.21.0.windows.1
|
|
|