On 11/22/2011 04:19 PM, Peter Maydell wrote:
- coroutine implementation doesn't cope if libc provides a makecontext() that returns ENOSYS (so we abort on startup)
I have a patch that replaces makecontext() with sigaltstack(), i.e. going from nice code that does not work to hideous code that works.
I had not submitted it yet because it does not help for OpenBSD so we would need anyway coroutine-gthread.c, and because I would like to test it more thoroughly on non-Linux hosts. If anyone can help with the testing, it is at git://github.com/bonzini/qemu.git branch coroutine-fix.
- the MAP_FIXED static codegen buffer is put at an address which overlaps the glibc heap so we crash about 50% of the time
For 1.1 we can just use USE_STATIC_CODE_GEN_BUFFER. It should not have major problems on Linux, since it is already tested for linux-user. That leaves out Windows of course.
Paolo