libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 802d1322f21e7468ce4c7ba0c0c63a6c24fb059f
parent 25e72ff2bf795e13d778594f22a323231199978d
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  8 Nov 2012 21:35:38 +0000

Ship its own version of tsearch and friends if not provided by platform.

On GNU based systems the tree related functions (tsearch, tfind, tdestroy)
are provided by the libc (with the interface specification in search.h). On
non-GNU systems this functionality may or may not be available. That's the
case for Android which ships its own, simplified, version of libc called
Bionic. Bionic does not contains neither search.h nor an implementation of
the above mentioned functions.

This patch adds detection for the presence of search.h and if the header file
is not found, it uses an internal version of search.h and functions tsearch,
tfind, and tdestroy. The internal version is based on the source code from
FreeBSD and is compiled if and only if the configure script did not find the
search.h header file.
 -- Jan Janak


Diffstat:
MAUTHORS | 1+
MChangeLog | 4++++
Mconfigure.ac | 2++
3 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/AUTHORS b/AUTHORS @@ -38,6 +38,7 @@ LRN <lrn1986@gmail.com> Sven Geggus <sts@fuchsschwanzdomain.de> Steve Wolf <stevewolf6@gmail.com> Brecht Sanders <brecht@sanders.org> +Jan Janak <jan@janakj.org> Documentation contributions also came from: Marco Maggi <marco.maggi-ipsu@poste.it> diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,7 @@ +Thu Nov 8 22:32:59 CET 2012 + Ship our own version of tsearch and friends if not provided by platform, + so that MHD works nicely on Android. -JJ + Mon Oct 22 13:05:01 CEST 2012 Immediately do a second read if we get a full buffer from TLS as there might be more data in the TLS buffers even if diff --git a/configure.ac b/configure.ac @@ -184,6 +184,8 @@ AC_CHECK_HEADERS([fcntl.h math.h errno.h limits.h stdio.h locale.h sys/stat.h sy # Check for optional headers AC_CHECK_HEADERS([sys/types.h sys/time.h sys/msg.h netdb.h netinet/in.h netinet/tcp.h time.h sys/socket.h sys/mman.h arpa/inet.h sys/select.h poll.h winsock2.h ws2tcpip.h]) +AC_CHECK_HEADERS([search.h], AM_CONDITIONAL(HAVE_TSEARCH, true), AM_CONDITIONAL(HAVE_TSEARCH, false)) + # Check for plibc.h from system, if not found, use our own AC_CHECK_HEADERS([plibc.h],our_private_plibc_h=0,our_private_plibc_h=1) AM_CONDITIONAL(USE_PRIVATE_PLIBC_H, test x$our_private_plibc_h = x1)