Subject: signal trampoline implementation choices
To: None <tech-kern@netbsd.org>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: tech-kern
Date: 04/16/2002 21:45:41
On NetBSD, the signal trampoline is copied by the kernel on the stack. I
recently discovered that IRIX uses a signal trampoline that is provided
by libc. The sigaction libc stub gives the signal trampoline address to
the sigaction system call, through a fourth argument.

Which are the motivation toward thoses different implementations? I
found this
for trampoline in libc: 
- the stack does not need to be executable

for trampoline in the kernel, copied on the stack:
- the kernel hands the signal trampoline, hence if the signal ABI
changed, the kernel contains the new version and libc does not have to
check kernel version for signal handling
- hacks in libc stubs looks bad

Anyone see another reason? It's just that I'd like to understand why
they done it that way.
-- 
Emmanuel Dreyfus
UNIX *is* user friendly. It is just a bit selective about his friends
manu@netbsd.org