[oe] [meta-oe][PATCH] wvstreams, wvdial: Mark incompatible for musl

Khem Raj raj.khem at gmail.com
Sat Oct 12 06:01:38 UTC 2019


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 <raj.khem at gmail.com>
---
 .../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 <raj.khem at gmail.com>
-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 <raj.khem at gmail.com>
----
- 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



More information about the Openembedded-devel mailing list