diff options
4 files changed, 6 insertions, 138 deletions
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 \ | |||
| 16 | SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de" | 16 | SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de" |
| 17 | SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82" | 17 | SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82" |
| 18 | 18 | ||
| 19 | COMPATIBLE_HOST_libc-musl = "null" | ||
| 19 | EXTRA_OEMAKE = "" | 20 | EXTRA_OEMAKE = "" |
| 20 | export WVLINK="${LD}" | 21 | export WVLINK="${LD}" |
| 21 | 22 | ||
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 @@ | |||
| 1 | From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Thu, 20 Jul 2017 21:05:37 -0700 | ||
| 4 | Subject: [PATCH 2/5] wvtask: Dont use ucontext on non-glibc systems | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 7 | --- | ||
| 8 | utils/wvtask.cc | 24 ++++++++++++++++++++++++ | ||
| 9 | 1 file changed, 24 insertions(+) | ||
| 10 | |||
| 11 | diff --git a/utils/wvtask.cc b/utils/wvtask.cc | ||
| 12 | index cdcd544..c0bff7d 100644 | ||
| 13 | --- a/utils/wvtask.cc | ||
| 14 | +++ b/utils/wvtask.cc | ||
| 15 | @@ -199,7 +199,9 @@ WvTaskMan::WvTaskMan() | ||
| 16 | stacktop = (char *)alloca(0); | ||
| 17 | |||
| 18 | context_return = 0; | ||
| 19 | +#ifdef __GLIBC__ | ||
| 20 | assert(getcontext(&get_stack_return) == 0); | ||
| 21 | +#endif | ||
| 22 | if (context_return == 0) | ||
| 23 | { | ||
| 24 | // initial setup - start the stackmaster() task (never returns!) | ||
| 25 | @@ -265,13 +267,17 @@ int WvTaskMan::run(WvTask &task, int val) | ||
| 26 | state = &old_task->mystate; | ||
| 27 | |||
| 28 | context_return = 0; | ||
| 29 | +#ifdef __GLIBC__ | ||
| 30 | assert(getcontext(state) == 0); | ||
| 31 | +#endif | ||
| 32 | int newval = context_return; | ||
| 33 | if (newval == 0) | ||
| 34 | { | ||
| 35 | // saved the state, now run the task. | ||
| 36 | context_return = val; | ||
| 37 | +#ifdef __GLIBC__ | ||
| 38 | setcontext(&task.mystate); | ||
| 39 | +#endif | ||
| 40 | return -1; | ||
| 41 | } | ||
| 42 | else | ||
| 43 | @@ -319,13 +325,17 @@ int WvTaskMan::yield(int val) | ||
| 44 | #endif | ||
| 45 | |||
| 46 | context_return = 0; | ||
| 47 | +#ifdef __GLIBC__ | ||
| 48 | assert(getcontext(¤t_task->mystate) == 0); | ||
| 49 | +#endif | ||
| 50 | int newval = context_return; | ||
| 51 | if (newval == 0) | ||
| 52 | { | ||
| 53 | // saved the task state; now yield to the toplevel. | ||
| 54 | context_return = val; | ||
| 55 | +#ifdef __GLIBC__ | ||
| 56 | setcontext(&toplevel); | ||
| 57 | +#endif | ||
| 58 | return -1; | ||
| 59 | } | ||
| 60 | else | ||
| 61 | @@ -341,7 +351,9 @@ int WvTaskMan::yield(int val) | ||
| 62 | void WvTaskMan::get_stack(WvTask &task, size_t size) | ||
| 63 | { | ||
| 64 | context_return = 0; | ||
| 65 | +#ifdef __GLIBC__ | ||
| 66 | assert(getcontext(&get_stack_return) == 0); | ||
| 67 | +#endif | ||
| 68 | if (context_return == 0) | ||
| 69 | { | ||
| 70 | assert(magic_number == -WVTASK_MAGIC); | ||
| 71 | @@ -371,7 +383,9 @@ void WvTaskMan::get_stack(WvTask &task, size_t size) | ||
| 72 | // initial setup | ||
| 73 | stack_target = &task; | ||
| 74 | context_return = size/1024 + (size%1024 > 0); | ||
| 75 | +#ifdef __GLIBC__ | ||
| 76 | setcontext(&stackmaster_task); | ||
| 77 | +#endif | ||
| 78 | } | ||
| 79 | else | ||
| 80 | { | ||
| 81 | @@ -409,7 +423,9 @@ void WvTaskMan::_stackmaster() | ||
| 82 | assert(magic_number == -WVTASK_MAGIC); | ||
| 83 | |||
| 84 | context_return = 0; | ||
| 85 | +#ifdef __GLIBC__ | ||
| 86 | assert(getcontext(&stackmaster_task) == 0); | ||
| 87 | +#endif | ||
| 88 | val = context_return; | ||
| 89 | if (val == 0) | ||
| 90 | { | ||
| 91 | @@ -419,7 +435,9 @@ void WvTaskMan::_stackmaster() | ||
| 92 | // all current stack allocations) and go back to get_stack | ||
| 93 | // (or the constructor, if that's what called us) | ||
| 94 | context_return = 1; | ||
| 95 | +#ifdef __GLIBC__ | ||
| 96 | setcontext(&get_stack_return); | ||
| 97 | +#endif | ||
| 98 | } | ||
| 99 | else | ||
| 100 | { | ||
| 101 | @@ -474,7 +492,9 @@ void WvTaskMan::do_task() | ||
| 102 | |||
| 103 | // back here from longjmp; someone wants stack space. | ||
| 104 | context_return = 0; | ||
| 105 | +#ifdef __GLIBC__ | ||
| 106 | assert(getcontext(&task->mystate) == 0); | ||
| 107 | +#endif | ||
| 108 | if (context_return == 0) | ||
| 109 | { | ||
| 110 | // done the setjmp; that means the target task now has | ||
| 111 | @@ -510,7 +530,9 @@ void WvTaskMan::do_task() | ||
| 112 | } | ||
| 113 | else | ||
| 114 | { | ||
| 115 | +#ifdef __GLIBC__ | ||
| 116 | assert(getcontext(&task->func_call) == 0); | ||
| 117 | +#endif | ||
| 118 | task->func_call.uc_stack.ss_size = task->stacksize; | ||
| 119 | task->func_call.uc_stack.ss_sp = task->stack; | ||
| 120 | task->func_call.uc_stack.ss_flags = 0; | ||
| 121 | @@ -521,9 +543,11 @@ void WvTaskMan::do_task() | ||
| 122 | (void (*)(void))call_func, 1, task); | ||
| 123 | |||
| 124 | context_return = 0; | ||
| 125 | +#ifdef __GLIBC__ | ||
| 126 | assert(getcontext(&task->func_return) == 0); | ||
| 127 | if (context_return == 0) | ||
| 128 | setcontext(&task->func_call); | ||
| 129 | +#endif | ||
| 130 | } | ||
| 131 | |||
| 132 | // the task's function terminated. | ||
| 133 | -- | ||
| 134 | 2.13.3 | ||
| 135 | |||
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 \ | |||
| 15 | file://gcc-6.patch \ | 15 | file://gcc-6.patch \ |
| 16 | file://argp.patch \ | 16 | file://argp.patch \ |
| 17 | file://0001-Check-for-limits.h-during-configure.patch \ | 17 | file://0001-Check-for-limits.h-during-configure.patch \ |
| 18 | file://0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch \ | ||
| 19 | file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \ | 18 | file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \ |
| 20 | file://0004-wvcrash-Replace-use-of-basename-API.patch \ | 19 | file://0004-wvcrash-Replace-use-of-basename-API.patch \ |
| 21 | file://0005-check-for-libexecinfo-during-configure.patch \ | 20 | file://0005-check-for-libexecinfo-during-configure.patch \ |
| @@ -28,6 +27,8 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \ | |||
| 28 | SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c" | 27 | SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c" |
| 29 | SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633" | 28 | SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633" |
| 30 | 29 | ||
| 30 | COMPATIBLE_HOST_libc-musl = "null" | ||
| 31 | |||
| 31 | inherit autotools-brokensep pkgconfig | 32 | inherit autotools-brokensep pkgconfig |
| 32 | 33 | ||
| 33 | TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls" | 34 | 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 ="\ | |||
| 66 | modemmanager mosh \ | 66 | modemmanager mosh \ |
| 67 | paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \ | 67 | paho-mqtt-c phonet-utils rabbitmq-c rfkill rtorrent \ |
| 68 | ser2net smstools3 telepathy-glib telepathy-idle thrift \ | 68 | ser2net smstools3 telepathy-glib telepathy-idle thrift \ |
| 69 | usbmuxd wvstreams zabbix zeromq \ | 69 | usbmuxd zabbix zeromq \ |
| 70 | ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \ | 70 | ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \ |
| 71 | libmikmod \ | 71 | libmikmod \ |
| 72 | obexftp openobex libnet wvdial \ | 72 | obexftp openobex libnet \ |
| 73 | " | 73 | " |
| 74 | RDEPENDS_packagegroup-meta-oe-connectivity_append_libc-glibc = " wvstreams wvdial" | ||
| 74 | 75 | ||
| 75 | # dracut needs dracut | 76 | # dracut needs dracut |
| 76 | RDEPENDS_packagegroup-meta-oe-core ="\ | 77 | RDEPENDS_packagegroup-meta-oe-core ="\ |
