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

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

From: Pavel Begunkov <asml.silence@gmail.com>
Date: 2021-04-23 14:13:32
Also in: io-uring

On 4/22/21 3:22 PM, Stefano Garzarella wrote:
+Cc: io-uring@vger.kernel.org
+Cc: Pavel Begunkov [off-list ref]

Original message: https://www.spinics.net/lists/linux-block/msg67077.html

On Thu, Apr 22, 2021 at 10:59:42AM +0100, Stefan Hajnoczi wrote:
quoted
On Mon, Apr 19, 2021 at 11:38:07AM -0700, H.J. Lu wrote:
quoted
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.
I think so:

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Right, and there are already people complaining
https://github.com/axboe/liburing/issues/320


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