From acbaee34bcb1881db97969dd2c411446f32ca4cc Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sat, 25 Oct 2014 19:45:33 +0200
Subject: [PATCH 3/5] Fix debug mode build with uClibc

When --enable-debug is passed, liblog4c-localtime wants to use
<mcheck.h>. It takes the precaution of testing if __GLIBC__ is
defined. But unfortunately, the uClibc C library pretends to be
compatible with glibc by defining __GLIBC__, but it doesn't provide
mcheck.h.

To better support this situation, we add an AC_CHECK_HEADERS() check
on mcheck.h, and then use HAVE_MCHECK_H were appropriate.

Submitted upstream: https://github.com/rcmadruga/log4c-localtime/pull/1

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 configure.in     | 2 +-
 src/log4c/init.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure.in b/configure.in
index 612ccbe..dbf11e9 100644
--- a/configure.in
+++ b/configure.in
@@ -115,7 +115,7 @@ AM_CONDITIONAL(TEST, test x$enable_test = xyes)
 AC_HEADER_STDC
 AC_CHECK_HEADERS([fcntl.h inttypes.h langinfo.h limits.h stddef.h stdint.h \
 stdlib.h string.h sys/time.h syslog.h unistd.h stdarg.h varargs.h getopt.h \
-pthread.h])
+pthread.h mcheck.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
diff --git a/src/log4c/init.c b/src/log4c/init.c
index 7dd9eb4..4b88210 100644
--- a/src/log4c/init.c
+++ b/src/log4c/init.c
@@ -35,7 +35,7 @@ static const char version[] = "$Id$";
 #include <layout_type_basic_r.h>
 #include <layout_type_dated_r.h>
 
-#if defined(__LOG4C_DEBUG__) && defined(__GLIBC__)
+#if defined(__LOG4C_DEBUG__) && defined(HAVE_MCHECK_H)
 #include <mcheck.h>
 #endif
 
@@ -100,7 +100,7 @@ extern int log4c_init(void)
     sd_debug("log4c_init[");
   
     /* activate GLIBC allocation debugging */
-#if defined(__LOG4C_DEBUG__) && defined(__GLIBC__)
+#if defined(__LOG4C_DEBUG__) && defined(HAVE_MCHECK_H)
     mtrace();
 #endif
   
@@ -280,7 +280,7 @@ extern int log4c_fini(void)
 	log4c_dump_all_instances(stderr);
     }
 #endif
-#if defined(__LOG4C_DEBUG__) && defined(__GLIBC__)
+#if defined(__LOG4C_DEBUG__) && defined(HAVE_MCHECK_H)
     muntrace();
 #endif
   
-- 
2.0.0

