Thread (7 messages) 7 messages, 5 authors, 2021-04-23

Re: [PATCH liburing] examples/ucontext-cp.c: cope with variable SIGSTKSZ

From: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2021-04-22 09:59:51

On Mon, Apr 19, 2021 at 11:38:07AM -0700, H.J. Lu wrote:
On Mon, Apr 19, 2021 at 7:35 AM Stefan Hajnoczi [off-list ref] wrote:
quoted
On Tue, Apr 13, 2021 at 04:03:19PM +0100, Stefan Hajnoczi wrote:
quoted
The size of C arrays at file scope must be constant. The following
compiler error occurs with recent upstream glibc (2.33.9000):

  CC ucontext-cp
  ucontext-cp.c:31:23: error: variably modified ‘stack_buf’ at file scope
  31 |         unsigned char stack_buf[SIGSTKSZ];
     |                       ^~~~~~~~~
  make[1]: *** [Makefile:26: ucontext-cp] Error 1

The following glibc commit changed SIGSTKSZ from a constant value to a
variable:

  commit 6c57d320484988e87e446e2e60ce42816bf51d53
  Author: H.J. Lu [off-list ref]
  Date:   Mon Feb 1 11:00:38 2021 -0800

    sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305]
  ...
  +# define SIGSTKSZ sysconf (_SC_SIGSTKSZ)

Allocate the stack buffer explicitly to avoid declaring an array at file
scope.

Cc: H.J. Lu <redacted>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
Perhaps the glibc change needs to be revised before releasing glibc 2.34
since it might break applications. That's up to the glibc folks. It
doesn't hurt for liburing to take a safer approach that copes with the
SIGSTKSZ change in any case.
glibc folks, please take a look. The commit referenced above broke
compilation of liburing's tests. It's possible that applications will
hit similar issues. Can you check whether the SIGSTKSZ change needs to
be reverted/fixed before releasing glibc 2.34?
It won't be changed for glibc 2.34.
Thanks for the response, H.J. and Paul.

In that case liburing needs this patch.

Stefan

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help