[forwarding this also to qemu-riscv, not sure what's the right list]
An: qemu-devel@nongnu.org, libc-alpha@sourceware.org
Hi,
first of all, sorry for crossposting, but I'm dealing with many moving and
experimental parts here...
Situation: riscv32 (ilp32) qemu-user [1] chroot, Linux [2], glibc [3], gcc [4]
The following small program outputs "child exited with status 40", which is
rather unexpected (it should be 42). Any idea what is going on?
(This is a simplified version of code in a configure test. The test has other
potential issues [5], but in any case it cant produce useful results on
riscv32 right now.)
TIA,
Andreas
====================================
#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);
printf("child exited with status %i\n",r);
}
}
====================================
[1] qemu built from git master, Sep 12, 2020 16:30:37 EEST
[2] host kernel is 5.8.8
[3] glibc-2.32 with the rv32 patch series backported from master
[4] (Gentoo 10.2.0-r1 p2)
[5] https://lists.gnu.org/archive/html/bug-bash/2020-09/msg00033.html
--
Andreas K. Hüttel
dilfridge@gentoo.org
Gentoo Linux developer
(council, qa, toolchain, base-system, perl, libreoffice)