Skip to content

Commit

Permalink
linux-user: Disable static assert involving __SIGRTMAX if it is missing
Browse files Browse the repository at this point in the history
This check is to ensure that the loop in signal_table_init() from
SIGRTMIN to SIGRTMAX falls within the bounds of host_to_target_signal_table
(_NSIG). However, it is not critical, since _NSIG is already defined
to be the one larger than the largest signal supported by the system
(as specified in the upcoming POSIX revision[0]).

musl libc does not define __SIGRTMAX, so disabling this check when
it is missing fixes one of the last remaining errors when building
qemu.

[0] https://www.austingroupbugs.net/view.php?id=741

Signed-off-by: Michael Forney <mforney@mforney.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210526190203.4255-1-mforney@mforney.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
  • Loading branch information
michaelforney authored and vivier committed Jun 15, 2021
1 parent 228168c commit 144bff0
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions linux-user/signal.c
Expand Up @@ -38,7 +38,9 @@ static void host_signal_handler(int host_signum, siginfo_t *info,
* Signal number 0 is reserved for use as kill(pid, 0), to test whether
* a process exists without sending it a signal.
*/
#ifdef __SIGRTMAX
QEMU_BUILD_BUG_ON(__SIGRTMAX + 1 != _NSIG);
#endif
static uint8_t host_to_target_signal_table[_NSIG] = {
[SIGHUP] = TARGET_SIGHUP,
[SIGINT] = TARGET_SIGINT,
Expand Down

0 comments on commit 144bff0

Please sign in to comment.