Message ID | CAMe9rOqa-Y=U4OxiSUmWDD86n77g8Ncz5QTTjopBRv8yLnccGA@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ | expand |
On 7/10/21 2:10 PM, H.J. Lu wrote: > On Fri, Jul 9, 2021 at 3:10 PM Carlos O'Donell <carlos@redhat.com> wrote: >> >> On 7/9/21 5:38 PM, H.J. Lu via Libc-alpha wrote: >>> Replace MINSIGSTKSZ with sysconf (_SC_MINSIGSTKSZ) since the constant >>> MINSIGSTKSZ used in glibc build may be too small. >> >> LGTM. It's good to explicitly convert to using sysconf in support/* code. > > I used the wrong _SC_XXX. _SC_MINSIGSTKSZ is for the empty > signal handler. sysconf (_SC_SIGSTKSZ) returns the suggested > minimum number of bytes of stack space required for a signal stack. > > OK for master? LGTM. This still goes in the right direction, even if we need more stack space for testing. Reviewed-by: Carlos O'Donell <carlos@redhat.com> > From 1b30a2708f2bc8a7161c19737ac5f5927803ffc9 Mon Sep 17 00:00:00 2001 > From: "H.J. Lu" <hjl.tools@gmail.com> > Date: Sat, 10 Jul 2021 10:56:50 -0700 > Subject: [PATCH] support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ > > Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ since sysconf (_SC_MINSIGSTKSZ) > returns the minimum number of bytes of free stack space required in order > to guarantee successful, non-nested handling of a single signal whose > handler is an empty function while sysconf (_SC_SIGSTKSZ) returns the > suggested minimum number of bytes of stack space required for a signal > stack. > --- > support/support_stack_alloc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/support/support_stack_alloc.c b/support/support_stack_alloc.c > index b05ae08968..62eee84573 100644 > --- a/support/support_stack_alloc.c > +++ b/support/support_stack_alloc.c > @@ -39,10 +39,10 @@ support_stack_alloc (size_t size) > if (pagesize == -1) > FAIL_EXIT1 ("sysconf (_SC_PAGESIZE): %m\n"); > > - /* Always supply at least sysconf (_SC_MINSIGSTKSZ) space; passing 0 > + /* Always supply at least sysconf (_SC_SIGSTKSZ) space; passing 0 > as size means only that much space. No matter what the number is, > round it up to a whole number of pages. */ > - size_t stacksize = roundup (size + sysconf (_SC_MINSIGSTKSZ), > + size_t stacksize = roundup (size + sysconf (_SC_SIGSTKSZ), > pagesize); > > /* The guard bands need to be large enough to intercept offset > -- > 2.31.1 >
From 1b30a2708f2bc8a7161c19737ac5f5927803ffc9 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" <hjl.tools@gmail.com> Date: Sat, 10 Jul 2021 10:56:50 -0700 Subject: [PATCH] support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ since sysconf (_SC_MINSIGSTKSZ) returns the minimum number of bytes of free stack space required in order to guarantee successful, non-nested handling of a single signal whose handler is an empty function while sysconf (_SC_SIGSTKSZ) returns the suggested minimum number of bytes of stack space required for a signal stack. --- support/support_stack_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/support/support_stack_alloc.c b/support/support_stack_alloc.c index b05ae08968..62eee84573 100644 --- a/support/support_stack_alloc.c +++ b/support/support_stack_alloc.c @@ -39,10 +39,10 @@ support_stack_alloc (size_t size) if (pagesize == -1) FAIL_EXIT1 ("sysconf (_SC_PAGESIZE): %m\n"); - /* Always supply at least sysconf (_SC_MINSIGSTKSZ) space; passing 0 + /* Always supply at least sysconf (_SC_SIGSTKSZ) space; passing 0 as size means only that much space. No matter what the number is, round it up to a whole number of pages. */ - size_t stacksize = roundup (size + sysconf (_SC_MINSIGSTKSZ), + size_t stacksize = roundup (size + sysconf (_SC_SIGSTKSZ), pagesize); /* The guard bands need to be large enough to intercept offset -- 2.31.1