瀏覽代碼

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 0647b7d6400b1c40fc6cb40596e56b852ceb85c5

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>
Khem Raj 4 年之前
父節點
當前提交
285b3fbf37

+ 58 - 0
meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch

@@ -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

+ 3 - 1
meta-oe/recipes-benchmark/iperf2/iperf2_2.0.13.bb

@@ -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"