From 802d1322f21e7468ce4c7ba0c0c63a6c24fb059f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 8 Nov 2012 21:35:38 +0000 Subject: 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 --- AUTHORS | 1 + ChangeLog | 4 ++++ configure.ac | 2 ++ 3 files changed, 7 insertions(+) diff --git a/AUTHORS b/AUTHORS index 789de081..9c7fe895 100644 --- a/AUTHORS +++ b/AUTHORS @@ -38,6 +38,7 @@ LRN Sven Geggus Steve Wolf Brecht Sanders +Jan Janak Documentation contributions also came from: Marco Maggi diff --git a/ChangeLog b/ChangeLog index f512a23c..9691024a 100644 --- 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 index 5f8a71b2..1b21321c 100644 --- 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) -- cgit v1.2.3