~ubuntu-branches/ubuntu/precise/eglibc/precise

« back to all changes in this revision

Viewing changes to debian/patches/hurd-i386/submitted-hurdsig-fixes-2.diff

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2011-10-04 17:48:26 UTC
  • mfrom: (216.1.23 oneiric)
  • Revision ID: package-import@ubuntu.com-20111004174826-2cyb9ewn3ucymlsx
Tags: 2.13-20ubuntu5
libc6-dev: Don't break the current {gnat,gcj}-4.4-base versons. LP: #853688.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
 
2
index 67037e8..44e067c 100644
 
3
--- a/hurd/hurdsig.c
 
4
+++ b/hurd/hurdsig.c
 
5
@@ -859,9 +859,7 @@ post_signal (struct hurd_sigstate *ss,
 
6
     }
 
7
 
 
8
   /* Handle receipt of a blocked signal, or any signal while stopped.  */
 
9
-  if (act != ignore &&         /* Signals ignored now are forgotten now.  */
 
10
-      __sigismember (&blocked, signo) ||
 
11
-      (signo != SIGKILL && _hurd_stopped))
 
12
+  if (__sigismember (&blocked, signo) || (signo != SIGKILL && _hurd_stopped))
 
13
     {
 
14
       mark_pending ();
 
15
       act = ignore;
 
16
diff --git a/sysdeps/mach/hurd/fork.c b/sysdeps/mach/hurd/fork.c
 
17
index a4f3055..c74998d 100644
 
18
--- a/sysdeps/mach/hurd/fork.c
 
19
+++ b/sysdeps/mach/hurd/fork.c
 
20
@@ -648,8 +648,10 @@ __fork (void)
 
21
       err = __USEPORT (PROC, __proc_getpids (port, &_hurd_pid, &_hurd_ppid,
 
22
                                             &_hurd_orphaned));
 
23
 
 
24
-      /* Forking clears the trace flag.  */
 
25
+      /* Forking clears the trace flag and pending masks.  */
 
26
       __sigemptyset (&_hurdsig_traced);
 
27
+      __sigemptyset (&_hurd_global_sigstate->pending);
 
28
+      __sigemptyset (&ss->pending);
 
29
 
 
30
       /* Run things that want to run in the child task to set up.  */
 
31
       RUN_HOOK (_hurd_fork_child_hook, ());
 
32
diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c
 
33
index 373da8d..2442e6f 100644
 
34
--- a/sysdeps/mach/hurd/spawni.c
 
35
+++ b/sysdeps/mach/hurd/spawni.c
 
36
@@ -241,7 +241,7 @@ __spawni (pid_t *pid, const char *file,
 
37
 
 
38
   _hurd_sigstate_lock (ss);
 
39
   ints[INIT_SIGMASK] = ss->blocked;
 
40
-  ints[INIT_SIGPENDING] = _hurd_sigstate_pending (ss); /* XXX really? */
 
41
+  ints[INIT_SIGPENDING] = 0;
 
42
   ints[INIT_SIGIGN] = 0;
 
43
   /* Unless we were asked to reset all handlers to SIG_DFL,
 
44
      pass down the set of signals that were set to SIG_IGN.  */