Needed for newer glibc, okay?
Index: linux_signal.c
===================================================================
RCS file: /cvs/src/sys/compat/linux/linux_signal.c,v
retrieving revision 1.14
diff -u -p -r1.14 linux_signal.c
--- linux_signal.c 9 Dec 2009 16:29:56 -0000 1.14
+++ linux_signal.c 19 Jun 2012 08:32:24 -0000
@@ -919,3 +919,28 @@ linux_sys_kill(p, v, retval)
SCARG(&ka, signum) = linux_to_bsd_sig[SCARG(uap, signum)];
return (sys_kill(p, &ka, retval));
}
+
+int
+linux_sys_tgkill(struct proc *p, void *v, register_t *retval)
+{
+ struct linux_sys_tgkill_args /* {
+ syscallarg(int) tgid;
+ syscallarg(int) tid;
+ syscallarg(int) sig;
+ }; */ *uap = v;
+
+ int error;
+ int sig;
+ struct sys_kill_args ka;
+
+ if (SCARG(uap, tgid) < 0 || SCARG(uap, tid) < 0)
+ return (EINVAL);
+
+ if ((error = linux_to_bsd_signal(SCARG(uap, sig), &sig)))
+ return (error);
+
+ /* XXX: Ignoring tgid, behaving like the obsolete linux_sys_tkill */
+ SCARG(&ka, pid) = SCARG(uap, tid);
+ SCARG(&ka, signum) = sig;
+ return (sys_kill(p, &ka, retval));
+}
Index: syscalls.master
===================================================================
RCS file: /cvs/src/sys/compat/linux/syscalls.master,v
retrieving revision 1.69
diff -u -p -r1.69 syscalls.master
--- syscalls.master 8 Jun 2012 14:28:23 -0000 1.69
+++ syscalls.master 19 Jun 2012 08:32:24 -0000
@@ -420,7 +420,7 @@
struct linux_statfs64 *sp); }
269 STD { int linux_sys_fstatfs64(int fd, \
struct linux_statfs64 *sp); }
-270 UNIMPL linux_sys_tgkill
+270 STD { int linux_sys_tgkill(int tgid, int tid, int sig); }
271 UNIMPL linux_sys_utimes
272 UNIMPL linux_sys_fadvise64_64
273 UNIMPL linux_sys_vserver