From 342b098cfbb63a3b0882dbe71de59f06f0baa99f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 4 Feb 2014 19:29:58 +0100 Subject: [PATCH] ha_xtradb.so fix for solaris, gcc 3.4.3 --- storage/innobase/CMakeLists.txt | 11 ----------- storage/xtradb/CMakeLists.txt | 13 ++++++++++++- storage/xtradb/plugin_exports | 12 ++++++++++++ 3 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 storage/xtradb/plugin_exports 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: + *; +};