[LTP] [PATCH] sighold02: Fix muslc builds by removing __SIGRTMIN

Petr Vorel pvorel@suse.cz
Mon Apr 25 13:08:20 CEST 2022


Hi all,

> Hi!
> > The minimum real-time signal is always 32 according to
> > signal(7). Meanwhile __SIGRTMIN is not defined in all lib C
> > implementations.

> > Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
> > ---
> >  testcases/kernel/syscalls/sighold/sighold02.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)

> > diff --git a/testcases/kernel/syscalls/sighold/sighold02.c b/testcases/kernel/syscalls/sighold/sighold02.c
> > index daa86192e..1cfb7688b 100644
> > --- a/testcases/kernel/syscalls/sighold/sighold02.c
> > +++ b/testcases/kernel/syscalls/sighold/sighold02.c
> > @@ -33,7 +33,7 @@ static int sigs_map[NUMSIGS];

> >  static int skip_sig(int sig)
> >  {
> > -	if (sig >= __SIGRTMIN && sig < SIGRTMIN)
> > +	if (sig >= 32 && sig < SIGRTMIN)
> >  		return 1;

> Looks like __SIGRTMIN is defined to 32 for all architectures glibc
> supports, so this should be pretty much safe.

> Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

Well, we have __SIGRTMIN 32 fallback definition in include/lapi/signal.h,
we use it in few tests. It was used in old variant, but you removed it during
rewrite in 38e69985cb2707a056f9c86a90c8570c721e6a7d.

BTW I looked whether we could use SIGRTMIN instead of underscore variants,
I suppose we can't (looks like SIGRTMIN is 32 + something):

musl:
#define SIGRTMIN  (__libc_current_sigrtmin())
src/signal/sigrtmin.c
#include <signal.h>
int __libc_current_sigrtmin()
{
    return 35;
}

glibc:
static int current_rtmin = __SIGRTMIN + RESERVED_SIGRT;
(current_rtmin is used in __libc_current_sigrtmin(), RESERVED_SIGRT is defined 0 and 2)

Kind regards,
Petr


More information about the ltp mailing list