summary refs log tree commit diff stats
path: root/results/classifier/118/none/2389
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/none/2389')
-rw-r--r--results/classifier/118/none/238964
1 files changed, 64 insertions, 0 deletions
diff --git a/results/classifier/118/none/2389 b/results/classifier/118/none/2389
new file mode 100644
index 00000000..eedf784a
--- /dev/null
+++ b/results/classifier/118/none/2389
@@ -0,0 +1,64 @@
+graphic: 0.528
+semantic: 0.447
+x86: 0.267
+performance: 0.244
+architecture: 0.199
+device: 0.186
+user-level: 0.135
+debug: 0.121
+mistranslation: 0.112
+hypervisor: 0.100
+peripherals: 0.078
+PID: 0.072
+network: 0.062
+vnc: 0.059
+files: 0.056
+register: 0.054
+i386: 0.052
+ppc: 0.051
+assembly: 0.050
+virtual: 0.040
+socket: 0.033
+arm: 0.033
+risc-v: 0.029
+VMM: 0.026
+boot: 0.024
+permissions: 0.018
+kernel: 0.013
+TCG: 0.012
+KVM: 0.008
+
+Mutex initialization assertion failure due to incompatibility with macOS setrlimit() syscall
+Description of problem:
+Running the command with with any set of arguments instantly crashes with the following error message:
+
+```
+Assertion failed: (mutex->initialized), function qemu_mutex_lock_impl, file ../util/qemu-thread-posix.c, line 92.
+zsh: abort      ./qemu-system-x86_64
+```
+Steps to reproduce:
+As per instructions for building from scratch:
+
+1. `mkdir build && cd build`
+2. `../configure --prefix=$PWD/.. --audio-drv-list=sdl --disable-cocoa --enable-sdl --enable-sdl-image`
+3. `make && make install`
+4. `cd ../bin`
+5. `./qemu-system-x86_64`
+Additional information:
+The issue is coming from the `os_setup_limits()` function in `os-posix.c`. As it turns out, the `setrlimit()` syscall behaves subtly different on macOS than on Linux systems, and the macOS man pages explicitly forbade the code on line 273.
+
+Line 273 from `os-posix.c`:
+
+```
+nofile.rlim_cur = nofile.rlim_max;
+```
+
+macOS `setrlimit()` man page:
+
+```
+COMPATIBILITY
+     setrlimit() now returns with errno set to EINVAL in places that historically succeeded.  It no longer accepts "rlim_cur = RLIM_INFINITY" for
+     RLIM_NOFILE.  Use "rlim_cur = min(OPEN_MAX, rlim_max)".
+```
+
+The man page thankfully gives us the [patch](/uploads/e7c8c6e3b5620c3b1ee34e89661097f3/qemu.patch)