diff options
author | Sergei Golubchik <sergii@pisem.net> | 2014-02-04 19:29:58 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2014-02-04 19:29:58 +0100 |
commit | 342b098cfbb63a3b0882dbe71de59f06f0baa99f (patch) | |
tree | fd0bb428bbb21158e844cb3d7ef276adeab7c5dd /storage | |
parent | bbfd1131277486248b6723ab6c993f2934cab602 (diff) | |
download | mariadb-git-342b098cfbb63a3b0882dbe71de59f06f0baa99f.tar.gz |
ha_xtradb.so fix for solaris, gcc 3.4.3
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/CMakeLists.txt | 11 | ||||
-rw-r--r-- | storage/xtradb/CMakeLists.txt | 13 | ||||
-rw-r--r-- | storage/xtradb/plugin_exports | 12 |
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: + *; +}; |