Message ID | 20190307142822.8531-1-philmd@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | OpenBSD: Let QEMU 4.0 be usable from OpenBSD 6.0 and onwards | expand |
On 07/03/2019 15.28, Philippe Mathieu-Daudé wrote: > Since OpenBSD 6.0 [1], W^X is enforced by default [2]. > TCG requires WX access. Disable W^X if it is available. > This fixes: > > # lm32-softmmu/qemu-system-lm32 > Could not allocate dynamic translator buffer > > # sysctl kern.wxabort=1 > kern.wxabort: 0 -> 1 > # lm32-softmmu/qemu-system-lm32 > mmap: Not supported > Abort trap (core dumped) > # gdb -q lm32-softmmu/qemu-system-lm32 qemu-system-lm32.core > (gdb) bt > #0 0x000017e3c156c50a in _thread_sys___syscall () at {standard input}:5 > #1 0x000017e3c15e5d7a in *_libc_mmap (addr=Variable "addr" is not available.) at /usr/src/lib/libc/sys/mmap.c:47 > #2 0x000017e17d9abc8b in alloc_code_gen_buffer () at /usr/src/qemu/accel/tcg/translate-all.c:1064 > #3 0x000017e17d9abd04 in code_gen_alloc (tb_size=0) at /usr/src/qemu/accel/tcg/translate-all.c:1112 > #4 0x000017e17d9abe81 in tcg_exec_init (tb_size=0) at /usr/src/qemu/accel/tcg/translate-all.c:1149 > #5 0x000017e17d9897e9 in tcg_init (ms=0x17e45e456800) at /usr/src/qemu/accel/tcg/tcg-all.c:66 > #6 0x000017e17d9891b8 in accel_init_machine (acc=0x17e3c3f50800, ms=0x17e45e456800) at /usr/src/qemu/accel/accel.c:63 > #7 0x000017e17d989312 in configure_accelerator (ms=0x17e45e456800, progname=0x7f7fffff07b0 "lm32-softmmu/qemu-system-lm32") at /usr/src/qemu/accel/accel.c:111 > #8 0x000017e17d9d8616 in main (argc=1, argv=0x7f7fffff06b8, envp=0x7f7fffff06c8) at vl.c:4325 > > [1] https://www.openbsd.org/faq/upgrade60.html > [2] https://undeadly.org/cgi?action=article&sid=20160527203200 > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > configure | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/configure b/configure > index cefeb8fcce..abfd60923a 100755 > --- a/configure > +++ b/configure > @@ -5835,6 +5835,17 @@ if test "$mingw32" = "yes" ; then > done > fi > > +# Disable OpenBSD W^X if available > +if test "$tcg" = "yes" && test "$targetos" = "OpenBSD"; then > + cat > $TMPC <<EOF > + int main(void) { return 0; } > +EOF You can use write_c_skeleton for this instead. Thomas
On Thu, Mar 07, 2019 at 03:28:20PM +0100, Philippe Mathieu-Daudé wrote: > Since OpenBSD 6.0, the W^X protection is enforced by default. > TCG is incompatible with this protection, to be able to use the > QEMU binary, this protection has to be disabled. > The OpenBSD ports seens to have downstream patches to be able to > use QEMU, but these patches were never upstreamed. > This series allow to run QEMU when built from the mainstream sources. > > I salvaged the minimum patches required to be able to run OpenBSD > from a previous series, which aimed at running the QEMU QTest suite > on OpenBSD. Sadly it seems there is not much interest in having this > OS covered by tests (except by Peter Maydell). What were the blocking issues with getting the test fixes accepted in previous postings ? Was it simply no one interested in reviewing it or actual review problems ? With our increased interest in CI & push to drop build targets which are not actively maintained, I'd question whether OpenBSD (or any build target in the same situation) should continue to be supported if the test suite hasn't worked for several releases in a row & not enough people are willing to contribute to fix it. Regards, Daniel
On 3/7/19 3:57 PM, Daniel P. Berrangé wrote: > On Thu, Mar 07, 2019 at 03:28:20PM +0100, Philippe Mathieu-Daudé wrote: >> Since OpenBSD 6.0, the W^X protection is enforced by default. >> TCG is incompatible with this protection, to be able to use the >> QEMU binary, this protection has to be disabled. >> The OpenBSD ports seens to have downstream patches to be able to >> use QEMU, but these patches were never upstreamed. >> This series allow to run QEMU when built from the mainstream sources. >> >> I salvaged the minimum patches required to be able to run OpenBSD >> from a previous series, which aimed at running the QEMU QTest suite >> on OpenBSD. Sadly it seems there is not much interest in having this >> OS covered by tests (except by Peter Maydell). > > What were the blocking issues with getting the test fixes accepted in > previous postings ? Was it simply no one interested in reviewing it > or actual review problems ? > > With our increased interest in CI & push to drop build targets which > are not actively maintained, I'd question whether OpenBSD (or any > build target in the same situation) should continue to be supported > if the test suite hasn't worked for several releases in a row & not > enough people are willing to contribute to fix it. It is true nobody complained about this OS since the 6.0 release on Sep 1, 2016, more than 2 years ago. Looking at the mailing archive, Peter is the only one reporting build failures since.
On 07/03/19 15:28, Philippe Mathieu-Daudé wrote: > Since OpenBSD 6.0, the W^X protection is enforced by default. > TCG is incompatible with this protection, to be able to use the > QEMU binary, this protection has to be disabled. > The OpenBSD ports seens to have downstream patches to be able to > use QEMU, but these patches were never upstreamed. > This series allow to run QEMU when built from the mainstream sources. > > I salvaged the minimum patches required to be able to run OpenBSD > from a previous series, which aimed at running the QEMU QTest suite > on OpenBSD. Sadly it seems there is not much interest in having this > OS covered by tests (except by Peter Maydell). > > v2: https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg07513.html > v1: https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg06676.html > > Philippe Mathieu-Daudé (2): > oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure > configure: Disable W^X on OpenBSD > > configure | 11 +++++++++++ > util/oslib-posix.c | 12 ++++++++++++ > 2 files changed, 23 insertions(+) > Queued, thanks. Paolo