mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
build adjustments: CURL_HIDDEN_SYMBOLS no longer defined in config files
configure script now provides conditional definitions for Makefile.am that result in CURL_HIDDEN_SYMBOLS being defined by resulting makefiles when appropriate. Additionally, configure script option for symbol hiding control is now named --enable-symbol-hiding --disable-symbol-hiding. While still valid, old option name --enable-hidden-symbols --disable-hidden-symbols will be deprecated in some future release.
This commit is contained in:
parent
a144bb8b76
commit
9e24b9c7af
45
configure.ac
45
configure.ac
@ -44,6 +44,7 @@ CURL_CHECK_OPTION_OPTIMIZE
|
|||||||
CURL_CHECK_OPTION_WARNINGS
|
CURL_CHECK_OPTION_WARNINGS
|
||||||
CURL_CHECK_OPTION_WERROR
|
CURL_CHECK_OPTION_WERROR
|
||||||
CURL_CHECK_OPTION_CURLDEBUG
|
CURL_CHECK_OPTION_CURLDEBUG
|
||||||
|
CURL_CHECK_OPTION_SYMBOL_HIDING
|
||||||
CURL_CHECK_OPTION_ARES
|
CURL_CHECK_OPTION_ARES
|
||||||
|
|
||||||
CURL_CHECK_PATH_SEPARATOR_REQUIRED
|
CURL_CHECK_PATH_SEPARATOR_REQUIRED
|
||||||
@ -299,6 +300,7 @@ fi
|
|||||||
|
|
||||||
CURL_CHECK_COMPILER_HALT_ON_ERROR
|
CURL_CHECK_COMPILER_HALT_ON_ERROR
|
||||||
CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
|
CURL_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE
|
||||||
|
CURL_CHECK_COMPILER_SYMBOL_HIDING
|
||||||
|
|
||||||
CURL_CHECK_NO_UNDEFINED
|
CURL_CHECK_NO_UNDEFINED
|
||||||
AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)
|
AM_CONDITIONAL(NO_UNDEFINED, test x$need_no_undefined = xyes)
|
||||||
@ -3060,48 +3062,9 @@ AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
|
|||||||
)
|
)
|
||||||
|
|
||||||
dnl ************************************************************
|
dnl ************************************************************
|
||||||
dnl Enable hiding of internal symbols in library to reduce its size and
|
dnl hiding of library internal symbols
|
||||||
dnl speed dynamic linking of applications. This currently is only supported
|
|
||||||
dnl on gcc >= 4.0 and SunPro C.
|
|
||||||
dnl
|
dnl
|
||||||
AC_MSG_CHECKING([whether to enable hidden symbols in the library])
|
CURL_CONFIGURE_SYMBOL_HIDING
|
||||||
AC_ARG_ENABLE(hidden-symbols,
|
|
||||||
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)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
AC_MSG_CHECKING([whether $CC supports it])
|
|
||||||
if test "$GCC" = yes ; then
|
|
||||||
if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ||
|
|
||||||
dnl clang always supports -fvisibility= but it doesn't show up
|
|
||||||
dnl under --help.
|
|
||||||
test "$compiler_id" = "CLANG"; then
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(CURL_HIDDEN_SYMBOLS, 1, [to enable hidden symbols])
|
|
||||||
AC_DEFINE(CURL_EXTERN_SYMBOL, [__attribute__ ((visibility ("default")))], [to make a symbol visible])
|
|
||||||
CFLAGS="$CFLAGS -fvisibility=hidden"
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
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_DEFINE(CURL_EXTERN_SYMBOL, [__global], [to make a symbol visible])
|
|
||||||
CFLAGS="$CFLAGS -xldscope=hidden"
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac ],
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
)
|
|
||||||
|
|
||||||
dnl ************************************************************
|
dnl ************************************************************
|
||||||
dnl enforce SONAME bump
|
dnl enforce SONAME bump
|
||||||
|
@ -48,6 +48,8 @@ LIBCURL_LIBS = @LIBCURL_LIBS@
|
|||||||
# This might hold -Werror
|
# This might hold -Werror
|
||||||
CFLAGS += @CURL_CFLAG_EXTRAS@
|
CFLAGS += @CURL_CFLAG_EXTRAS@
|
||||||
|
|
||||||
|
CFLAG_SYMBOL_HIDING = @CFLAG_SYMBOL_HIDING@
|
||||||
|
|
||||||
# Specify our include paths here, and do it relative to $(top_srcdir) and
|
# Specify our include paths here, and do it relative to $(top_srcdir) and
|
||||||
# $(top_builddir), to ensure that these paths which belong to the library
|
# $(top_builddir), to ensure that these paths which belong to the library
|
||||||
# being currently built and tested are searched before the library which
|
# being currently built and tested are searched before the library which
|
||||||
@ -134,6 +136,14 @@ endif
|
|||||||
|
|
||||||
libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LIBCURL_LIBS)
|
libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LIBCURL_LIBS)
|
||||||
|
|
||||||
|
if DOING_SYMBOL_HIDING
|
||||||
|
libcurl_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_HIDDEN_SYMBOLS
|
||||||
|
libcurl_la_CFLAGS = $(AM_CFLAGS) $(CFLAG_SYMBOL_HIDING)
|
||||||
|
else
|
||||||
|
libcurl_la_CPPFLAGS = $(AM_CPPFLAGS)
|
||||||
|
libcurl_la_CFLAGS = $(AM_CFLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
# unit testing static library built only along with unit tests
|
# unit testing static library built only along with unit tests
|
||||||
if BUILD_UNITTESTS
|
if BUILD_UNITTESTS
|
||||||
noinst_LTLIBRARIES = libcurlu.la
|
noinst_LTLIBRARIES = libcurlu.la
|
||||||
@ -143,6 +153,7 @@ endif
|
|||||||
|
|
||||||
libcurlu_la_CPPFLAGS = $(AM_CPPFLAGS) -DUNITTESTS
|
libcurlu_la_CPPFLAGS = $(AM_CPPFLAGS) -DUNITTESTS
|
||||||
libcurlu_la_LDFLAGS = -static $(LIBCURL_LIBS)
|
libcurlu_la_LDFLAGS = -static $(LIBCURL_LIBS)
|
||||||
|
libcurlu_la_CFLAGS = $(AM_CFLAGS)
|
||||||
|
|
||||||
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
||||||
include Makefile.inc
|
include Makefile.inc
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
/* ================================================================ */
|
#ifndef HEADER_CURL_CONFIG_OS400_H
|
||||||
/* lib/config-os400.h - Hand crafted config file for OS/400 */
|
#define HEADER_CURL_CONFIG_OS400_H
|
||||||
/* ================================================================ */
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* _ _ ____ _
|
* _ _ ____ _
|
||||||
* Project ___| | | | _ \| |
|
* Project ___| | | | _ \| |
|
||||||
@ -8,7 +7,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@ -23,6 +22,10 @@
|
|||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* ================================================================ */
|
||||||
|
/* Hand crafted config file for OS/400 */
|
||||||
|
/* ================================================================ */
|
||||||
|
|
||||||
#pragma enum(int)
|
#pragma enum(int)
|
||||||
|
|
||||||
#undef PACKAGE
|
#undef PACKAGE
|
||||||
@ -434,10 +437,7 @@
|
|||||||
/* To disable LDAP */
|
/* To disable LDAP */
|
||||||
#undef CURL_DISABLE_LDAP
|
#undef CURL_DISABLE_LDAP
|
||||||
|
|
||||||
/* To avoid external use of library hidden symbols */
|
/* Definition to make a library symbol externally visible. */
|
||||||
#define CURL_HIDDEN_SYMBOLS
|
|
||||||
|
|
||||||
/* External symbols need no special keyword. */
|
|
||||||
#define CURL_EXTERN_SYMBOL
|
#define CURL_EXTERN_SYMBOL
|
||||||
|
|
||||||
/* Define if you have the ldap_url_parse procedure. */
|
/* Define if you have the ldap_url_parse procedure. */
|
||||||
@ -542,3 +542,4 @@
|
|||||||
#define qadrt_use_fread_inline /* Generate fread() wrapper inline. */
|
#define qadrt_use_fread_inline /* Generate fread() wrapper inline. */
|
||||||
#define qadrt_use_fwrite_inline /* Generate fwrite() wrapper inline. */
|
#define qadrt_use_fwrite_inline /* Generate fwrite() wrapper inline. */
|
||||||
|
|
||||||
|
#endif /* HEADER_CURL_CONFIG_OS400_H */
|
||||||
|
@ -65,11 +65,8 @@
|
|||||||
/* to disable verbose strings */
|
/* to disable verbose strings */
|
||||||
/* #define CURL_DISABLE_VERBOSE_STRINGS 1*/
|
/* #define CURL_DISABLE_VERBOSE_STRINGS 1*/
|
||||||
|
|
||||||
/* to make a symbol visible */
|
/* Definition to make a library symbol externally visible. */
|
||||||
/*#define CURL_EXTERN_SYMBOL __declspec(dllexport)*/
|
/* #undef CURL_EXTERN_SYMBOL */
|
||||||
|
|
||||||
/* to enable hidden symbols */
|
|
||||||
/*#define CURL_HIDDEN_SYMBOLS 1*/
|
|
||||||
|
|
||||||
/* Use Windows LDAP implementation */
|
/* Use Windows LDAP implementation */
|
||||||
/* #undef CURL_LDAP_WIN */
|
/* #undef CURL_LDAP_WIN */
|
||||||
|
@ -71,12 +71,9 @@
|
|||||||
/* to disable verbose strings */
|
/* to disable verbose strings */
|
||||||
/* #undef CURL_DISABLE_VERBOSE_STRINGS */
|
/* #undef CURL_DISABLE_VERBOSE_STRINGS */
|
||||||
|
|
||||||
/* to make a symbol visible */
|
/* Definition to make a library symbol externally visible. */
|
||||||
/* #undef CURL_EXTERN_SYMBOL */
|
/* #undef CURL_EXTERN_SYMBOL */
|
||||||
|
|
||||||
/* to enable hidden symbols */
|
|
||||||
/* #undef CURL_HIDDEN_SYMBOLS */
|
|
||||||
|
|
||||||
/* Use Windows LDAP implementation */
|
/* Use Windows LDAP implementation */
|
||||||
/* #undef CURL_LDAP_WIN */
|
/* #undef CURL_LDAP_WIN */
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* lib/curl_config.h.in. Generated from configure.ac by autoheader. */
|
/* lib/curl_config.h.in. Generated somehow by cmake. */
|
||||||
|
|
||||||
/* when building libcurl itself */
|
/* when building libcurl itself */
|
||||||
#cmakedefine BUILDING_LIBCURL ${BUILDING_LIBCURL}
|
#cmakedefine BUILDING_LIBCURL ${BUILDING_LIBCURL}
|
||||||
@ -52,9 +52,6 @@
|
|||||||
#define CURL_EXTERN_SYMBOL
|
#define CURL_EXTERN_SYMBOL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* to enable hidden symbols */
|
|
||||||
#cmakedefine CURL_HIDDEN_SYMBOLS ${CURL_HIDDEN_SYMBOLS}
|
|
||||||
|
|
||||||
/* Use Windows LDAP implementation */
|
/* Use Windows LDAP implementation */
|
||||||
#cmakedefine CURL_LDAP_WIN ${CURL_LDAP_WIN}
|
#cmakedefine CURL_LDAP_WIN ${CURL_LDAP_WIN}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# | (__| |_| | _ <| |___
|
# | (__| |_| | _ <| |___
|
||||||
# \___|\___/|_| \_\_____|
|
# \___|\___/|_| \_\_____|
|
||||||
#
|
#
|
||||||
# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
# Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
#
|
#
|
||||||
# This software is licensed as described in the file COPYING, which
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# you should have received as part of this distribution. The terms
|
||||||
@ -21,7 +21,7 @@
|
|||||||
#***************************************************************************
|
#***************************************************************************
|
||||||
|
|
||||||
# File version for 'aclocal' use. Keep it a single number.
|
# File version for 'aclocal' use. Keep it a single number.
|
||||||
# serial 58
|
# serial 59
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_CHECK_COMPILER
|
dnl CURL_CHECK_COMPILER
|
||||||
@ -1375,6 +1375,114 @@ AC_DEFUN([CURL_CHECK_COMPILER_STRUCT_MEMBER_SIZE], [
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl CURL_CHECK_COMPILER_SYMBOL_HIDING
|
||||||
|
dnl -------------------------------------------------
|
||||||
|
dnl Verify if compiler supports hiding library internal symbols, setting
|
||||||
|
dnl shell variable supports_symbol_hiding value as appropriate, as well as
|
||||||
|
dnl variables symbol_hiding_CFLAGS and symbol_hiding_EXTERN when supported.
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_CHECK_COMPILER_SYMBOL_HIDING], [
|
||||||
|
AC_REQUIRE([CURL_CHECK_COMPILER])dnl
|
||||||
|
AC_BEFORE([$0],[CURL_CONFIGURE_SYMBOL_HIDING])dnl
|
||||||
|
AC_MSG_CHECKING([if compiler supports hiding library internal symbols])
|
||||||
|
supports_symbol_hiding="no"
|
||||||
|
symbol_hiding_CFLAGS=""
|
||||||
|
symbol_hiding_EXTERN=""
|
||||||
|
tmp_CFLAGS=""
|
||||||
|
tmp_EXTERN=""
|
||||||
|
case "$compiler_id" in
|
||||||
|
CLANG)
|
||||||
|
dnl All versions of clang support -fvisibility=
|
||||||
|
tmp_EXTERN="__attribute__ ((visibility (\"default\")))"
|
||||||
|
tmp_CFLAGS="-fvisibility=hidden"
|
||||||
|
supports_symbol_hiding="yes"
|
||||||
|
;;
|
||||||
|
GNU_C)
|
||||||
|
dnl Only gcc 3.4 or later
|
||||||
|
if test "$compiler_num" -ge "304"; then
|
||||||
|
if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then
|
||||||
|
tmp_EXTERN="__attribute__ ((visibility (\"default\")))"
|
||||||
|
tmp_CFLAGS="-fvisibility=hidden"
|
||||||
|
supports_symbol_hiding="yes"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
INTEL_UNIX_C)
|
||||||
|
dnl Only icc 9.0 or later
|
||||||
|
if test "$compiler_num" -ge "900"; then
|
||||||
|
if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then
|
||||||
|
tmp_save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fvisibility=hidden"
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
# include <stdio.h>
|
||||||
|
]],[[
|
||||||
|
printf("icc fvisibility bug test");
|
||||||
|
]])
|
||||||
|
],[
|
||||||
|
tmp_EXTERN="__attribute__ ((visibility (\"default\")))"
|
||||||
|
tmp_CFLAGS="-fvisibility=hidden"
|
||||||
|
supports_symbol_hiding="yes"
|
||||||
|
])
|
||||||
|
CFLAGS="$tmp_save_CFLAGS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
SUNPRO_C)
|
||||||
|
if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then
|
||||||
|
tmp_EXTERN="__global"
|
||||||
|
tmp_CFLAGS="-xldscope=hidden"
|
||||||
|
supports_symbol_hiding="yes"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if test "$supports_symbol_hiding" = "yes"; then
|
||||||
|
tmp_save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS"
|
||||||
|
squeeze CFLAGS
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
$tmp_EXTERN char *dummy(char *buff);
|
||||||
|
char *dummy(char *buff)
|
||||||
|
{
|
||||||
|
if(buff)
|
||||||
|
return ++buff;
|
||||||
|
else
|
||||||
|
return buff;
|
||||||
|
}
|
||||||
|
]],[[
|
||||||
|
char b[16];
|
||||||
|
char *r = dummy(&b[0]);
|
||||||
|
if(r)
|
||||||
|
return (int)*r;
|
||||||
|
]])
|
||||||
|
],[
|
||||||
|
supports_symbol_hiding="yes"
|
||||||
|
if test -f conftest.err; then
|
||||||
|
grep 'visibility' conftest.err >/dev/null
|
||||||
|
if test "$?" -eq "0"; then
|
||||||
|
supports_symbol_hiding="no"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
],[
|
||||||
|
supports_symbol_hiding="no"
|
||||||
|
echo " " >&6
|
||||||
|
sed 's/^/cc-src: /' conftest.$ac_ext >&6
|
||||||
|
sed 's/^/cc-err: /' conftest.err >&6
|
||||||
|
echo " " >&6
|
||||||
|
])
|
||||||
|
CFLAGS="$tmp_save_CFLAGS"
|
||||||
|
fi
|
||||||
|
if test "$supports_symbol_hiding" = "yes"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
symbol_hiding_CFLAGS="$tmp_CFLAGS"
|
||||||
|
symbol_hiding_EXTERN="$tmp_EXTERN"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_VAR_MATCH (VARNAME, VALUE)
|
dnl CURL_VAR_MATCH (VARNAME, VALUE)
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
dnl Verifies if shell variable VARNAME contains VALUE.
|
dnl Verifies if shell variable VARNAME contains VALUE.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# | (__| |_| | _ <| |___
|
# | (__| |_| | _ <| |___
|
||||||
# \___|\___/|_| \_\_____|
|
# \___|\___/|_| \_\_____|
|
||||||
#
|
#
|
||||||
# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
# Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
#
|
#
|
||||||
# This software is licensed as described in the file COPYING, which
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# you should have received as part of this distribution. The terms
|
||||||
@ -21,7 +21,7 @@
|
|||||||
#***************************************************************************
|
#***************************************************************************
|
||||||
|
|
||||||
# File version for 'aclocal' use. Keep it a single number.
|
# File version for 'aclocal' use. Keep it a single number.
|
||||||
# serial 16
|
# serial 17
|
||||||
|
|
||||||
dnl CURL_CHECK_OPTION_THREADED_RESOLVER
|
dnl CURL_CHECK_OPTION_THREADED_RESOLVER
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
@ -258,6 +258,50 @@ AC_HELP_STRING([--disable-optimize],[Disable compiler optimizations]),
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl CURL_CHECK_OPTION_SYMBOL_HIDING
|
||||||
|
dnl -------------------------------------------------
|
||||||
|
dnl Verify if configure has been invoked with option
|
||||||
|
dnl --enable-symbol-hiding or --disable-symbol-hiding,
|
||||||
|
dnl setting shell variable want_symbol_hiding value.
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_CHECK_OPTION_SYMBOL_HIDING], [
|
||||||
|
AC_BEFORE([$0],[CURL_CHECK_COMPILER_SYMBOL_HIDING])dnl
|
||||||
|
AC_MSG_CHECKING([whether to enable hiding of library internal symbols])
|
||||||
|
OPT_SYMBOL_HIDING="default"
|
||||||
|
AC_ARG_ENABLE(symbol-hiding,
|
||||||
|
AC_HELP_STRING([--enable-symbol-hiding],[Enable hiding of library internal symbols])
|
||||||
|
AC_HELP_STRING([--disable-symbol-hiding],[Disable hiding of library internal symbols]),
|
||||||
|
OPT_SYMBOL_HIDING=$enableval)
|
||||||
|
AC_ARG_ENABLE(hidden-symbols,
|
||||||
|
AC_HELP_STRING([--enable-hidden-symbols],[To be deprecated, use --enable-symbol-hiding])
|
||||||
|
AC_HELP_STRING([--disable-hidden-symbols],[To be deprecated, use --disable-symbol-hiding]),
|
||||||
|
OPT_SYMBOL_HIDING=$enableval)
|
||||||
|
case "$OPT_SYMBOL_HIDING" in
|
||||||
|
no)
|
||||||
|
dnl --disable-symbol-hiding option used.
|
||||||
|
dnl This is an indication to not attempt hiding of library internal
|
||||||
|
dnl symbols. Default symbol visibility will be used, which normally
|
||||||
|
dnl exposes all library internal symbols.
|
||||||
|
want_symbol_hiding="no"
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
;;
|
||||||
|
default)
|
||||||
|
dnl configure's symbol-hiding option not specified.
|
||||||
|
dnl Handle this as if --enable-symbol-hiding option was given.
|
||||||
|
want_symbol_hiding="yes"
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
dnl --enable-symbol-hiding option used.
|
||||||
|
dnl This is an indication to attempt hiding of library internal
|
||||||
|
dnl symbols. This is only supported on some compilers/linkers.
|
||||||
|
want_symbol_hiding="yes"
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_CHECK_OPTION_THREADS
|
dnl CURL_CHECK_OPTION_THREADS
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
dnl Verify if configure has been invoked with option
|
dnl Verify if configure has been invoked with option
|
||||||
@ -411,6 +455,35 @@ AC_DEFUN([CURL_CHECK_NONBLOCKING_SOCKET], [
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl CURL_CONFIGURE_SYMBOL_HIDING
|
||||||
|
dnl -------------------------------------------------
|
||||||
|
dnl Depending on --enable-symbol-hiding or --disable-symbol-hiding
|
||||||
|
dnl configure option, and compiler capability to actually honor such
|
||||||
|
dnl option, this will modify compiler flags as appropriate and also
|
||||||
|
dnl provide needed definitions for configuration and Makefile.am files.
|
||||||
|
dnl This macro should not be used until all compilation tests have
|
||||||
|
dnl been done to prevent interferences on other tests.
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_CONFIGURE_SYMBOL_HIDING], [
|
||||||
|
AC_MSG_CHECKING([whether hiding of library internal symbols will actually happen])
|
||||||
|
CFLAG_SYMBOL_HIDING=""
|
||||||
|
doing_symbol_hiding="no"
|
||||||
|
if test x"$ac_cv_native_windows" != "xyes" &&
|
||||||
|
test "$want_symbol_hiding" = "yes" &&
|
||||||
|
test "$supports_symbol_hiding" = "yes"; then
|
||||||
|
doing_symbol_hiding="yes"
|
||||||
|
CFLAG_SYMBOL_HIDING="$symbol_hiding_CFLAGS"
|
||||||
|
AC_DEFINE_UNQUOTED(CURL_EXTERN_SYMBOL, $symbol_hiding_EXTERN,
|
||||||
|
[Definition to make a library symbol externally visible.])
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(DOING_SYMBOL_HIDING, test x$doing_symbol_hiding = xyes)
|
||||||
|
AC_SUBST(CFLAG_SYMBOL_HIDING)
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_CHECK_LIB_ARES
|
dnl CURL_CHECK_LIB_ARES
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
dnl When c-ares library support has been requested,
|
dnl When c-ares library support has been requested,
|
||||||
|
@ -53,6 +53,8 @@ endif
|
|||||||
EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl \
|
EXTRA_DIST = test75.pl test307.pl test610.pl test613.pl test1013.pl \
|
||||||
test1022.pl Makefile.inc
|
test1022.pl Makefile.inc
|
||||||
|
|
||||||
|
CFLAG_SYMBOL_HIDING = @CFLAG_SYMBOL_HIDING@
|
||||||
|
|
||||||
# Dependencies (may need to be overriden)
|
# Dependencies (may need to be overriden)
|
||||||
LDADD = $(top_builddir)/lib/libcurl.la @CURL_LIBS@
|
LDADD = $(top_builddir)/lib/libcurl.la @CURL_LIBS@
|
||||||
DEPENDENCIES = $(top_builddir)/lib/libcurl.la
|
DEPENDENCIES = $(top_builddir)/lib/libcurl.la
|
||||||
@ -86,3 +88,10 @@ libhostname_la_LIBADD =
|
|||||||
libhostname_la_DEPENDENCIES =
|
libhostname_la_DEPENDENCIES =
|
||||||
libhostname_la_LDFLAGS = -module -avoid-version $(UNDEF) -rpath /nowhere
|
libhostname_la_LDFLAGS = -module -avoid-version $(UNDEF) -rpath /nowhere
|
||||||
|
|
||||||
|
if DOING_SYMBOL_HIDING
|
||||||
|
libhostname_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_HIDDEN_SYMBOLS
|
||||||
|
libhostname_la_CFLAGS = $(AM_CFLAGS) $(CFLAG_SYMBOL_HIDING)
|
||||||
|
else
|
||||||
|
libhostname_la_CPPFLAGS = $(AM_CPPFLAGS)
|
||||||
|
libhostname_la_CFLAGS = $(AM_CFLAGS)
|
||||||
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user