V2 [PATCH] Deprecate SIGSTKSZ/MINSIGSTKSZ with _SC_SIGSTKSZ_SOURCE

H.J. Lu hjl.tools@gmail.com
Fri Jul 9 19:34:32 GMT 2021


On Fri, Jul 9, 2021 at 11:53 AM Carlos O'Donell <carlos@redhat.com> wrote:
>
> On 10/15/20 5:22 PM, H.J. Lu via Libc-alpha wrote:
> > From a9b02d82571c0b0e0a5d4b46f0683a5341046bdf Mon Sep 17 00:00:00 2001
> > From: "H.J. Lu" <hjl.tools@gmail.com>
> > Date: Thu, 15 Oct 2020 05:21:28 -0700
> > Subject: [PATCH] Deprecate SIGSTKSZ/MINSIGSTKSZ with _SC_SIGSTKSZ_SOURCE
> > MIME-Version: 1.0
> > Content-Type: text/plain; charset=UTF-8
> > Content-Transfer-Encoding: 8bit
> >
> > When _SC_SIGSTKSZ_SOURCE is defined, deprecate SIGSTKSZ and MINSIGSTKSZ:
>
> This is approved for glibc 2.35 when the tree reopens.
>
> It is entirely my fault this won't make it into 2.34 because I've been
> prioritizing other ABI changes. Sorry for that.
>
> My feeling is that we should kick off the deprecation, allow 6 months for
> downstreams to catch FTBS, and send patches upstream for inclusion in
> subsequent distros.
>
> Please commit this when we reopen the branch for 2.35.

Will do after 2.34 is branched.

> I also think that for 2.35 we could consider PTHREAD_STACK_MIN deprecated
> in exactly the same way and at the same time? I have reviewed the PTHREAD_STACK_MIN
> non-constant changes just now.

I will submit a patch for PTHREAD_STACK_MIN after this one.

Thanks.

> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>
> > tst-minsigstksz-5.c: In function ‘do_test’:
> > tst-minsigstksz-5.c:46:3: warning: ‘__MINSIGSTKSZ’ is deprecated: Use sysconf (_SC_MINSIGSTKSZ) instead of MINSIGSTKSZ [-Wdeprecated-declarations]
> >    46 |   void *stack_bottom = stack_buffer + (stack_buffer_size + MINSIGSTKSZ) / 2;
> >       |   ^~~~
> > In file included from ../signal/signal.h:315,
> >                  from ../include/signal.h:2,
> >                  from tst-minsigstksz-5.c:19:
> > ../sysdeps/unix/sysv/linux/bits/sigstksz.h:35:1: note: declared here
> >    35 | __MINSIGSTKSZ (void)
> >       | ^~~~~~~~~~~~~
> > ---
> >  sysdeps/unix/sysv/linux/Makefile        |  6 ++++--
> >  sysdeps/unix/sysv/linux/bits/sigstksz.h | 18 ++++++++++++++++--
> >  2 files changed, 20 insertions(+), 4 deletions(-)
> >
> > diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> > index b51a02a6e6..5576c729ae 100644
> > --- a/sysdeps/unix/sysv/linux/Makefile
> > +++ b/sysdeps/unix/sysv/linux/Makefile
> > @@ -189,9 +189,11 @@ sysdep_headers += sys/timex.h bits/timex.h
> >  sysdep_routines += ntp_gettime ntp_gettimex
> >  endif
> >
> > +CFLAGS-SIGSTKSZ += -D_SC_SIGSTKSZ_SOURCE -Wno-error=deprecated-declarations
> > +
> >  ifeq ($(subdir),signal)
> >  # Compile tst-minsigstksz-5.c with _SC_SIGSTKSZ_SOURCE.
> > -CFLAGS-tst-minsigstksz-5.c += -D_SC_SIGSTKSZ_SOURCE
> > +CFLAGS-tst-minsigstksz-5.c += $(CFLAGS-SIGSTKSZ)
> >
> >  tests-special += $(objpfx)tst-signal-numbers.out
> >  # Depending on signal.o* is a hack.  What we actually want is a dependency
> > @@ -233,7 +235,7 @@ endif
> >
> >  ifeq ($(subdir),support)
> >  # Compile xsigstack.c with _SC_SIGSTKSZ_SOURCE.
> > -CFLAGS-xsigstack.c += -D_SC_SIGSTKSZ_SOURCE
> > +CFLAGS-xsigstack.c += $(CFLAGS-SIGSTKSZ)
> >  endif
> >
> >  ifeq ($(subdir),termios)
> > diff --git a/sysdeps/unix/sysv/linux/bits/sigstksz.h b/sysdeps/unix/sysv/linux/bits/sigstksz.h
> > index cd5b3cc895..b90a614de6 100644
> > --- a/sysdeps/unix/sysv/linux/bits/sigstksz.h
> > +++ b/sysdeps/unix/sysv/linux/bits/sigstksz.h
> > @@ -23,11 +23,25 @@
> >  #if __USE_SC_SIGSTKSZ
> >  # include <unistd.h>
> >
> > +__attribute_deprecated_msg__ ("Use sysconf (_SC_SIGSTKSZ) instead of SIGSTKSZ")
> > +__extern_always_inline long
> > +__SIGSTKSZ (void)
> > +{
> > +  return sysconf (_SC_SIGSTKSZ);
> > +}
> > +
> > +__attribute_deprecated_msg__ ("Use sysconf (_SC_MINSIGSTKSZ) instead of MINSIGSTKSZ")
> > +__extern_always_inline long
> > +__MINSIGSTKSZ (void)
> > +{
> > +  return sysconf (_SC_SIGSTKSZ);
> > +}
> > +
> >  /* Default stack size for a signal handler: sysconf (SC_SIGSTKSZ).  */
> >  # undef SIGSTKSZ
> > -# define SIGSTKSZ sysconf (_SC_SIGSTKSZ)
> > +# define SIGSTKSZ __SIGSTKSZ ()
> >
> >  /* Minimum stack size for a signal handler: SIGSTKSZ.  */
> >  # undef MINSIGSTKSZ
> > -# define MINSIGSTKSZ SIGSTKSZ
> > +# define MINSIGSTKSZ __MINSIGSTKSZ ()
> >  #endif
> > --
> > 2.26.2
> >
>
>
> --
> Cheers,
> Carlos.
>


-- 
H.J.


More information about the Libc-alpha mailing list