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

Petr Vorel pvorel@suse.cz
Mon Apr 25 13:09:48 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):

Ah, looking at the code "if (sig >= __SIGRTMIN && sig < SIGRTMIN)",
we need both underscore and non-underscore.

Let's go back to use lapi again.

Kind regards,
Petr

> 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