[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
Fix released in upstream QEMU 1.1. ** Changed in: qemu Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: Fix Released Status in Linaro QEMU: Fix Released Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
** Changed in: qemu-linaro Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: Fix Committed Status in Linaro QEMU: Fix Released Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
...and I think that backporting would be a bug against some other package, not qemu, so we can close this bug. ** Changed in: qemu-linaro Status: In Progress => Fix Committed ** Changed in: qemu Status: New => Fix Committed -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: Fix Committed Status in Linaro QEMU: Fix Committed Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
http://comments.gmane.org/gmane.comp.lib.glibc.ports/1325 -- Michael's version of the makecontext patches has been committed to glibc-ports and should be available in glibc 2.16. Upstream qemu (and thus qemu-linaro) now have a version of the configure check which tests for __stub_makecontext, so qemu will just automatically pick up the makecontext implementation when compiled against a glibc which supports it. So I think the only remaining thing is to decide whether Linaro and/or Ubuntu want to backport this. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: Fix Committed Status in Linaro QEMU: Fix Committed Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
Michael Hope pointed out that glibc defines a macro __stub_makecontext when the makecontext() implementation is a stub, so we can just add this to the qemu configure test to make it automatically fall back to the pthreads version as required. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: In Progress Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
David Gilbert's post to upstream eglibc, and a reply from Joseph Myers with some review comments: http://comments.gmane.org/gmane.comp.lib.glibc.ports/1187 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: In Progress Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
Plan: (a) get makecontext added to eglibc (b) see if upstream eglibc are open to the idea of some sort of #define for MAKECONTEXT_ACTUALLY_IMPLEMENTED_NOW so we can detect it at compile time (c) otherwise, work around in qemu (probably by adding another layer of indirection) -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: In Progress Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
Consider putting this in 2.15 as well. Talk with Matthias re: getting it into Ubuntu Precise either through a 2.13 backport or as part of a 2.15 update. ** Changed in: qemu-linaro Assignee: (unassigned) => Ken Werner (kwerner) -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: In Progress Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
Removing Dave as he's done most of the work but can't complete it. ** Changed in: qemu-linaro Importance: Undecided => Medium ** Changed in: qemu-linaro Assignee: Dr. David Alan Gilbert (davidgil-uk) => (unassigned) -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: In Progress Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
** Changed in: qemu-linaro Status: New => In Progress -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: In Progress Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
OK, here is a eglibc patch that adds the context routines; seems to pass Stefan's magic coroutine test, pass all the context specific tests in eglibc and boots a debian image on qemu. (Not run a full eglibc test run yet). Dave ** Attachment added: "eglibc patch for ARM context routines" https://bugs.launchpad.net/qemu-linaro/+bug/883136/+attachment/2644972/+files/context-diff-v0.3 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: New Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
Re: [Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
On Wed, Dec 21, 2011 at 5:42 PM, Dr. David Alan Gilbert <883...@bugs.launchpad.net> wrote: > Attached is a 1st cut of a makecontext/setcontext/getcontext/swapcontext set > for ARM - not ready to go into libc yet; > currently it builds standalone and links (and passes) with a test of mine. > Next stop libc and a lot of cleanup. Excellent. There is a stand-alone QEMU coroutine test which you can build with "make test-coroutine". Stefan
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
Attached is a 1st cut of a makecontext/setcontext/getcontext/swapcontext set for ARM - not ready to go into libc yet; currently it builds standalone and links (and passes) with a test of mine. Next stop libc and a lot of cleanup. ** Changed in: qemu-linaro Assignee: (unassigned) => Dr. David Alan Gilbert (davidgil-uk) ** Attachment added: "Start of a set of context routines" https://bugs.launchpad.net/qemu-linaro/+bug/883136/+attachment/2642884/+files/allcontext.S -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: New Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions
[Qemu-devel] [Bug 883136] Re: qemu on ARM hosts aborts on startup because makecontext() always fails
** Also affects: qemu Importance: Undecided Status: New -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/883136 Title: qemu on ARM hosts aborts on startup because makecontext() always fails Status in QEMU: New Status in Linaro QEMU: New Bug description: qemu has recently grown a coroutines implementation. There are two versions, one using the makecontext/setcontext/swapcontext functions from ucontext.h, and one falling back to implementing coroutines as separate glib threads. configure chooses the former if the platform has a makecontext(). Unfortunately ARM eglibc provides a makecontext() which always fails ENOSYS, which means the configure check passes but when qemu starts it abort()s. The best fix for this is probably going to involve making the coroutine implementation runtime-selectable. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/883136/+subscriptions