summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/Makefile2
-rw-r--r--sysdeps/generic/dl-sysdep.c5
-rw-r--r--sysdeps/mach/hurd/ptrace.c19
3 files changed, 16 insertions, 10 deletions
diff --git a/sysdeps/generic/Makefile b/sysdeps/generic/Makefile
index dc31a50fcd..9dfc82c928 100644
--- a/sysdeps/generic/Makefile
+++ b/sysdeps/generic/Makefile
@@ -52,7 +52,7 @@ $(objpfx)siglist.c: $(objpfx)make_siglist
mv $@-tmp $@
$(objpfx)make_siglist: $(sysdep_dir)/generic/make_siglist.c
- $(native-compile)
+ $(native-compile) \
-DSIGNUM_H=\"`cd $(dir $(firstword $(wildcard \
$(+sysdep_dirs:%=%/signum.h)))); pwd`/signum.h\"
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index b7b895ffce..49379761ad 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -80,6 +80,11 @@ _dl_sysdep_start (void **start_argptr,
return user_entry;
}
+void
+_dl_sysdep_start_cleanup (void)
+{
+}
+
int
_dl_sysdep_open_zero_fill (void)
{
diff --git a/sysdeps/mach/hurd/ptrace.c b/sysdeps/mach/hurd/ptrace.c
index 90fd7649ee..f68d3b41ed 100644
--- a/sysdeps/mach/hurd/ptrace.c
+++ b/sysdeps/mach/hurd/ptrace.c
@@ -106,17 +106,15 @@ ptrace (enum __ptrace_request request, ... )
{
/* Send a DATA signal to PID, telling it to take the signal
normally even if it's traced. */
- error_t err; task_t task = __pid2task (pid);
+ error_t err;
+ task_t task = __pid2task (pid);
if (task == MACH_PORT_NULL)
return -1;
if (data == SIGKILL)
err = __task_terminate (task);
else
{
- mach_port_t msgport;
- err = __USEPORT (PROC, __proc_getmsgport (port, pid, &msgport));
-
- if (!err && addr != (void *) 1)
+ if (addr != (void *) 1)
{
/* Move the user thread's PC to ADDR. */
thread_t thread;
@@ -135,15 +133,18 @@ ptrace (enum __ptrace_request request, ... )
MACHINE_THREAD_STATE_FLAVOR,
(natural_t *) &state, count);
}
-
+
}
__mach_port_deallocate (__mach_task_self (), thread);
}
+ else
+ err = 0;
if (! err)
/* Tell the process to take the signal (or just resume if 0). */
- err = __msg_sig_post_untraced (msgport, data, task);
- __mach_port_deallocate (__mach_task_self (), msgport);
+ err = HURD_MSGPORT_RPC
+ (__USEPORT (PROC, __proc_getmsgport (port, pid, &msgport)),
+ 0, 0, __msg_sig_post_untraced (msgport, data, task));
}
__mach_port_deallocate (__mach_task_self (), task);
return err ? __hurd_fail (err) : 0;
@@ -201,7 +202,7 @@ ptrace (enum __ptrace_request request, ... )
}
__mach_port_deallocate (__mach_task_self (), task);
return err ? __hurd_fail (err) : 0;
- }
+ }
case PTRACE_PEEKTEXT:
case PTRACE_PEEKDATA: