aboutsummaryrefslogtreecommitdiff
path: root/hurd/hurdinit.c
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/hurdinit.c')
-rw-r--r--hurd/hurdinit.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c
index e7558c3ef7..cd37065f93 100644
--- a/hurd/hurdinit.c
+++ b/hurd/hurdinit.c
@@ -30,6 +30,7 @@ int _hurd_exec_flags;
struct hurd_port *_hurd_ports;
unsigned int _hurd_nports;
mode_t _hurd_umask;
+sigset_t _hurdsig_traced;
error_t
_hurd_ports_use (int which, error_t (*operate) (mach_port_t))
@@ -78,6 +79,9 @@ _hurd_init (int flags, char **argv,
else
_hurd_umask = CMASK;
+ if (intarraysize > INIT_TRACEMASK)
+ _hurdsig_traced = intarray[INIT_TRACEMASK];
+
/* All done with init ints and ports. */
__vm_deallocate (__mach_task_self (),
(vm_address_t) intarray,
@@ -147,11 +151,11 @@ _hurd_proc_init (char **argv)
here, like _hurd_pid, are already initialized. */
RUN_HOOK (_hurd_proc_subinit, ());
- if (_hurd_exec_flags & EXEC_TRACED)
+ if (_hurdsig_traced)
/* This process is "traced", meaning it should stop on signals or exec.
We are all set up now to handle signals. Stop ourselves, to inform
our parent (presumably a debugger) that the exec has completed. */
- __msg_sig_post (_hurd_msgport, SIGTRAP, __mach_task_self ());
+ __msg_sig_post (_hurd_msgport, SIGTRAP, 0, __mach_task_self ());
}
/* Called when we get a message telling us to change our proc server port. */