[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libmicrohttpd] 08/12: configure: used more reliable test for -fvisibili
From: |
gnunet |
Subject: |
[libmicrohttpd] 08/12: configure: used more reliable test for -fvisibility |
Date: |
Sun, 03 Apr 2022 19:20:01 +0200 |
This is an automated email from the git hooks/post-receive script.
karlson2k pushed a commit to branch master
in repository libmicrohttpd.
commit 54fa890e5b30a6cf586460dd319a0e474a1731f0
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Fri Apr 1 15:31:30 2022 +0300
configure: used more reliable test for -fvisibility
---
configure.ac | 49 +++++++++++++++++++++++++++++++++++--------------
1 file changed, 35 insertions(+), 14 deletions(-)
diff --git a/configure.ac b/configure.ac
index 2a92bbe0..fe59ff49 100644
--- a/configure.ac
+++ b/configure.ac
@@ -323,6 +323,7 @@ AX_CHECK_COMPILE_FLAG([[-Werror=attributes]],
CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
],
[[errattr_CFLAGS=""]], [], [])
+
AC_MSG_CHECKING([[for function inline keywords supported by $CC]])
CFLAGS="${CFLAGS_ac} ${user_CFLAGS} $errattr_CFLAGS"
inln_prfx="none"
@@ -1968,20 +1969,40 @@ MHD_CHECK_FUNC([[usleep]], [[#include <unistd.h>]],
[[usleep(100000);]])
MHD_CHECK_FUNC([[nanosleep]], [[#include <time.h>]], [[struct timespec ts2,
ts1 = {0, 0}; nanosleep(&ts1, &ts2);]])
HIDDEN_VISIBILITY_CFLAGS=""
-AS_CASE(["$host"],
- [*-*-mingw*],[
- dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
- AC_DEFINE([_MHD_EXTERN], [__attribute__((visibility("default")))
__declspec(dllexport) extern],
- [defines how to decorate public symbols while building])
- HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
- ],[
- dnl on other compilers, check if we can do -fvisibility=hidden
- AX_CHECK_LINK_FLAG([-fvisibility=hidden],
- [AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],
- [AC_DEFINE([_MHD_EXTERN],
[__attribute__((visibility("default"))) extern],
- [defines how to decorate public symbols
while building])
- HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"])])
- ])
+AH_TEMPLATE([_MHD_EXTERN],[defines how to decorate public symbols w][hile
building the library])
+CFLAGS="${user_CFLAGS}"
+MHD_CHECK_CC_FLAG([-fvisibility=hidden],[CFLAGS_ac],
+ [
+ # NOTE: require setting of errattr_CFLAGS above
+ CFLAGS="${CFLAGS_ac} -fvisibility=hidden ${user_CFLAGS} ${errattr_CFLAGS}"
+ AC_CACHE_CHECK([whether $CC supports
__attribute__((visibility("default")))],[mhd_cv_cc_attr_visibility],
+ [
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+extern __attribute__((visibility("default"))) int test_extrn_func(void);
+
+int test_extrn_func(void) {return 0;}
+ ]])
+ ],
+ [mhd_cv_cc_attr_visibility="yes"],[mhd_cv_cc_attr_visibility="no"]
+ )
+ ]
+ )
+ AS_VAR_IF([mhd_cv_cc_attr_visibility],["yes"],
+ [
+ HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
+ AS_IF([test "x$os_is_native_w32" = "xyes" && test "x$enable_shared" =
"xyes"],
+ [AC_DEFINE([_MHD_EXTERN], [__attribute__((visibility("default")))
__declspec(dllexport) extern])],
+ [AC_DEFINE([_MHD_EXTERN], [__attribute__((visibility("default")))
extern])]
+ )
+ ],
+ [
+ AC_MSG_WARN([$CC supports -fvisibility, but does not support
__attribute__((visibility("default"))). Check compiler and compiler flags.])
+ AC_DEFINE([_MHD_EXTERN], [extern])
+ ]
+ )
+ ],[AC_DEFINE([_MHD_EXTERN], [extern])]
+)
+CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
AC_SUBST([HIDDEN_VISIBILITY_CFLAGS])
# libcurl (required for testing)
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [libmicrohttpd] branch master updated (c310c029 -> 15e2a3a2), gnunet, 2022/04/03
- [libmicrohttpd] 03/12: configure: modified z/OS settings, gnunet, 2022/04/03
- [libmicrohttpd] 01/12: configure: added "auto-optional" value for sanitizers parameter, gnunet, 2022/04/03
- [libmicrohttpd] 04/12: mhd_norm_expd.m4: added autoconf helper macro, gnunet, 2022/04/03
- [libmicrohttpd] 02/12: configure: moved initialisation block, gnunet, 2022/04/03
- [libmicrohttpd] 05/12: mhd_check_func.m4: fixed macro, gnunet, 2022/04/03
- [libmicrohttpd] 07/12: Added autoconf macro for checking compiler parameters/flags, gnunet, 2022/04/03
- [libmicrohttpd] 10/12: configure: added final reporting for *FLAGS, gnunet, 2022/04/03
- [libmicrohttpd] 08/12: configure: used more reliable test for -fvisibility,
gnunet <=
- [libmicrohttpd] 09/12: Moved libtool-specific flags to Makefile, gnunet, 2022/04/03
- [libmicrohttpd] 11/12: Added two helper macros to manipulate *FLAGS vars, gnunet, 2022/04/03
- [libmicrohttpd] 12/12: configure: netter format reporting for *FLAGS, gnunet, 2022/04/03
- [libmicrohttpd] 06/12: configure: added workaround for problematic formating tools, gnunet, 2022/04/03