summaryrefslogtreecommitdiff
path: root/include/mysql
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-10-11 12:55:42 +0200
committerSergei Golubchik <sergii@pisem.net>2011-10-11 12:55:42 +0200
commitae6330080102f31edd6cd3b49028f0f3e39be769 (patch)
treeb277d27fcc4f0471c86fd0b756f120718b8d759a /include/mysql
parent8feff690b6d1f09acb6a68315669e75924da5f80 (diff)
parent3e8731dee04ec5f47557e0a0f55aa5f6f8d1f698 (diff)
downloadmariadb-git-ae6330080102f31edd6cd3b49028f0f3e39be769.tar.gz
merge
Diffstat (limited to 'include/mysql')
-rw-r--r--include/mysql/plugin.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h
index 4437f5e94ef..83e2aceaf1e 100644
--- a/include/mysql/plugin.h
+++ b/include/mysql/plugin.h
@@ -17,13 +17,27 @@
#ifndef _my_plugin_h
#define _my_plugin_h
-
/*
On Windows, exports from DLL need to be declared
-*/
-#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN))
-#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
-#else
+ Also, plugin needs to be declared as extern "C" because MSVC
+ unlike other compilers, uses C++ mangling for variables not only
+ for functions.
+*/
+#if defined(_MSC_VER)
+#if defined(MYSQL_DYNAMIC_PLUGIN)
+ #ifdef __cplusplus
+ #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
+ #else
+ #define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
+ #endif
+#else /* MYSQL_DYNAMIC_PLUGIN */
+ #ifdef __cplusplus
+ #define MYSQL_PLUGIN_EXPORT extern "C"
+ #else
+ #define MYSQL_PLUGIN_EXPORT
+ #endif
+#endif /*MYSQL_DYNAMIC_PLUGIN */
+#else /*_MSC_VER */
#define MYSQL_PLUGIN_EXPORT
#endif