[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug 1906193] Re: riscv32 user mode emulation: fork return values br
From: |
Alistair Francis |
Subject: |
Re: [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken |
Date: |
Mon, 21 Dec 2020 13:44:11 -0800 |
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
<1906193@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
>
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/04
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/15
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/16
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/16
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Alistair Francis, 2020/12/19
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/19
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/21
- Re: [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken,
Alistair Francis <=
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Richard Henderson, 2020/12/21
- [Bug 1906193] Re: riscv32 user mode emulation: fork return values broken, Andreas K . Hüttel, 2020/12/26