diff options
author | Vladislav Vaintroub <wlad@montyprogram.com> | 2012-02-03 11:46:40 +0100 |
---|---|---|
committer | Vladislav Vaintroub <wlad@montyprogram.com> | 2012-02-03 11:46:40 +0100 |
commit | 24e7faa54f72465d57407015ad760cb4a3ad8156 (patch) | |
tree | edb295de86e4154a630da8a71f71e5f95a6ccbbe /cmake/libutils.cmake | |
parent | 15f20663dbc9de85f5aee1ce753619bc4a9aed52 (diff) | |
download | mariadb-git-24e7faa54f72465d57407015ad760cb4a3ad8156.tar.gz |
Various fixes for Solaris compiler.
Also, restrict symbol visibility in statically
built plugins, to minimize the chance for symbol
name clashes with dynamic plugins.
Diffstat (limited to 'cmake/libutils.cmake')
-rw-r--r-- | cmake/libutils.cmake | 25 |
1 files changed, 18 insertions, 7 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() |