wvstreams,wvdial: Mark incompatible for musl

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@gmail.com>
This commit is contained in:
Khem Raj
2019-10-11 18:45:59 -07:00
parent 1bfaa2e63a
commit bf7670ff2e
4 changed files with 6 additions and 138 deletions
@@ -16,6 +16,7 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.bz2 \
SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de" SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de"
SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82" SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82"
COMPATIBLE_HOST_libc-musl = "null"
EXTRA_OEMAKE = "" EXTRA_OEMAKE = ""
export WVLINK="${LD}" export WVLINK="${LD}"
@@ -1,135 +0,0 @@
From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@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@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
@@ -15,7 +15,6 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
file://gcc-6.patch \ file://gcc-6.patch \
file://argp.patch \ file://argp.patch \
file://0001-Check-for-limits.h-during-configure.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://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \
file://0004-wvcrash-Replace-use-of-basename-API.patch \ file://0004-wvcrash-Replace-use-of-basename-API.patch \
file://0005-check-for-libexecinfo-during-configure.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[md5sum] = "2760dac31a43d452a19a3147bfde571c"
SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633" SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633"
COMPATIBLE_HOST_libc-musl = "null"
inherit autotools-brokensep pkgconfig inherit autotools-brokensep pkgconfig
TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls" TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls"
@@ -66,11 +66,12 @@ RDEPENDS_packagegroup-meta-oe-connectivity ="\
modemmanager mosh \ modemmanager mosh \
paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \ paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \
ser2net smstools3 telepathy-glib telepathy-idle thrift \ ser2net smstools3 telepathy-glib telepathy-idle thrift \
usbmuxd wvstreams zabbix zeromq \ usbmuxd zabbix zeromq \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \
libmikmod \ libmikmod \
obexftp openobex libnet wvdial \ obexftp openobex libnet \
" "
RDEPENDS_packagegroup-meta-oe-connectivity_append_libc-glibc = " wvstreams wvdial"
# dracut needs dracut # dracut needs dracut
RDEPENDS_packagegroup-meta-oe-core ="\ RDEPENDS_packagegroup-meta-oe-core ="\