Skip to content

broken signal handling in nios2 user-mode emulation

This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1791763
Reported by 'Sandra Loosemore' on 2018-09-10 :

This bug is against the 3.0 release.

It appears that the signal handling parts of the nios2 user-mode emulation
have never really been completed or tested.  Some examples of failing
tests from the GCC testsuite are gcc.dg/pr78185.c and gcc.dg/cleanup-10.c.

Some problems I've identified and tried to fix with the attached patch
are:

- Code copied from the Linux kernel wasn't adjusted to differentiate
between host and target data types and address spaces.

- The sigaltstack() system call returns EINVAL because fields are listed
in the wrong order in struct target_sigaltstack.

With this patch, the system calls to set up the signal handler are
returning successfully, but the handler isn't being invoked, so something
is still wrong.  I think I need another pair of eyes to look over this
code.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information