remove support for syscall(2) -- the "indirection system call" because
authorderaadt <deraadt@openbsd.org>
Tue, 12 Dec 2023 15:30:55 +0000 (15:30 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 12 Dec 2023 15:30:55 +0000 (15:30 +0000)
commitcafeb892b121ee89c39c2b940e8ccd6950f50009
tree23d44daaee2609f91f2e276c43ea10cca7df103c
parent598bb1ad5c427bf64df2111a542b090db9913519
remove support for syscall(2) -- the "indirection system call" because
it is a dangerous alternative entry point for all system calls, and thus
incompatible with the precision system call entry point scheme we are
heading towards.  This has been a 3-year mission:
First perl needed a code-generated wrapper to fake syscall(2) as a giant
switch table, then all the ports were cleaned with relatively minor fixes,
except for "go".  "go" required two fixes -- 1) a framework issue with
old library versions, and 2) like perl, a fake syscall(2) wrapper to
handle ioctl(2) and sysctl(2) because "syscall(SYS_ioctl" occurs all over
the place in the "go" ecosystem because the "go developers" are plan9-loving
unix-hating folk who tried to build an ecosystem without allowing "ioctl".
ok kettenis, jsing, afresh1, sthen
24 files changed:
include/unistd.h
lib/libc/Symbols.list
lib/libc/hidden/unistd.h
lib/libc/sys/Makefile.inc
lib/libc/sys/syscall.2
sys/arch/alpha/alpha/trap.c
sys/arch/amd64/amd64/locore.S
sys/arch/amd64/amd64/trap.c
sys/arch/arm/arm/syscall.c
sys/arch/arm64/arm64/syscall.c
sys/arch/hppa/hppa/trap.c
sys/arch/i386/i386/trap.c
sys/arch/m88k/m88k/trap.c
sys/arch/mips64/mips64/trap.c
sys/arch/powerpc/powerpc/trap.c
sys/arch/powerpc64/powerpc64/syscall.c
sys/arch/riscv64/riscv64/syscall.c
sys/arch/sh/sh/trap.c
sys/arch/sparc64/sparc64/trap.c
sys/kern/kern_ktrace.c
sys/kern/syscalls.master
sys/sys/ktrace.h
sys/sys/syscall_mi.h
usr.bin/kdump/kdump.c