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 /* {

Reply via email to