diff options
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_.patch | 46 |
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 + |