summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/lib/replace/libreplace.m49
-rw-r--r--source4/lib/replace/replace.h15
2 files changed, 22 insertions, 2 deletions
diff --git a/source4/lib/replace/libreplace.m4 b/source4/lib/replace/libreplace.m4
index cd9d171662..a734704ae8 100644
--- a/source4/lib/replace/libreplace.m4
+++ b/source4/lib/replace/libreplace.m4
@@ -81,6 +81,15 @@ AC_INCLUDES_DEFAULT
#endif]
)
+AC_CHECK_TYPE(_Bool,
+[AC_DEFINE(HAVE__Bool, 1, [Whether the _Bool type is available])],,
+[
+AC_INCLUDES_DEFAULT
+#ifdef HAVE_STDBOOL_H
+#include <stdbool.h>
+#endif]
+)
+
AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
AC_TRY_RUN([#include "$libreplacedir/test/shared_mmap.c"],
diff --git a/source4/lib/replace/replace.h b/source4/lib/replace/replace.h
index 3bf884c80c..88fec3f4d7 100644
--- a/source4/lib/replace/replace.h
+++ b/source4/lib/replace/replace.h
@@ -310,12 +310,23 @@ char *rep_mkdtemp(char *template);
#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
-#elif !defined(HAVE_BOOL)
+#endif
+
+#if !defined(HAVE_BOOL)
+#ifdef HAVE__Bool
+#define bool _Bool
+#else
#define __bool_true_false_are_defined
typedef int bool;
-#define false (0)
+#endif
+#endif
+
+#ifndef true
#define true (1)
#endif
+#ifndef false
+#define false (0)
+#endif
#ifndef HAVE_FUNCTION_MACRO
#ifdef HAVE_func_MACRO