Skip to content
  • Philippe Mathieu-Daudé's avatar
    7776ea6b
    configure: Disable W^X on OpenBSD · 7776ea6b
    Philippe Mathieu-Daudé authored
    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: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Message-Id: <20190307142822.8531-3-philmd@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    7776ea6b
    configure: Disable W^X on OpenBSD
    Philippe Mathieu-Daudé authored
    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: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Message-Id: <20190307142822.8531-3-philmd@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading