mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-03-27 13:45:07 +00:00
configure: Disable W^X on OpenBSD
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 Backports commit 7776ea6b49873ed18a2111e25ed8a6d94bd73db8 from qemu
This commit is contained in:
parent
9f2ce63414
commit
963beb216d
11
qemu/configure
vendored
11
qemu/configure
vendored
|
@ -1385,6 +1385,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
|
||||
wx_ldflags="-Wl,-z,wxneeded"
|
||||
if compile_prog "" "$wx_ldflags"; then
|
||||
QEMU_LDFLAGS="$QEMU_LDFLAGS $wx_ldflags"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Source path $source_path"
|
||||
echo "C compiler $cc"
|
||||
echo "Host C compiler $host_cc"
|
||||
|
|
Loading…
Reference in a new issue