diff options
author | Balint Reczey <balint@balintreczey.hu> | 2013-03-02 22:11:26 +0000 |
---|---|---|
committer | Balint Reczey <balint@balintreczey.hu> | 2013-03-02 22:11:26 +0000 |
commit | 73aafe2bc4db3f0d0d98107d2b2e861f1dcbc543 (patch) | |
tree | 42b11dbce47d723876cbadf46e045f52ce70991a | |
parent | 5c05c9e0e1fef7699646bd50cfab66b4ff451874 (diff) | |
download | wireshark-73aafe2bc4db3f0d0d98107d2b2e861f1dcbc543.tar.gz wireshark-73aafe2bc4db3f0d0d98107d2b2e861f1dcbc543.tar.bz2 wireshark-73aafe2bc4db3f0d0d98107d2b2e861f1dcbc543.zip |
Make Solaris Studio hide internal shared library symbols by default
svn path=/trunk/; revision=48020
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | ws_symbol_export.h | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d00a66be27..3cdce2ad81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/configure.ac b/configure.ac index 2d8d9f2465..344737308f 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/ws_symbol_export.h b/ws_symbol_export.h index ac9b973053..d85efba188 100644 --- a/ws_symbol_export.h +++ b/ws_symbol_export.h @@ -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)) |