diff mbox series

[oe,meta-networking] netperf: Fix build error on musl

Message ID 20180927041743.2769-2-raj.khem@gmail.com
State Accepted
Commit 148eba8c691efc68cbf9b305eb3873cbe222a214
Headers show
Series [oe,meta-networking] netperf: Fix build error on musl | expand

Commit Message

Khem Raj Sept. 27, 2018, 4:17 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 ...ve-including-sched.h-out-og-function.patch | 50 +++++++++++++++++++
 .../recipes-support/netperf/netperf_git.bb    | 10 ++--
 2 files changed, 56 insertions(+), 4 deletions(-)
 create mode 100644 meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch

-- 
2.19.0

-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel
diff mbox series

Patch

diff --git a/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch b/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch
new file mode 100644
index 0000000000..515737c8e5
--- /dev/null
+++ b/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch
@@ -0,0 +1,50 @@ 
+From 51a092ebb36dcc6180ceb93a9777258e826d9990 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Sep 2018 18:11:10 -0700
+Subject: [PATCH] netlib.c: Move including sched.h out og function
+
+The shutdown_control() has this code where system headers are being
+included inside function body and this results in compile errors on musl
+especially when sched.h is included because sched.h defines a macro
+which defines a static function. This means it ends up being a static
+function inside another function and compiler calls it out
+
+In function 'bind_to_specific_processor':
+|
+/mnt/a/yoe/build/tmp/work/i586-yoe-linux-musl/netperf/2.7.0+git999-r0/recipe-sysroot/usr/include/sched.h:102:1:
+error: invalid storage class for function '__CPU_AND_S'
+|  __CPU_op_func_S(AND, &)
+|  ^~~~~~~~~~~~~~~
+
+Moving the definition out of function definition fixes the problem
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/netlib.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/netlib.c b/src/netlib.c
+index 9258424..60b032d 100644
+--- a/src/netlib.c
++++ b/src/netlib.c
+@@ -2262,6 +2262,10 @@ shutdown_control()
+ 
+ }
+ 
++#if HAVE_SCHED_SETAFFINITY
++#include <sched.h>
++#endif
++
+ /*
+   bind_to_specific_processor will bind the calling process to the
+   processor in "processor"  It has lots of ugly ifdefs to deal with
+@@ -2308,7 +2312,6 @@ bind_to_specific_processor(int processor_affinity, int use_cpu_map)
+      value will not tell you if you are bound vs unbound. */
+   bindprocessor(BINDPROCESS,getpid(),(cpu_t)mapped_affinity);
+ #elif HAVE_SCHED_SETAFFINITY
+-#include <sched.h>
+   /* in theory this should cover systems with more CPUs than bits in a
+      long, without having to specify __USE_GNU.  we "cheat" by taking
+      defines from /usr/include/bits/sched.h, which we ass-u-me is
diff --git a/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-networking/recipes-support/netperf/netperf_git.bb
index f0e0f9cf1f..8921ea7460 100644
--- a/meta-networking/recipes-support/netperf/netperf_git.bb
+++ b/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -8,10 +8,12 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6"
 
 PV = "2.7.0+git${SRCPV}"
 
-SRC_URI="git://github.com/HewlettPackard/netperf.git \
-         file://cpu_set.patch \
-         file://vfork.patch \
-         file://init"
+SRC_URI = "git://github.com/HewlettPackard/netperf.git \
+           file://cpu_set.patch \
+           file://vfork.patch \
+           file://init \
+           file://0001-netlib.c-Move-including-sched.h-out-og-function.patch \
+           "
 
 SRCREV = "f482bab49fcedee46fc5b755da127f608325cd13"