From c9584096e033850c77c4c3d4ee99e8073f7b26da Mon Sep 17 00:00:00 2001 From: Martin Lucina Date: Thu, 25 Nov 2010 17:12:31 +0100 Subject: Control symbol exports using -fvisibility On systems using GCC 4.0 or newer which support symbol visibility in shared libraries, use -fvisibility=hidden and only export explict API functions defined in zmq.cpp. We do not enable -fvisibility on MinGW since this uses a separate mechanism (__declspec). Signed-off-by: Martin Lucina --- include/zmq.h | 8 ++++++++ include/zmq_utils.h | 6 ++++++ 2 files changed, 14 insertions(+) (limited to 'include') diff --git a/include/zmq.h b/include/zmq.h index c2efa07..7a63253 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -39,6 +39,9 @@ extern "C" { # endif #else # define ZMQ_EXPORT +# if defined __GNUC__ && __GNUC__ >= 4 +# pragma GCC visibility push(default) +# endif #endif /******************************************************************************/ @@ -242,6 +245,11 @@ ZMQ_EXPORT int zmq_poll (zmq_pollitem_t *items, int nitems, long timeout); ZMQ_EXPORT int zmq_device (int device, void * insocket, void* outsocket); +#undef ZMQ_EXPORT +#if defined __GNUC__ && __GNUC__ >= 4 && !defined _WIN32 +# pragma GCC visibility pop +#endif + #ifdef __cplusplus } #endif diff --git a/include/zmq_utils.h b/include/zmq_utils.h index 7d8d5fe..6d42bf9 100644 --- a/include/zmq_utils.h +++ b/include/zmq_utils.h @@ -33,6 +33,9 @@ extern "C" { # endif #else # define ZMQ_EXPORT +# if defined __GNUC__ && __GNUC__ >= 4 +# pragma GCC visibility push(default) +# endif #endif /* Helper functions are used by perf tests so that they don't have to care */ @@ -49,6 +52,9 @@ ZMQ_EXPORT unsigned long zmq_stopwatch_stop (void *watch_); ZMQ_EXPORT void zmq_sleep (int seconds_); #undef ZMQ_EXPORT +#if defined __GNUC__ && __GNUC__ >= 4 && !defined _WIN32 +# pragma GCC visibility pop +#endif #ifdef __cplusplus } -- cgit v1.2.3