Make Solaris Studio hide internal shared library symbols by default

svn path=/trunk/; revision=48020
This commit is contained in:
Balint Reczey 2013-03-02 22:11:26 +00:00
parent 5c05c9e0e1
commit 73aafe2bc4
3 changed files with 12 additions and 5 deletions

View File

@ -218,8 +218,13 @@ check_c_compiler_flag(-fvisibility=hidden FVHIDDEN)
if((FVHIDDEN))
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
else() # TODO add alternate compiler flags for hiding symbols
message(WARNING "Hiding shared library symbols is not supported by the compiler."
check_c_compiler_flag(-xldscope=hidden FVHIDDEN)
if((FVHIDDEN))
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
else()
message(WARNING "Hiding shared library symbols is not supported by the compiler."
" All shared library symbols will be exported.")
endif()
endif()
if(NOT DISABLE_WERROR AND NOT ENABLE_EXTRA_GCC_CHECKS)

View File

@ -521,10 +521,12 @@ fi
CFLAGS_before_fvhidden=$CFLAGS
AC_WIRESHARK_GCC_CFLAGS_CHECK(-fvisibility=hidden)
if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
then
if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden" ; then
AC_WIRESHARK_GCC_CFLAGS_CHECK(-xldscope=hidden)
# TODO add other ways of hiding symbols
AC_MSG_WARN(Compiler will export all symbols from shared libraries)
if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden" ; then
AC_MSG_WARN(Compiler will export all symbols from shared libraries)
fi
fi
AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])

View File

@ -24,7 +24,7 @@
#define SYMBOL_EXPORT_H
/* Originally copied from GCC Wiki at http://gcc.gnu.org/wiki/Visibility */
#if defined _WIN32 || defined __CYGWIN__
#if defined _WIN32 || defined __CYGWIN__ || defined __SUNPRO_C || defined__SUNPRO_CC
#ifdef WS_BUILD_DLL
#ifdef __GNUC__
#define WS_DLL_PUBLIC __attribute__ ((dllexport))