[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [libmicrohttpd] branch master updated: replace tsearch test
From: |
gnunet |
Subject: |
[GNUnet-SVN] [libmicrohttpd] branch master updated: replace tsearch test with code from gnulib, to hopefully address silviprog's android problems |
Date: |
Thu, 16 Feb 2017 11:20:52 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository libmicrohttpd.
The following commit(s) were added to refs/heads/master by this push:
new 82d65c48 replace tsearch test with code from gnulib, to hopefully
address silviprog's android problems
82d65c48 is described below
commit 82d65c48edbccca45bd6851879aa69c629a024b7
Author: Christian Grothoff <address@hidden>
AuthorDate: Thu Feb 16 11:20:50 2017 +0100
replace tsearch test with code from gnulib, to hopefully address
silviprog's android problems
---
ChangeLog | 3 +++
configure.ac | 8 +++++---
m4/search_h.m4 | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
m4/tsearch.m4 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 127 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1d61f64a..7b876ad2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+Thu Feb 16 11:20:05 CET 2017
+ Replace tsearch configure check with code from gnulib. -CG
+
Wed Feb 15 13:35:36 CET 2017
Fixing a few very rare race conditions for thread-pool or
thread-per-connection operations during shutdown.
diff --git a/configure.ac b/configure.ac
index 22a91aaf..5f26a61b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
# This file is part of libmicrohttpd.
-# (C) 2006-2015 Christian Grothoff (and other contributing authors)
+# (C) 2006-2017 Christian Grothoff (and other contributing authors)
#
# libmicrohttpd is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
@@ -695,12 +695,14 @@ fi
AC_CHECK_HEADERS([fcntl.h math.h errno.h limits.h stdio.h locale.h sys/stat.h
sys/types.h], [], [AC_MSG_ERROR([Compiling libmicrohttpd requires standard UNIX
headers files])], [AC_INCLUDES_DEFAULT])
# Check for optional headers
-AC_CHECK_HEADERS([sys/types.h sys/time.h sys/msg.h time.h sys/mman.h search.h
sys/ioctl.h \
+AC_CHECK_HEADERS([sys/types.h sys/time.h sys/msg.h time.h sys/mman.h
sys/ioctl.h \
sys/socket.h sys/select.h netdb.h netinet/in.h netinet/ip.h netinet/tcp.h
arpa/inet.h \
endian.h machine/endian.h sys/endian.h sys/param.h sys/machine.h
sys/byteorder.h machine/param.h sys/isa_defs.h \
inttypes.h stddef.h unistd.h \
sockLib.h inetLib.h net/if.h], [], [], [AC_INCLUDES_DEFAULT])
-AM_CONDITIONAL([HAVE_TSEARCH], [test "x$ac_cv_header_search_h" = "xyes"])
+
+gl_FUNC_TSEARCH
+AM_CONDITIONAL([HAVE_TSEARCH], [test "x$HAVE_TSEARCH" = "x1"])
# Check for generic functions
AC_CHECK_FUNCS([rand random])
diff --git a/m4/search_h.m4 b/m4/search_h.m4
new file mode 100644
index 00000000..6aaaf36e
--- /dev/null
+++ b/m4/search_h.m4
@@ -0,0 +1,60 @@
+# search_h.m4 serial 9
+dnl Copyright (C) 2007-2017 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_SEARCH_H],
+[
+ AC_REQUIRE([gl_SEARCH_H_DEFAULTS])
+ gl_CHECK_NEXT_HEADERS([search.h])
+ if test $ac_cv_header_search_h = yes; then
+ HAVE_SEARCH_H=1
+ else
+ HAVE_SEARCH_H=0
+ fi
+ AC_SUBST([HAVE_SEARCH_H])
+
+ if test $HAVE_SEARCH_H = 1; then
+ AC_CACHE_CHECK([for type VISIT], [gl_cv_type_VISIT],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#if HAVE_SEARCH_H
+ #include <search.h>
+ #endif
+ ]],
+ [[static VISIT x; x = postorder;]])],
+ [gl_cv_type_VISIT=yes],
+ [gl_cv_type_VISIT=no])])
+ else
+ gl_cv_type_VISIT=no
+ fi
+ if test $gl_cv_type_VISIT = yes; then
+ HAVE_TYPE_VISIT=1
+ else
+ HAVE_TYPE_VISIT=0
+ fi
+ AC_SUBST([HAVE_TYPE_VISIT])
+
+ dnl Check for declarations of anything we want to poison if the
+ dnl corresponding gnulib module is not in use.
+ gl_WARN_ON_USE_PREPARE([[#include <search.h>
+ ]], [tdelete tfind tsearch twalk])
+])
+
+AC_DEFUN([gl_SEARCH_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_SEARCH_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SEARCH_H_DEFAULTS],
+[
+ GNULIB_TSEARCH=0; AC_SUBST([GNULIB_TSEARCH])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_TSEARCH=1; AC_SUBST([HAVE_TSEARCH])
+ REPLACE_TSEARCH=0; AC_SUBST([REPLACE_TSEARCH])
+])
diff --git a/m4/tsearch.m4 b/m4/tsearch.m4
new file mode 100644
index 00000000..24b35ce2
--- /dev/null
+++ b/m4/tsearch.m4
@@ -0,0 +1,59 @@
+# tsearch.m4 serial 6
+dnl Copyright (C) 2006-2017 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_TSEARCH],
+[
+ AC_REQUIRE([gl_SEARCH_H_DEFAULTS])
+ AC_CHECK_FUNCS([tsearch])
+ if test $ac_cv_func_tsearch = yes; then
+ dnl On OpenBSD 4.0, the return value of tdelete() is incorrect.
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether tdelete works], [gl_cv_func_tdelete_works],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stddef.h>
+#include <search.h>
+static int
+cmp_fn (const void *a, const void *b)
+{
+ return *(const int *) a - *(const int *) b;
+}
+int
+main ()
+{
+ int result = 0;
+ int x = 0;
+ void *root = NULL;
+ if (!(tfind (&x, &root, cmp_fn) == NULL))
+ result |= 1;
+ tsearch (&x, &root, cmp_fn);
+ if (!(tfind (&x, &root, cmp_fn) != NULL))
+ result |= 2;
+ if (!(tdelete (&x, &root, cmp_fn) != NULL))
+ result |= 4;
+ return result;
+}]])], [gl_cv_func_tdelete_works=yes], [gl_cv_func_tdelete_works=no],
+ [case "$host_os" in
+ openbsd*) gl_cv_func_tdelete_works="guessing no";;
+ *) gl_cv_func_tdelete_works="guessing yes";;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_tdelete_works" in
+ *no)
+ REPLACE_TSEARCH=1
+ ;;
+ esac
+ else
+ HAVE_TSEARCH=0
+ fi
+])
+
+# Prerequisites of lib/tsearch.c.
+AC_DEFUN([gl_PREREQ_TSEARCH], [
+ :
+])
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [libmicrohttpd] branch master updated: replace tsearch test with code from gnulib, to hopefully address silviprog's android problems,
gnunet <=