Skip to content

linux-user: signal delivery for i386 guests - #331

Merged
tamnd merged 2 commits into
mainfrom
m7-i386-sig
Oct 14, 2026
Merged

tamnd merged 2 commits into
mainfrom
m7-i386-sig

Conversation

@tamnd

@tamnd tamnd commented Oct 14, 2026

Copy link
Copy Markdown
Owner

Signal handlers for qemu-i386, for #8.

  • i386 gets the old and rt signal frames (setup_frame(), setup_rt_frame(), sigreturn(), rt_sigreturn()) with the FPU state, and the return trampolines on a page where QEMU puts them, as there is no vDSO.
  • The compat layer takes rt_sigaction(), sigaction(), sigaltstack(), sigprocmask(), sgetmask(), ssetmask(), sigpending(), sigsuspend() and the 32-bit siginfo and stack_t layouts.
  • Guest gets an optional setup_frame hook for targets with the old frame; the others pass None.

Checked on server3 against QEMU 11.1 qemu-i386, at this commit:

  • A signal test (old and rt frames, SA_SIGINFO, the alternate stack, fault and trap signals, the old signal calls, sigtimedwait(), waitid()) prints the same output.
  • tests/tcg's crash, overflow, procs, prot-none, segfault, sigbus, sigreturn-sigmask, threadcount, vma-pthread and a thread test match. linux-test and signals stop at socket() and timer_create(), which are still ENOSYS on i386.
  • clippy, the linux-user and user-common tests, xtask and the Windows check pass.

@tamnd tamnd added this to the M7: User mode milestone Oct 14, 2026
@tamnd tamnd added kind/feature It should do something it does not. area/user-mode linux-user and bsd-user. labels Oct 14, 2026
@tamnd
tamnd merged commit fecb43a into main Oct 14, 2026
2 checks passed
@tamnd
tamnd deleted the m7-i386-sig branch October 14, 2026 12:02
@tamnd tamnd mentioned this pull request Oct 14, 2026
2 of 7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/user-mode linux-user and bsd-user. kind/feature It should do something it does not.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant