wvstreams needs porting work to get it fully functional on musl, wvdial
depends on it so that needs to be disabled as well for musl.

Add it to meta-oe packagegroup only when using glibc

Signed-off-by: Khem Raj <[email protected]>
---
 .../wvdial/wvdial_1.61.bb                     |   1 +
 ...nt-use-ucontext-on-non-glibc-systems.patch | 135 ------------------
 .../wvdial/wvstreams_4.6.1.bb                 |   3 +-
 .../packagegroups/packagegroup-meta-oe.bb     |   5 +-
 4 files changed, 6 insertions(+), 138 deletions(-)
 delete mode 100644 
meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch

diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb 
b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
index 36580952f1..b985d39abf 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
+++ b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
@@ -16,6 +16,7 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.bz2 \
 SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de"
 SRC_URI[sha256sum] = 
"99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82"
 
+COMPATIBLE_HOST_libc-musl = "null"
 EXTRA_OEMAKE = ""
 export WVLINK="${LD}"
 
diff --git 
a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
 
b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
deleted file mode 100644
index 232db9e63b..0000000000
--- 
a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001
-From: Khem Raj <[email protected]>
-Date: Thu, 20 Jul 2017 21:05:37 -0700
-Subject: [PATCH 2/5] wvtask: Dont use ucontext on non-glibc systems
-
-Signed-off-by: Khem Raj <[email protected]>
----
- utils/wvtask.cc | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/utils/wvtask.cc b/utils/wvtask.cc
-index cdcd544..c0bff7d 100644
---- a/utils/wvtask.cc
-+++ b/utils/wvtask.cc
-@@ -199,7 +199,9 @@ WvTaskMan::WvTaskMan()
-     stacktop = (char *)alloca(0);
-     
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&get_stack_return) == 0);
-+#endif
-     if (context_return == 0)
-     {
-       // initial setup - start the stackmaster() task (never returns!)
-@@ -265,13 +267,17 @@ int WvTaskMan::run(WvTask &task, int val)
-       state = &old_task->mystate;
-     
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(state) == 0);
-+#endif
-     int newval = context_return;
-     if (newval == 0)
-     {
-       // saved the state, now run the task.
-         context_return = val;
-+#ifdef __GLIBC__
-         setcontext(&task.mystate);
-+#endif
-         return -1;
-     }
-     else
-@@ -319,13 +325,17 @@ int WvTaskMan::yield(int val)
- #endif
-               
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&current_task->mystate) == 0);
-+#endif
-     int newval = context_return;
-     if (newval == 0)
-     {
-       // saved the task state; now yield to the toplevel.
-         context_return = val;
-+#ifdef __GLIBC__
-         setcontext(&toplevel);
-+#endif
-         return -1;
-     }
-     else
-@@ -341,7 +351,9 @@ int WvTaskMan::yield(int val)
- void WvTaskMan::get_stack(WvTask &task, size_t size)
- {
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&get_stack_return) == 0);
-+#endif
-     if (context_return == 0)
-     {
-       assert(magic_number == -WVTASK_MAGIC);
-@@ -371,7 +383,9 @@ void WvTaskMan::get_stack(WvTask &task, size_t size)
-       // initial setup
-       stack_target = &task;
-       context_return = size/1024 + (size%1024 > 0);
-+#ifdef __GLIBC__
-       setcontext(&stackmaster_task);
-+#endif
-     }
-     else
-     {
-@@ -409,7 +423,9 @@ void WvTaskMan::_stackmaster()
-       assert(magic_number == -WVTASK_MAGIC);
-       
-         context_return = 0;
-+#ifdef __GLIBC__
-         assert(getcontext(&stackmaster_task) == 0);
-+#endif
-         val = context_return;
-       if (val == 0)
-       {
-@@ -419,7 +435,9 @@ void WvTaskMan::_stackmaster()
-           // all current stack allocations) and go back to get_stack
-           // (or the constructor, if that's what called us)
-             context_return = 1;
-+#ifdef __GLIBC__
-             setcontext(&get_stack_return);
-+#endif
-       }
-       else
-       {
-@@ -474,7 +492,9 @@ void WvTaskMan::do_task()
-       
-     // back here from longjmp; someone wants stack space.    
-     context_return = 0;
-+#ifdef __GLIBC__
-     assert(getcontext(&task->mystate) == 0);
-+#endif
-     if (context_return == 0)
-     {
-       // done the setjmp; that means the target task now has
-@@ -510,7 +530,9 @@ void WvTaskMan::do_task()
-                 }
-                 else
-                 {
-+#ifdef __GLIBC__
-                     assert(getcontext(&task->func_call) == 0);
-+#endif
-                     task->func_call.uc_stack.ss_size = task->stacksize;
-                     task->func_call.uc_stack.ss_sp = task->stack;
-                     task->func_call.uc_stack.ss_flags = 0;
-@@ -521,9 +543,11 @@ void WvTaskMan::do_task()
-                             (void (*)(void))call_func, 1, task);
- 
-                     context_return = 0;
-+#ifdef __GLIBC__
-                     assert(getcontext(&task->func_return) == 0);
-                     if (context_return == 0)
-                         setcontext(&task->func_call);
-+#endif
-                 }
-               
-               // the task's function terminated.
--- 
-2.13.3
-
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb 
b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
index b9f62da7b5..b220f9c1bc 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
@@ -15,7 +15,6 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
            file://gcc-6.patch \
            file://argp.patch \
            file://0001-Check-for-limits.h-during-configure.patch \
-           file://0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch \
            
file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \
            file://0004-wvcrash-Replace-use-of-basename-API.patch \
            file://0005-check-for-libexecinfo-during-configure.patch \
@@ -28,6 +27,8 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
 SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c"
 SRC_URI[sha256sum] = 
"8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633"
 
+COMPATIBLE_HOST_libc-musl = "null"
+
 inherit autotools-brokensep pkgconfig
 
 TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls"
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb 
b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index 5bb0beb7a3..1f0a7b9470 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -66,11 +66,12 @@ RDEPENDS_packagegroup-meta-oe-connectivity ="\
     modemmanager mosh  \
     paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \
     ser2net smstools3 telepathy-glib telepathy-idle thrift \
-    usbmuxd wvstreams zabbix zeromq \
+    usbmuxd zabbix zeromq \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} 
\
     libmikmod \
-    obexftp openobex libnet wvdial \
+    obexftp openobex libnet \
     "
+RDEPENDS_packagegroup-meta-oe-connectivity_append_libc-glibc = " wvstreams 
wvdial"
 
 # dracut needs dracut
 RDEPENDS_packagegroup-meta-oe-core ="\
-- 
2.23.0

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to