about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-11-18 10:00:22 +0000
committerRoland McGrath <roland@gnu.org>1995-11-18 10:00:22 +0000
commita5a81fecc7194d050066265a15b1ba8bc3abc627 (patch)
treee4e3c1160fd41254b48678f71ece829b19dfb3dd /sysdeps
parent4cb202902d23b3c487016e516c70640c774b90d8 (diff)
downloadglibc-a5a81fecc7194d050066265a15b1ba8bc3abc627.tar.gz
glibc-a5a81fecc7194d050066265a15b1ba8bc3abc627.tar.xz
glibc-a5a81fecc7194d050066265a15b1ba8bc3abc627.zip
Fri Nov 17 17:57:00 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> cvs/libc-951119 cvs/libc-951118
	* sysdeps/generic/Makefile (make_siglist): Add missing backslash.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start_cleanup): New
	function.

	* hurd/hurdfault.c: Replace __libc_fatal calls with assert_perror.
	(_hurdsig_fault_init): Remove #if 0 from setting exception port.
	Insert send right for SIGEXC before thread_set_special_port.
	* hurd/hurdsig.c: Replace __libc_fatal calls with assert_perror.
	(_hurdsig_init): Remove #if 0 from setting exception port.

	* sysdeps/mach/hurd/ptrace.c (ptrace: PTRACE_CONT): Use
	HURD_MSGPORT_RPC macro.
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: