Subject: kern/5162: Standard syscalls no longer found in sys/syscall.h
To: None <firstname.lastname@example.org>
From: Brett Slager <email@example.com>
Date: 03/15/1998 19:19:16
>Synopsis: Standard syscalls no longer found in sys/syscall.h
>Responsible: kern-bug-people (Kernel Bug People)
>Arrival-Date: Sun Mar 15 16:20:01 1998
>Originator: Brett Slager
>Release: NetBSD-current March 14, 1998
System: NetBSD snarf.thnet.com 1.3E NetBSD 1.3E (SNARF) #0: Sat Mar 14 18:54:13 EST 1998 firstname.lastname@example.org:/home/tortise/netbsd/src/sys/arch/i386/compile/SNARF i386
System calls whose interfaces have changed have been given new
names to support libc "versioning." Unfortunately, the old
standard names are no longer exported via sys/syscall.h.
This breaks some libraries and programs which rely on the syscall(2)
interface to complete intercepted system calls.
An example can be found in the mit-pthreads package (to which a
hack around SYS_fstat had recently been applied.) Mit-pthreads
attempts to find various syscalls by searching through sys/syscall.h
and fails to find SYS_fstat, a needed syscall.
Examine the code, or configure an unpatched mit-pthreads and notice
the missed syscall.
Make makesyscalls.sh generate aliases for the old names of
renamed calls for sys/syscall.h. Example:
/* syscall: "__fstat13" ret: "int" args: "int" "struct stat *" */
#define SYS___fstat13 279
#define SYS_fstat SYS___fstat13