This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Tests for minimal signal handler functionality in MINSIGSTKSZ space.
On Thu, Jan 17, 2019 at 7:12 PM Zack Weinberg <zackw@panix.com> wrote:
>
> On Wed, Jan 16, 2019 at 10:31 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> >
> > The new tests failed on AVX512 machines:
> >
> > Program received signal SIGUSR1, User defined signal 1.
> > __GI_raise (sig=sig@entry=10) at ../sysdeps/unix/sysv/linux/raise.c:50
> > 50 return ret;
> > (gdb) c
> > Continuing.
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > _dl_runtime_resolve_xsavec () at ../sysdeps/x86_64/dl-trampoline.h:93
> > 93 movq %rax, REGISTER_SAVE_RAX(%rsp)
> > (gdb) bt
> > #0 _dl_runtime_resolve_xsavec () at ../sysdeps/x86_64/dl-trampoline.h:93
> > #1 0x0040248d in handler (unused=<optimized out>) at tst-minsigstksz-4.c:44
> > #2 <signal handler called>
> > #3 __GI_raise (sig=sig@entry=10) at ../sysdeps/unix/sysv/linux/raise.c:50
> > #4 0x004024da in do_test () at tst-minsigstksz-4.c:59
> > #5 0x00402cd6 in support_test_main (argc=1, argv=0xffffcef8,
> > config=config@entry=0xffffcdf0) at support_test_main.c:350
> > #6 0x00402348 in main (argc=<optimized out>, argv=<optimized out>)
> > at ../support/test-driver.c:168
> > (gdb)
> >
> > AVX512 needs 2560 bytes to save processor state.
>
> Well, this is the problem that we knew existed and can't fix quickly.
> If I'm reading http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
> correctly, we can't introduce new sysconf constants unilaterally
> (there is no license to define system-specific _SC_* symbols).
>
> I wonder if this test passes if you run it with LD_BIND_NOW=t in the
> environment. Forcing -z now for these tests might be the best we can
> do for 2.29.
>
This works:
diff --git a/signal/Makefile b/signal/Makefile
index 9597287bca..9c65c26887 100644
--- a/signal/Makefile
+++ b/signal/Makefile
@@ -59,3 +59,9 @@ CFLAGS-sigwait.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sigwaitinfo.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-sigreturn.c += $(no-stack-protector)
+
+LDFLAGS-tst-minsigstksz-1 = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-2 = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-3 = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-3a = -Wl,-z,now
+LDFLAGS-tst-minsigstksz-4 = -Wl,-z,now
--
H.J.