Skip to content
Snippets Groups Projects
  • Nadav Har'El's avatar
    3a779f1c
    libc: implement sigsetjmp(), siglongjmp() · 3a779f1c
    Nadav Har'El authored
    
    This patch implements the sigsetjmp()/siglongjmp() functions. Fixes #241.
    
    sigsetjmp() and siglongjmp() are similar to setjmp() and longjmp(), except
    that they also save and restore the signals mask. Signals are hardly useful
    in OSv, so we don't necessarily need this signal mask feature, but we still
    want to implement these functions, if only so that applications which use
    them by default could run (see issue #241).
    
    Most of the code in this patch is from Musl 1.0.0, with a few small
    modifications - namely, call our sigprocmask() function instead a Linux
    syscall. Note I copied the x64 version of sigsetjmp.s only. Musl also
    has this file for ARM and other architectures. Interestingly we already
    had in our source tree, but didn't use, block.c, and this patch starts
    to use it.
    
    Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
    3a779f1c
    History
    libc: implement sigsetjmp(), siglongjmp()
    Nadav Har'El authored
    
    This patch implements the sigsetjmp()/siglongjmp() functions. Fixes #241.
    
    sigsetjmp() and siglongjmp() are similar to setjmp() and longjmp(), except
    that they also save and restore the signals mask. Signals are hardly useful
    in OSv, so we don't necessarily need this signal mask feature, but we still
    want to implement these functions, if only so that applications which use
    them by default could run (see issue #241).
    
    Most of the code in this patch is from Musl 1.0.0, with a few small
    modifications - namely, call our sigprocmask() function instead a Linux
    syscall. Note I copied the x64 version of sigsetjmp.s only. Musl also
    has this file for ARM and other architectures. Interestingly we already
    had in our source tree, but didn't use, block.c, and this patch starts
    to use it.
    
    Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>