Loading configure.ac +17 −4 Original line number Diff line number Diff line Loading @@ -1962,29 +1962,42 @@ AC_HELP_STRING([--disable-cookies],[Disable cookies support]), dnl ************************************************************ dnl Enable hiding of internal symbols in library to reduce its size and dnl speed dynamic linking of applications. This currently is only supported dnl on gcc >= 4.0 dnl on gcc >= 4.0 and SunPro C. dnl AC_MSG_CHECKING([whether to enable hidden symbols in the library]) AC_ARG_ENABLE(hidden-symbols, AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library (gcc>=4)]) AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library]) AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibility in library]), [ case "$enableval" in no) AC_MSG_RESULT(no) ;; *) if test "$GCC" = yes ; then AC_MSG_CHECKING([whether $CC supports it]) if test "$GCC" = yes ; then if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then AC_MSG_RESULT(yes) AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols]) AC_SUBST(CURL_HIDDEN_SYMBOLS) AC_DEFINE(CURL_EXTERN_SYMBOL, [__attribute__ ((visibility ("default")))], [to make a symbol visible]) AC_SUBST(CURL_EXTERN_SYMBOL) CFLAGS="$CFLAGS -fvisibility=hidden" else AC_MSG_RESULT(no) fi else AC_MSG_RESULT([no (not gcc)]) dnl Test for SunPro cc if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then AC_MSG_RESULT(yes) AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols]) AC_SUBST(CURL_HIDDEN_SYMBOLS) AC_DEFINE(CURL_EXTERN_SYMBOL, [__global], [to make a symbol visible]) AC_SUBST(CURL_EXTERN_SYMBOL) CFLAGS="$CFLAGS -xldscope=hidden" else AC_MSG_RESULT(no) fi fi ;; esac ], Loading include/curl/curl.h +5 −4 Original line number Diff line number Diff line Loading @@ -61,11 +61,12 @@ extern "C" { #ifdef CURL_HIDDEN_SYMBOLS /* * On gcc >= 4 if -fvisibility=hidden is given then this is used to cause * external definitions to be put into the shared library. It makes no * difference to applications whether this is set or not, only the library. * This definition is used to make external definitions visibile in the * shared library when symbols are hidden by default. It makes no * difference when compiling applications whether this is set or not, * only when compiling the library. */ #define CURL_EXTERN __attribute__ ((visibility ("default"))) #define CURL_EXTERN CURL_EXTERN_SYMBOL #else #define CURL_EXTERN #endif Loading Loading
configure.ac +17 −4 Original line number Diff line number Diff line Loading @@ -1962,29 +1962,42 @@ AC_HELP_STRING([--disable-cookies],[Disable cookies support]), dnl ************************************************************ dnl Enable hiding of internal symbols in library to reduce its size and dnl speed dynamic linking of applications. This currently is only supported dnl on gcc >= 4.0 dnl on gcc >= 4.0 and SunPro C. dnl AC_MSG_CHECKING([whether to enable hidden symbols in the library]) AC_ARG_ENABLE(hidden-symbols, AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library (gcc>=4)]) AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library]) AC_HELP_STRING([--disable-hidden-symbols],[Leave all symbols with default visibility in library]), [ case "$enableval" in no) AC_MSG_RESULT(no) ;; *) if test "$GCC" = yes ; then AC_MSG_CHECKING([whether $CC supports it]) if test "$GCC" = yes ; then if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then AC_MSG_RESULT(yes) AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols]) AC_SUBST(CURL_HIDDEN_SYMBOLS) AC_DEFINE(CURL_EXTERN_SYMBOL, [__attribute__ ((visibility ("default")))], [to make a symbol visible]) AC_SUBST(CURL_EXTERN_SYMBOL) CFLAGS="$CFLAGS -fvisibility=hidden" else AC_MSG_RESULT(no) fi else AC_MSG_RESULT([no (not gcc)]) dnl Test for SunPro cc if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then AC_MSG_RESULT(yes) AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols]) AC_SUBST(CURL_HIDDEN_SYMBOLS) AC_DEFINE(CURL_EXTERN_SYMBOL, [__global], [to make a symbol visible]) AC_SUBST(CURL_EXTERN_SYMBOL) CFLAGS="$CFLAGS -xldscope=hidden" else AC_MSG_RESULT(no) fi fi ;; esac ], Loading
include/curl/curl.h +5 −4 Original line number Diff line number Diff line Loading @@ -61,11 +61,12 @@ extern "C" { #ifdef CURL_HIDDEN_SYMBOLS /* * On gcc >= 4 if -fvisibility=hidden is given then this is used to cause * external definitions to be put into the shared library. It makes no * difference to applications whether this is set or not, only the library. * This definition is used to make external definitions visibile in the * shared library when symbols are hidden by default. It makes no * difference when compiling applications whether this is set or not, * only when compiling the library. */ #define CURL_EXTERN __attribute__ ((visibility ("default"))) #define CURL_EXTERN CURL_EXTERN_SYMBOL #else #define CURL_EXTERN #endif Loading