x86: 0.881 performance: 0.508 semantic: 0.360 socket: 0.337 device: 0.335 ppc: 0.311 user-level: 0.296 network: 0.278 peripherals: 0.255 architecture: 0.250 hypervisor: 0.247 PID: 0.234 graphic: 0.228 files: 0.227 permissions: 0.225 i386: 0.225 kernel: 0.218 mistranslation: 0.214 risc-v: 0.204 boot: 0.198 VMM: 0.182 vnc: 0.177 assembly: 0.173 virtual: 0.170 register: 0.166 debug: 0.157 KVM: 0.149 arm: 0.139 TCG: 0.117 pread does not work right under qemu-sh4 The pread system call returns a wrong value in some case, in a program running under qemu-sh4 (version 2.9.0). How to reproduce: - Compile the program: sh4-linux-gnu-gcc-5 -O -Wall -static -o test-pread test-pread.c - Set environment variable for using qemu-sh4 (actually not needed, since the program is statically linked here). - ~/inst-qemu/2.9.0/bin/qemu-sh4 test-pread Expected output: ret=1 errno=0 Actual output: ret=0 errno=2 test-pread.c:44: assertion 'ret == 1' failed qemu: uncaught target signal 6 (Aborted) - core dumped In case it matters: My host platform is Linux/x86_64. The behaviour in qemu-2.10 is the same as in qemu-2.9. This might be related to this fix: > https://git.qemu.org/?p=qemu.git;a=commit;h=8bf8e9df4a7d82c7a47cc961c9cdee1615595de0 FWIW, if you're interested in sh4, please join #debian-ports on OFTC and subscribe to the debian-superh mailing list. We're doing lots of sh4 development and testing QEMU in Debian. With qemu-2.11: $ ~/inst-qemu/2.11.0/bin/qemu-sh4 test-pread ret=1 errno=2 The value of errno is actually irrelevant here. So, the bug is fixed.