From 161eee669450014d57e21b9908b9ebcbcb0055e8 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Fri, 20 May 2016 00:24:54 +0530 Subject: [PATCH] gstconfig.h: Always use dllexport/import on Windows __declspec(dllexport/import) are supported by GCC and are needed for properly generating code that fetches the values of constants from DLLs built with __declspec(dllexport) which happens when anything using GST_EXPORT is built with MSVC. See: https://msdn.microsoft.com/en-us/library/619w14ds.aspx Essentially, if you built gstreamer with MSVC and then tried to use constants from it (such as GST_TYPE_CAPS) in a plugin, GCC would retrieve the address of the value instead of the value itself. --- gst/gstconfig.h.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in index 8460281e91..5e78b6de5e 100644 --- a/gst/gstconfig.h.in +++ b/gst/gstconfig.h.in @@ -133,14 +133,14 @@ * On Windows, this exports the plugin definition from the DLL. * On other platforms, this gets defined as a no-op. */ -#ifdef _MSC_VER +#ifdef _WIN32 /* Both 32-bit and 64-bit; both GCC and MSVC */ #define GST_PLUGIN_EXPORT __declspec(dllexport) extern #ifdef GST_EXPORTS #define GST_EXPORT __declspec(dllexport) extern #else #define GST_EXPORT __declspec(dllimport) extern #endif -#else /* not _MSC_VER */ +#else /* !_WIN32 */ #define GST_PLUGIN_EXPORT #if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) #define GST_EXPORT extern __attribute__ ((visibility ("default")))