• hidehiko's avatar
    Reland: Introduce sys_sigprocmask and sys_sigaction. (patchset #4 id:80001 of... · a926d0b8
    hidehiko authored
    Reland: Introduce sys_sigprocmask and sys_sigaction. (patchset #4 id:80001 of https://codereview.chromium.org/1092153005/)
    
    The last version was broken for x86_64 DEBUG build.
    On x86_64, it is necessary to set sa_restorer appropriately,
    if not specified. What we need in the function is just invoking
    the rt_sigreturn system call. However, it is special system call
    which touches user land stack, so that a function prologue will
    break the program.
    In RELEASE build, that prologue is gone (including syscall() invocation)
    by optimization. However, in DEBUG build, there is the prologue.
    Unfortunately, all CQ and trybot do not run DEBUG tests so that it
    was not catched.
    
    Also, it turned out that MSAN does not work with direct sigaction syscall, unfortunately. (In more precise, it does not work if we *mix* direct sigaction syscall and sigaction() in libc).
    
    This version fixes them.
    
    TEST=Ran sandbox_linux_tests with DEBUG build locally. Ran msan tests, too. Ran trybots including 64 debug bot and msan ones.
    BUG=358465
    CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:linux_chromium_trusty32_rel,linux_arm,linux_chromium_trusty_dbg,linux_chromium_dbg_ng,linux_chromium_msan_rel_ng
    
    Review URL: https://codereview.chromium.org/1099263003
    
    Cr-Commit-Position: refs/heads/master@{#326893}
    a926d0b8
mips_linux_ucontext.h 1.33 KB