summaryrefslogtreecommitdiff
path: root/recipes/glib/0001-Add-missing-extern-to-the-dllexport-version-of-GLIB_.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/glib/0001-Add-missing-extern-to-the-dllexport-version-of-GLIB_.patch')
-rw-r--r--recipes/glib/0001-Add-missing-extern-to-the-dllexport-version-of-GLIB_.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/recipes/glib/0001-Add-missing-extern-to-the-dllexport-version-of-GLIB_.patch b/recipes/glib/0001-Add-missing-extern-to-the-dllexport-version-of-GLIB_.patch
new file mode 100644
index 00000000..0a7d5771
--- /dev/null
+++ b/recipes/glib/0001-Add-missing-extern-to-the-dllexport-version-of-GLIB_.patch
@@ -0,0 +1,46 @@
+From fdfadfc27604b58886d7a33cf5f78bb0617733e6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
+Date: Tue, 31 Mar 2020 23:15:23 +0300
+Subject: [PATCH] Add missing 'extern' to the dllexport version of
+ GLIB_VAR/GOBJECT_VAR
+
+The __declspec(dllexport) attribute in itself doesn't imply
+'extern' - thus any intended variable declaration with
+GLIB_VAR/GOBJECT_VAR would actually be a variable definition. With
+C compilers defaulting to -fcommon, this isn't an issue, but
+upcoming compilers (GCC 10 and Clang 11) will default to -fno-common,
+ending up with duplicate definitions of these variables.
+---
+ glib/gtypes.h | 2 +-
+ gobject/gparamspecs.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/glib/gtypes.h b/glib/gtypes.h
+index df65836a0..23c5a1295 100644
+--- a/glib/gtypes.h
++++ b/glib/gtypes.h
+@@ -565,7 +565,7 @@ G_END_DECLS
+ # else /* !GLIB_STATIC_COMPILATION */
+ # ifdef GLIB_COMPILATION
+ # ifdef DLL_EXPORT
+-# define GLIB_VAR __declspec(dllexport)
++# define GLIB_VAR extern __declspec(dllexport)
+ # else /* !DLL_EXPORT */
+ # define GLIB_VAR extern
+ # endif /* !DLL_EXPORT */
+diff --git a/gobject/gparamspecs.h b/gobject/gparamspecs.h
+index 0309f9bb3..d0e4d5953 100644
+--- a/gobject/gparamspecs.h
++++ b/gobject/gparamspecs.h
+@@ -1150,7 +1150,7 @@ GParamSpec* g_param_spec_variant (const gchar *name,
+ # else /* !GOBJECT_STATIC_COMPILATION */
+ # ifdef GOBJECT_COMPILATION
+ # ifdef DLL_EXPORT
+-# define GOBJECT_VAR __declspec(dllexport)
++# define GOBJECT_VAR extern __declspec(dllexport)
+ # else /* !DLL_EXPORT */
+ # define GOBJECT_VAR extern
+ # endif /* !DLL_EXPORT */
+--
+2.25.1
+