• Helge Deller's avatar
    parisc: Add vDSO support · df24e178
    Helge Deller authored
    Add minimal vDSO support, which provides the signal trampoline helpers,
    but none of the userspace syscall helpers like time wrappers.
    
    The big benefit of this vDSO implementation is, that we now don't need
    an executeable stack any longer. PA-RISC is one of the last
    architectures where an executeable stack was needed in oder to implement
    the signal trampolines by putting assembly instructions on the stack
    which then gets executed. Instead the kernel will provide the relevant
    code in the vDSO page and only put the pointers to the signal
    information on the stack.
    
    By dropping the need for executable stacks we avoid running into issues
    with applications which want non executable stacks for security reasons.
    Additionally, alternative stacks on memory areas without exec
    permissions are supported too.
    
    This code is based on an initial implementation by Randolph Chung from 2006:
    https://lore.kernel.org/linux-parisc/4544A34A.6080700@tausq.org/
    
    I did the porting and lifted the code to current code base. Dave fixed
    the unwind code so that gdb and glibc are able to backtrace through the
    code. An additional patch to gdb will be pushed upstream by Dave.
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    Signed-off-by: default avatarDave Anglin <dave.anglin@bell.net>
    Cc: Randolph Chung <randolph@tausq.org>
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    df24e178
restart_syscall.S 647 Bytes