exit(3) is implemented by the runtime and performs a number of shutdown
actions before ultimately calling _exit(2) to terminate the program. We
historically named the syscall table entry exit rather than _exit,
but this requires special handling in libc/libsys to cause the _exit
symbol to exist while implementing exit in libc.
Declare the syscall as _exit and flow that through the system.
Because syscall(SYS_exit, code) is fairly widely used, add a specical
case to syscall.h generation to create SYS_exit when defining SYS__exit.
It's unfortunate to trade one special case for another, but this still
does reduce the number of special cases.
I've found no external uses of __sys_exit() so I've not bothered to
create a compatability version for this private symbol.