summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/libutils.cmake25
-rw-r--r--cmake/os/SunOS.cmake5
-rw-r--r--cmake/plugin.cmake1
-rw-r--r--sql/opt_subselect.h2
-rw-r--r--sql/sql_join_cache.h2
-rw-r--r--sql/sql_select.h2
-rw-r--r--storage/innobase/CMakeLists.txt6
-rw-r--r--storage/xtradb/buf/buf0buf.c2
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;