summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2014-02-04 19:29:58 +0100
committerSergei Golubchik <sergii@pisem.net>2014-02-04 19:29:58 +0100
commit342b098cfbb63a3b0882dbe71de59f06f0baa99f (patch)
treefd0bb428bbb21158e844cb3d7ef276adeab7c5dd /storage
parentbbfd1131277486248b6723ab6c993f2934cab602 (diff)
downloadmariadb-git-342b098cfbb63a3b0882dbe71de59f06f0baa99f.tar.gz
ha_xtradb.so fix for solaris, gcc 3.4.3
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/CMakeLists.txt11
-rw-r--r--storage/xtradb/CMakeLists.txt13
-rw-r--r--storage/xtradb/plugin_exports12
3 files changed, 24 insertions, 12 deletions
diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt
index ee8758a08d2..508ef62b3a0 100644
--- a/storage/innobase/CMakeLists.txt
+++ b/storage/innobase/CMakeLists.txt
@@ -385,17 +385,6 @@ IF(WITH_INNODB)
SET(WITH_INNOBASE_STORAGE_ENGINE TRUE)
ENDIF()
-
-# On solaris, reduce symbol visibility, so loader does not mix
-# the same symbols from builtin innodb and from shared one.
-# Only required for old GCC (3.4.3) that does not support hidden visibility
-IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND CMAKE_COMPILER_IS_GNUCC
- AND NOT HAVE_VISIBILITY_HIDDEN)
- SET(LINKER_SCRIPT "-Wl,-M${CMAKE_CURRENT_SOURCE_DIR}/plugin_exports")
-ELSE()
- SET(LINKER_SCRIPT)
-ENDIF()
-
MYSQL_ADD_PLUGIN(innobase ${INNOBASE_SOURCES} STORAGE_ENGINE
DEFAULT
MODULE_OUTPUT_NAME ha_innodb
diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt
index 282db2ddf31..48bd110fb4f 100644
--- a/storage/xtradb/CMakeLists.txt
+++ b/storage/xtradb/CMakeLists.txt
@@ -394,10 +394,21 @@ IF(WITH_INNODB)
SET(WITH_INNOBASE_STORAGE_ENGINE TRUE)
ENDIF()
+# On solaris, reduce symbol visibility, so loader does not mix
+# the same symbols from builtin innodb and from shared one.
+# Only required for old GCC (3.4.3) that does not support hidden visibility
+IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND CMAKE_COMPILER_IS_GNUCC
+ AND NOT HAVE_VISIBILITY_HIDDEN)
+ SET(LINKER_SCRIPT "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/plugin_exports")
+ELSE()
+ SET(LINKER_SCRIPT)
+ENDIF()
+
IF(XTRADB_OK)
MYSQL_ADD_PLUGIN(xtradb ${INNOBASE_SOURCES} STORAGE_ENGINE
MODULE_ONLY RECOMPILE_FOR_EMBEDDED
- LINK_LIBRARIES ${ZLIB_LIBRARY})
+ LINK_LIBRARIES ${ZLIB_LIBRARY} ${LINKER_SCRIPT})
ELSE()
MESSAGE("Percona XtraDB is not supported on this platform")
ENDIF()
+
diff --git a/storage/xtradb/plugin_exports b/storage/xtradb/plugin_exports
new file mode 100644
index 00000000000..4cf45ee4ccd
--- /dev/null
+++ b/storage/xtradb/plugin_exports
@@ -0,0 +1,12 @@
+{
+ global:
+ _maria_plugin_interface_version_;
+ _maria_sizeof_struct_st_plugin_;
+ _maria_plugin_declarations_;
+ _mysql_plugin_interface_version_;
+ _mysql_sizeof_struct_st_plugin_;
+ _mysql_plugin_declarations_;
+ *_service;
+ local:
+ *;
+};