Bug#338182: kfreebsd-5: signals for linuxthreads internal operation

Aurelien Jarno aurelien at aurel32.net
Sun Nov 20 16:42:33 UTC 2005


Petr Salinger a écrit :
> Package:  kfreebsd-5  
> Severity: wishlist
> Tags: patch
> 
> Hi,
> 
> with attached patch for kernel and clone.c it should be possible leave 
> SIGUSR1 and SIGUSR2 free for user code.
> 
> Current libc will work with current and new kernel, 
> new libc will require new kernel.

Thanks for the patch, a new kernel has just been uploaded. A new glibc 
will follow soon, probably tomorrow. I have already a working one on my 
disk, but I need to make a clean patch first.


> --- clone.c.OLD 2005-11-08 17:25:02.000000000 +0100
> +++ clone.c     2005-11-08 17:32:18.000000000 +0100
> @@ -64,13 +64,13 @@
>  
>    if ((flags & CSIGNAL) != 0 && (flags & CSIGNAL) != SIGCHLD)
>      {
> -      /* This implementation of clone() supports only the SIGUSR1 signal.  */
> -      if ((flags & CSIGNAL) != SIGUSR1)
> +      /* This implementation of clone() supports only the 128 signals.  */
> +      if ((flags & CSIGNAL) & RFTHPNMASK)

This line has to be
+      if ((flags & CSIGNAL) & ~RFTHPNMASK)

>         {
>           __set_errno (EINVAL);
>           return -1;
>         }
> -      rfork_flags |= RFLINUXTHPN;
> +      rfork_flags |= (RFLINUXTHPN | ((flags & CSIGNAL) <<  RFTHPNSHIFT));
>      }
>  
>    if (flags & CLONE_VM)
> 
> 

Bye,
Aurelien

-- 
   .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
  : :' :  Debian developer           | Electrical Engineer
  `. `'   aurel32 at debian.org         | aurelien at aurel32.net
    `-    people.debian.org/~aurel32 | www.aurel32.net



More information about the Glibc-bsd-devel mailing list