[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] configure: Disable W^X on OpenBSD
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] configure: Disable W^X on OpenBSD |
Date: |
Mon, 28 Jan 2019 11:53:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 1/28/19 9:43 AM, Thomas Huth wrote:
> On 2019-01-25 20:27, 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é <address@hidden>
>> ---
>> configure | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/configure b/configure
>> index b18281c61f..f6acc028a7 100755
>> --- a/configure
>> +++ b/configure
>> @@ -5795,6 +5795,17 @@ if test "$mingw32" = "yes" ; then
>> done
>> fi
>>
>> +# Disable W^X if available
>
> I'd like to suggest to mention OpenBSD in the comment.
Good idea.
>> +if test "$tcg" = "yes" -a "$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 -Wl,-z,wxneeded"
>
> Why do you introduce the wx_ldflags variable above, just to use it one
> time? I'd suggest to either use it in the QEMU_LDFLAGS line, too, or to
> get rid of the variable completely and always use -Wl,-z,wxneeded directly.
I did not notice :) I'll remove the variable to avoid creating variables
used once.
Thanks!
Phil.
>
> Thomas
>
>> + fi
>> +fi
>> +
>> qemu_confdir=$sysconfdir$confsuffix
>> qemu_moddir=$libdir$confsuffix
>> qemu_datadir=$datadir$confsuffix
- [Qemu-devel] [PATCH 0/3] OpenBSD fixes, Philippe Mathieu-Daudé, 2019/01/25
- [Qemu-devel] [PATCH 3/3] WIP tests/vm: Run tests on OpenBSD, Philippe Mathieu-Daudé, 2019/01/25
- [Qemu-devel] [PATCH 1/3] configure: Disable W^X on OpenBSD, Philippe Mathieu-Daudé, 2019/01/25
- [Qemu-devel] [PATCH 2/3] XXX oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure, Philippe Mathieu-Daudé, 2019/01/25
- Re: [Qemu-devel] [PATCH 2/3] XXX oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure, Markus Armbruster, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] XXX oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure, Alex Bennée, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] XXX oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure, Philippe Mathieu-Daudé, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] XXX oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure, Paolo Bonzini, 2019/01/28
- Re: [Qemu-devel] [PATCH 2/3] XXX oslib-posix: Ignore fcntl("/dev/null", F_SETFL, O_NONBLOCK) failure, Philippe Mathieu-Daudé, 2019/01/28