From 6df092a4153c6c37cfaddcabf2cd25a910a7f6e1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Sep 2019 15:40:52 -0700
Subject: [PATCH] Detect bool definition considering stdbool.h being present

This helps in defining the value correctly on different platforms e.g.
clang/libc++ depends on the definition coming from stdbool.h
current builds fail to compile therefore

TMPDIR/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/iperf2/2.0.13-r0/recipe-sysroot/usr/include/c++/v1/type_traits:742:29: error: redefinition of '__libcpp_is_integral<int>'
template <>          struct __libcpp_is_integral<int>                : public true_type {};
                            ^~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 m4/dast.m4 | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/m4/dast.m4
+++ b/m4/dast.m4
@@ -11,7 +11,12 @@ AH_TEMPLATE([false])
 
 AC_DEFUN(DAST_CHECK_BOOL, [
 
-AC_CHECK_SIZEOF(bool)
+if test "$ac_cv_header_stdbool_h" = yes; then
+  AC_CHECK_SIZEOF(bool,,[#include <stdbool.h>])
+else
+  AC_CHECK_SIZEOF(bool)
+fi
+
 if test "$ac_cv_sizeof_bool" = 0 ; then
   AC_DEFINE(bool, int)
 fi
--- a/configure.ac
+++ b/configure.ac
@@ -113,7 +113,7 @@ AC_SEARCH_LIBS([socket], [socket], [],
 
 dnl Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS([arpa/inet.h libintl.h net/ethernet.h net/if.h linux/ip.h linux/udp.h linux/if_packet.h linux/filter.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/socket.h sys/time.h syslog.h unistd.h signal.h ifaddrs.h])
+AC_CHECK_HEADERS([arpa/inet.h libintl.h net/ethernet.h net/if.h linux/ip.h linux/udp.h linux/if_packet.h linux/filter.h netdb.h netinet/in.h stdbool.h stdlib.h string.h strings.h sys/socket.h sys/time.h syslog.h unistd.h signal.h ifaddrs.h])
 
 dnl ===================================================================
 dnl Checks for typedefs, structures
--- a/include/util.h
+++ b/include/util.h
@@ -56,7 +56,9 @@
 #ifdef HAVE_CONFIG_H
     #include "config.h"
 #endif
-
+#ifdef HAVE_STDBOOL_H
+# include <stdbool.h>
+#endif
 #ifdef __cplusplus
 extern "C" {
 #endif
