iperf2: Fix build with latest libc++

Part of this patch was already there for gcc6 fix which was subsequenty
dropped in past iperf2 upgrades therefore
bring it back see 0647b7d640

Additionally check for stdbool.h being present on system

helps in fixing  build with latest clang/libc++

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2019-09-02 15:46:42 -07:00
parent 4d7124c763
commit 285b3fbf37
2 changed files with 61 additions and 1 deletions

View File

@ -0,0 +1,58 @@
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

View File

@ -4,7 +4,9 @@ SECTION = "console/network"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=e136a7b2560d80bcbf0d9b3e1356ecff"
SRC_URI = " ${SOURCEFORGE_MIRROR}/${BPN}/iperf-${PV}.tar.gz"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/iperf-${PV}.tar.gz \
file://0001-Detect-bool-definition-considering-stdbool.h-being-p.patch \
"
SRC_URI[md5sum] = "31ea1c6d5cbf80b16ff3abe4288dad5e"
SRC_URI[sha256sum] = "c88adec966096a81136dda91b4bd19c27aae06df4d45a7f547a8e50d723778ad"