It's been five months, a release, and two libc major bumps since we split
thrkill(2) out of kill(2), so I think we can remove support for the 5.8
kill(2) syscall. I don't think we *really* support running 5.8 binaries
on a -current kernel.
ok?
Philip
Index: syscalls.master
===================================================================
RCS file: /data/src/openbsd/src/sys/kern/syscalls.master,v
retrieving revision 1.169
diff -u -p -r1.169 syscalls.master
--- syscalls.master 30 Mar 2016 07:49:11 -0000 1.169
+++ syscalls.master 11 Apr 2016 03:18:29 -0000
@@ -104,7 +104,7 @@
34 STD { int sys_chflags(const char *path, u_int flags); }
35 STD { int sys_fchflags(int fd, u_int flags); }
36 STD { void sys_sync(void); }
-37 STD { int sys_o58_kill(int pid, int signum); }
+37 OBSOL o58_kill
38 STD { int sys_stat(const char *path, struct stat *ub); }
39 STD { pid_t sys_getppid(void); }
40 STD { int sys_lstat(const char *path, struct stat *ub); }
Index: kern_pledge.c
===================================================================
RCS file: /data/src/openbsd/src/sys/kern/kern_pledge.c,v
retrieving revision 1.162
diff -u -p -r1.162 kern_pledge.c
--- kern_pledge.c 30 Mar 2016 07:49:11 -0000 1.162
+++ kern_pledge.c 11 Apr 2016 03:17:06 -0000
@@ -231,7 +231,6 @@ const uint64_t pledge_syscalls[SYS_MAXSY
* Can kill self with "stdio". Killing another pid
* requires "proc"
*/
- [SYS_o58_kill] = PLEDGE_STDIO,
[SYS_kill] = PLEDGE_STDIO,
/*
Index: kern_sig.c
===================================================================
RCS file: /data/src/openbsd/src/sys/kern/kern_sig.c,v
retrieving revision 1.196
diff -u -p -r1.196 kern_sig.c
--- kern_sig.c 29 Mar 2016 08:46:08 -0000 1.196
+++ kern_sig.c 11 Apr 2016 03:17:24 -0000
@@ -560,63 +560,6 @@ sys_sigaltstack(struct proc *p, void *v,
}
int
-sys_o58_kill(struct proc *cp, void *v, register_t *retval)
-{
- struct sys_o58_kill_args /* {
- syscallarg(int) pid;
- syscallarg(int) signum;
- } */ *uap = v;
- struct proc *p;
- int pid = SCARG(uap, pid);
- int signum = SCARG(uap, signum);
- int error;
-
- if (pid <= THREAD_PID_OFFSET && (error = pledge_kill(cp, pid)) != 0)
- return (error);
- if (((u_int)signum) >= NSIG)
- return (EINVAL);
- if (pid > 0) {
- enum signal_type type = SPROCESS;
-
- /*
- * If the target pid is > THREAD_PID_OFFSET then this
- * must be a kill of another thread in the same process.
- * Otherwise, this is a process kill and the target must
- * be a main thread.
- */
- if (pid > THREAD_PID_OFFSET) {
- if ((p = pfind(pid - THREAD_PID_OFFSET)) == NULL)
- return (ESRCH);
- if (p->p_p != cp->p_p)
- return (ESRCH);
- type = STHREAD;
- } else {
- /* XXX use prfind() */
- if ((p = pfind(pid)) == NULL)
- return (ESRCH);
- if (p->p_flag & P_THREAD)
- return (ESRCH);
- if (!cansignal(cp, p->p_p, signum))
- return (EPERM);
- }
-
- /* kill single process or thread */
- if (signum)
- ptsignal(p, signum, type);
- return (0);
- }
- switch (pid) {
- case -1: /* broadcast signal */
- return (killpg1(cp, signum, 0, 1));
- case 0: /* signal own process group */
- return (killpg1(cp, signum, 0, 0));
- default: /* negative explicit process group */
- return (killpg1(cp, signum, -pid, 0));
- }
- /* NOTREACHED */
-}
-
-int
sys_kill(struct proc *cp, void *v, register_t *retval)
{
struct sys_kill_args /* {