From 883d68803d17d6f64cdabf2c8ef846345e2d0094 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 19 Feb 2023 10:20:19 +0100 Subject: [PATCH] Dynamically allocate the alternate signal stack. This patch is a backport of https://github.com/ocaml/ocaml/pull/10266. --- ocaml-src/asmrun/signals_asm.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/ocaml-src/asmrun/signals_asm.c b/ocaml-src/asmrun/signals_asm.c index 3895d75..d37b481 100644 --- a/ocaml-src/asmrun/signals_asm.c +++ b/ocaml-src/asmrun/signals_asm.c @@ -182,7 +182,6 @@ DECLARE_SIGNAL_HANDLER(trap_handler) #ifdef HAS_STACK_OVERFLOW_DETECTION static char * system_stack_top; -static char sig_alt_stack[SIGSTKSZ]; #if defined(SYS_linux) /* PR#4746: recent Linux kernels with support for stack randomization @@ -274,15 +273,19 @@ void caml_init_signals(void) #ifdef HAS_STACK_OVERFLOW_DETECTION { stack_t stk; - struct sigaction act; - stk.ss_sp = sig_alt_stack; + stk.ss_sp = malloc(SIGSTKSZ); stk.ss_size = SIGSTKSZ; stk.ss_flags = 0; - SET_SIGACT(act, segv_handler); - act.sa_flags |= SA_ONSTACK | SA_NODEFER; - sigemptyset(&act.sa_mask); - system_stack_top = (char *) &act; - if (sigaltstack(&stk, NULL) == 0) { sigaction(SIGSEGV, &act, NULL); } + if (stk.ss_sp != NULL) { + if (sigaltstack(&stk, NULL) != -1) { + struct sigaction act; + SET_SIGACT(act, segv_handler); + act.sa_flags |= SA_ONSTACK | SA_NODEFER; + sigemptyset(&act.sa_mask); + system_stack_top = (char *) &act; + sigaction(SIGSEGV, &act, NULL); + } + } } #endif } -- 2.38.1 'qt'>
path: root/nix/boost
image, docker-image) (debian-archive): Likewise. Remove two TODO comments. Document EXTRA-OPTIONS. Use the custom control files when provided. (%deb-format-options): New variable. (show-deb-format-options, show-deb-format-options/detailed): New procedures. (%options): Register new options. (show-help): Augment with new usage. (guix-pack): Validate and propagate new argument values. * doc/guix.texi (Invoking guix pack)[deb]: Document how to list advanced options. Add an example. * tests/pack.scm (deb archive...): Provide extra-options to the debian-archive procedure, and validate that the provided files are embedded in the pack.
AgeCommit message (Collapse)Author
2020-06-24nix: Tweak .gitignore files.Christopher Baines
Remove .gitignore entries where they match source files that are tracked in Git. This is relevant to me at least, as some code searching tools use .gitignore files and will ignore matched files.
Maxim Cournoyer
2021-07-11pack: Adjust test to earlier <compressor> changes....This is a followup to 5a0997ef7f3968d216328b8c63a6e36dd29a5ab8, which broke the "self-contained tarball" test. * tests/pack.scm (%gzip-compressor): Add 'list' in third field. Ludovic Courtès
2021-06-29pack: Add support for the deb format....* .dir-locals.el (scheme-mode)[gexp->derivation]: Define indentation rule. * guix/scripts/pack.scm (debian-archive): New procedure. (%formats): Register the new deb format. (show-formats): Add it to the usage string. * tests/pack.scm (%ar-bootstrap): New variable. (deb archive with symlinks): New test. * doc/guix.texi (Invoking guix pack): Document it. * NEWS: Add news entry. Maxim Cournoyer
2021-06-29tests: pack: Fix compressor extension....* tests/pack.scm (%gzip-compressor): Add the missing leading period to the gzip compressor file extension. Maxim Cournoyer
2020-07-20pack: Build the store database under a UTF-8 locale....Fixes <https://bugs.gnu.org/42389>. Reported by branjam4@gmail.com. * guix/scripts/pack.scm (store-database)[build]: Add calls to 'setenv' and 'setlocale'. * tests/pack.scm ("self-contained-tarball + localstatedir, UTF-8 file names"): New test. Ludovic Courtès
2020-07-20pack: 'self-contained-tarball' runs derivation in a UTF-8local....* guix/scripts/pack.scm (self-contained-tarball) [set-utf8-locale]: New variable. [build]: Use it. * tests/pack.scm ("self-contained-tarball"): Use a <profile> record instead of 'profile-derivation'. Ludovic Courtès