diff options
-rw-r--r-- | cmake/libutils.cmake | 25 | ||||
-rw-r--r-- | cmake/os/SunOS.cmake | 5 | ||||
-rw-r--r-- | cmake/plugin.cmake | 1 | ||||
-rw-r--r-- | sql/opt_subselect.h | 2 | ||||
-rw-r--r-- | sql/sql_join_cache.h | 2 | ||||
-rw-r--r-- | sql/sql_select.h | 2 | ||||
-rw-r--r-- | storage/innobase/CMakeLists.txt | 6 | ||||
-rw-r--r-- | storage/xtradb/buf/buf0buf.c | 2 |
8 files changed, 32 insertions, 13 deletions
diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index bb90f7d2a6c..7c13df05ca4 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -305,16 +305,27 @@ FUNCTION(GET_DEPENDEND_OS_LIBS target result) ENDFUNCTION() MACRO(RESTRICT_SYMBOL_EXPORTS target) + SET(VISIBILITY_HIDDEN_FLAG) + IF(CMAKE_COMPILER_IS_GNUCXX AND UNIX) CHECK_C_COMPILER_FLAG("-fvisibility=hidden" HAVE_VISIBILITY_HIDDEN) IF(HAVE_VISIBILITY_HIDDEN) - GET_TARGET_PROPERTY(COMPILE_FLAGS ${target} COMPILE_FLAGS) - IF(NOT COMPILE_FLAGS) - # Avoid COMPILE_FLAGS-NOTFOUND - SET(COMPILE_FLAGS) - ENDIF() - SET_TARGET_PROPERTIES(${target} PROPERTIES - COMPILE_FLAGS "${COMPILE_FLAGS} -fvisibility=hidden") + SET(VISIBILITY_HIDDEN_FLAG "-fvisibility=hidden") + ENDIF() + ENDIF() + + IF(CMAKE_C_COMPILER_ID MATCHES "SunPro") + SET(VISIBILITY_HIDDEN_FLAG "-xldscope=hidden") + ENDIF() + + IF(VISIBILITY_HIDDEN_FLAG) + GET_TARGET_PROPERTY(COMPILE_FLAGS ${target} COMPILE_FLAGS) + IF(NOT COMPILE_FLAGS) + # Avoid COMPILE_FLAGS-NOTFOUND + SET(COMPILE_FLAGS) ENDIF() + SET_TARGET_PROPERTIES(${target} PROPERTIES + COMPILE_FLAGS "${COMPILE_FLAGS} ${VISIBILITY_HIDDEN_FLAG}") ENDIF() + ENDMACRO() diff --git a/cmake/os/SunOS.cmake b/cmake/os/SunOS.cmake index 3d2b4b8949a..d5a4b5c96b0 100644 --- a/cmake/os/SunOS.cmake +++ b/cmake/os/SunOS.cmake @@ -93,3 +93,8 @@ IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_SIZEOF_VOID_P EQUAL 4 ENDIF() ENDIF() ENDIF() + +IF(CMAKE_CXX_COMPILER_ID MATCHES "SunPro") + # Unnamed structs and unions + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -features=extensions") +ENDIF() diff --git a/cmake/plugin.cmake b/cmake/plugin.cmake index a74802c2314..ac6ce6bc237 100644 --- a/cmake/plugin.cmake +++ b/cmake/plugin.cmake @@ -136,6 +136,7 @@ MACRO(MYSQL_ADD_PLUGIN) SET_TARGET_PROPERTIES(${target} PROPERTIES COMPILE_DEFINITONS "MYSQL_SERVER") DTRACE_INSTRUMENT(${target}) ADD_DEPENDENCIES(${target} GenError ${ARG_DEPENDENCIES}) + RESTRICT_SYMBOL_EXPORTS(${target}) IF(WITH_EMBEDDED_SERVER) # Embedded library should contain PIC code and be linkable # to shared libraries (on systems that need PIC) diff --git a/sql/opt_subselect.h b/sql/opt_subselect.h index c211fc67c84..7db346f68c1 100644 --- a/sql/opt_subselect.h +++ b/sql/opt_subselect.h @@ -279,7 +279,7 @@ public: }; -void advance_sj_state(JOIN *join, const table_map remaining_tables, uint idx, +extern void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx, double *current_record_count, double *current_read_time, POSITION *loose_scan_pos); void restore_prev_sj_state(const table_map remaining_tables, diff --git a/sql/sql_join_cache.h b/sql/sql_join_cache.h index c153689bb99..155dd64d7e0 100644 --- a/sql/sql_join_cache.h +++ b/sql/sql_join_cache.h @@ -550,7 +550,7 @@ public: BNL_JOIN_ALG, /* Block Nested Loop Join algorithm */ BNLH_JOIN_ALG, /* Block Nested Loop Hash Join algorithm */ BKA_JOIN_ALG, /* Batched Key Access Join algorithm */ - BKAH_JOIN_ALG, /* Batched Key Access with Hash Table Join Algorithm */ + BKAH_JOIN_ALG /* Batched Key Access with Hash Table Join Algorithm */ }; /* diff --git a/sql/sql_select.h b/sql/sql_select.h index 644828fa08c..46e7b7fe95f 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -1688,7 +1688,7 @@ void optimize_wo_join_buffering(JOIN *join, uint first_tab, uint last_tab, double *outer_rec_count, double *reopt_cost); Item_equal *find_item_equal(COND_EQUAL *cond_equal, Field *field, bool *inherited_fl); -bool test_if_ref(COND *root_cond, +extern bool test_if_ref(Item *, Item_field *left_item,Item *right_item); inline bool optimizer_flag(THD *thd, uint flag) diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt index 27047c816e6..04b5fd8d19d 100644 --- a/storage/innobase/CMakeLists.txt +++ b/storage/innobase/CMakeLists.txt @@ -254,8 +254,10 @@ ENDIF() # On solaris, reduce symbol visibility, so loader does not mix -# the same symbols from builtin innodb and from shared one -IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND CMAKE_COMPILER_IS_GNUCC) +# 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) diff --git a/storage/xtradb/buf/buf0buf.c b/storage/xtradb/buf/buf0buf.c index 7b228eaa11f..4bc2c26cde2 100644 --- a/storage/xtradb/buf/buf0buf.c +++ b/storage/xtradb/buf/buf0buf.c @@ -57,7 +57,7 @@ Created 11/5/1995 Heikki Tuuri /* prototypes for new functions added to ha_innodb.cc */ trx_t* innobase_get_trx(); -inline void _increment_page_get_statistics(buf_block_t* block, trx_t* trx) +static inline void _increment_page_get_statistics(buf_block_t* block, trx_t* trx) { ulint block_hash; ulint block_hash_byte; |