Great! Thanks for testing that. Do you mind supplying a Tested-by tag that I can apply to the patch?
Alistair On Mon, Dec 21, 2020 at 5:36 AM Andreas K. Hüttel <1906...@bugs.launchpad.net> wrote: > > After applying this patch on top of qemu-5.2.0, I can confirm that it > fixes the problem. > > Thank you!! > > -- > You received this bug notification because you are a member of qemu- > devel-ml, which is subscribed to QEMU. > https://bugs.launchpad.net/bugs/1906193 > > Title: > riscv32 user mode emulation: fork return values broken > > Status in QEMU: > New > > Bug description: > When running in a chroot with riscv32 (on x86_64; qemu git master as > of today): > > The following short program forks; the child immediately returns with > exit(42). The parent checks for the return value - and obtains 40! > > gcc-10.2 > > =============================================== > #include <stdlib.h> > #include <unistd.h> > #include <stdio.h> > #include <sys/wait.h> > > main(c, v) > int c; > char **v; > { > pid_t pid, p; > int s, i, n; > > s = 0; > pid = fork(); > if (pid == 0) > exit(42); > > /* wait for the process */ > p = wait(&s); > if (p != pid) > exit (255); > > if (WIFEXITED(s)) > { > int r=WEXITSTATUS(s); > if (r!=42) { > printf("child wants to return %i (0x%X), parent received %i (0x%X), > difference %i\n",42,42,r,r,r-42); > } > } > } > =============================================== > > (riscv-ilp32 chroot) farino /tmp # ./wait-test-short > child wants to return 42 (0x2A), parent received 40 (0x28), difference -2 > > =============================================== > (riscv-ilp32 chroot) farino /tmp # gcc --version > gcc (Gentoo 10.2.0-r1 p2) 10.2.0 > Copyright (C) 2020 Free Software Foundation, Inc. > Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es > gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE > ZWECKE. > > (riscv-ilp32 chroot) farino /tmp # ld --version > GNU ld (Gentoo 2.34 p6) 2.34.0 > Copyright (C) 2020 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the terms of > the GNU General Public License version 3 or (at your option) a later > version. > This program has absolutely no warranty. > > To manage notifications about this bug go to: > https://bugs.launchpad.net/qemu/+bug/1906193/+subscriptions >