about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-02-12 10:00:30 +0000
committerRoland McGrath <roland@gnu.org>1996-02-12 10:00:30 +0000
commit63f89404026453219f74d425b0fb58a1fe59294b (patch)
tree97ee083bfba2802f54869cbe9babf3fbd3704e86
parent808c413c9020d2c50abdb494ff224f8ec7348871 (diff)
downloadglibc-63f89404026453219f74d425b0fb58a1fe59294b.tar.gz
glibc-63f89404026453219f74d425b0fb58a1fe59294b.tar.xz
glibc-63f89404026453219f74d425b0fb58a1fe59294b.zip
* hurd/hurdfault.c (_hurdsig_fault_init): Set qlimit on cvs/libc-960212
 	FORWARD_SIGEXC to one.  Uncomment setting of thread exc port, and
 	move it to last thing.
-rw-r--r--ChangeLog4
-rw-r--r--hurd/hurdfault.c22
-rw-r--r--sysdeps/unix/bsd/bsd4.4/sstk.S23
-rw-r--r--sysdeps/unix/bsd/osf/alpha/getdents.S26
-rw-r--r--sysdeps/unix/bsd/ultrix4/getsysinfo.S26
-rw-r--r--sysdeps/unix/bsd/ultrix4/mips/sigvec.S25
-rw-r--r--sysdeps/unix/bsd/ultrix4/mips/sigvec.c (renamed from sysdeps/unix/bsd/ultrix4/mips/sigtramp.c)3
-rw-r--r--sysdeps/unix/bsd/ultrix4/mips/syscalls.list (renamed from sysdeps/unix/bsd/hp/m68k/syscalls.list)2
-rw-r--r--sysdeps/unix/bsd/ultrix4/waitpid.S25
-rw-r--r--sysdeps/unix/sysv/irix4/wait3.S1
-rw-r--r--sysdeps/unix/sysv/sysv4/__waitid.S25
-rw-r--r--sysdeps/unix/sysv/sysv4/fchdir.S2
-rw-r--r--sysdeps/unix/sysv/sysv4/setegid.S2
-rw-r--r--sysdeps/unix/sysv/sysv4/seteuid.S2
-rw-r--r--sysdeps/unix/sysv/sysv4/sigaltstack.S2
-rw-r--r--sysdeps/unix/sysv/sysv4/solaris2/utimes.S2
16 files changed, 23 insertions, 169 deletions
diff --git a/ChangeLog b/ChangeLog
index a8929ca029..740659431f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -35,6 +35,10 @@ Mon Feb 12 03:10:41 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>
 	* sysdeps/unix/sysv/sysv4/sigaltstack.S: File removed.
 	* sysdeps/unix/sysv/sysv4/solaris2/utimes.S: File removed.
 
+	* hurd/hurdfault.c (_hurdsig_fault_init): Set qlimit on
+ 	FORWARD_SIGEXC to one.  Uncomment setting of thread exc port, and
+ 	move it to last thing.
+
 Sat Feb 10 05:57:08 1996  Roland McGrath  <roland@charlie-brown.gnu.ai.mit.edu>
 
 	* sysdeps/generic/make_siglist.c: #undef _SIGNAL_H before defining it.
diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c
index 2a30db085e..bb6fa9576d 100644
--- a/hurd/hurdfault.c
+++ b/hurd/hurdfault.c
@@ -113,6 +113,8 @@ _hurdsig_fault_init (void)
   struct machine_thread_state state;
   mach_port_t sigexc;
 
+  /* Allocate a port to receive signal thread exceptions.
+     We will move this receive right to the proc server.  */
   err = __mach_port_allocate (__mach_task_self (),
 			      MACH_PORT_RIGHT_RECEIVE, &sigexc);
   assert_perror (err);
@@ -120,16 +122,20 @@ _hurdsig_fault_init (void)
 			      MACH_PORT_RIGHT_RECEIVE, &forward_sigexc);
   assert_perror (err);
 
+  /* Allocate a port to receive the exception msgs forwarded
+     from the proc server.  */
   err = __mach_port_insert_right (__mach_task_self (), sigexc,
 				  sigexc, MACH_MSG_TYPE_MAKE_SEND);
   assert_perror (err);
-#if 0				/* XXX gdb bites */
-  err = __thread_set_special_port (_hurd_msgport_thread,
-				   THREAD_EXCEPTION_PORT, sigexc);
-#endif
-  __mach_port_deallocate (__mach_task_self (), sigexc);
+
+  /* Set the queue limit for this port to just one.  The proc server will
+     notice if we ever get a second exception while one remains queued and
+     unreceived, and decide we are hopelessly buggy.  */
+  err = __mach_port_set_qlimit (__mach_task_self (), forward_sigexc, 1);
   assert_perror (err);
 
+  /* This state will be restored when we fault.
+     It runs the function above.  */
   memset (&state, 0, sizeof state);
   MACHINE_THREAD_STATE_SET_PC (&state, faulted);
   MACHINE_THREAD_STATE_SET_SP (&state, faultstack, sizeof faultstack);
@@ -143,5 +149,11 @@ _hurdsig_fault_init (void)
 			       (natural_t *) &state,
 			       MACHINE_THREAD_STATE_COUNT));
   assert_perror (err);
+
+  /* Direct signal thread exceptions to the proc server.  */
+  err = __thread_set_special_port (_hurd_msgport_thread,
+				   THREAD_EXCEPTION_PORT, sigexc);
+  __mach_port_deallocate (__mach_task_self (), sigexc);
+  assert_perror (err);
 }
 
diff --git a/sysdeps/unix/bsd/bsd4.4/sstk.S b/sysdeps/unix/bsd/bsd4.4/sstk.S
deleted file mode 100644
index c73840f47e..0000000000
--- a/sysdeps/unix/bsd/bsd4.4/sstk.S
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <sysdep.h>
-
-/* XXX: not 0 args */
-SYSCALL (sstk, 0)
-	ret
diff --git a/sysdeps/unix/bsd/osf/alpha/getdents.S b/sysdeps/unix/bsd/osf/alpha/getdents.S
deleted file mode 100644
index df2c26db85..0000000000
--- a/sysdeps/unix/bsd/osf/alpha/getdents.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
-   Contributed by Brendan Kehoe (brendan@zen.org).
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <sysdep.h>
-
-SYSCALL__ (getdirentries, 4)
-	ret
-	.end __getdirentries
-
-weak_alias (__getdirentries, getdirentries)
-
diff --git a/sysdeps/unix/bsd/ultrix4/getsysinfo.S b/sysdeps/unix/bsd/ultrix4/getsysinfo.S
deleted file mode 100644
index 41718ba228..0000000000
--- a/sysdeps/unix/bsd/ultrix4/getsysinfo.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-   Contributed by Ian Lance Taylor (ian@airs.com).
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-/* Get various sorts of information about the system.
-   This is an Ultrix only call.  */
-
-#include <sysdep.h>
-
-SYSCALL__ (getsysinfo, 5)
-	ret
-	.end __getsysinfo
diff --git a/sysdeps/unix/bsd/ultrix4/mips/sigvec.S b/sysdeps/unix/bsd/ultrix4/mips/sigvec.S
deleted file mode 100644
index 4d7aa4409c..0000000000
--- a/sysdeps/unix/bsd/ultrix4/mips/sigvec.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <sysdep.h>
-
-/* __sigvec is defined by sigtramp.c.  */
-
-PSEUDO (__raw_sigvec, sigvec, 3)
-	ret
-	.end __raw_sigvec
diff --git a/sysdeps/unix/bsd/ultrix4/mips/sigtramp.c b/sysdeps/unix/bsd/ultrix4/mips/sigvec.c
index 1bb208dd8b..6969594c32 100644
--- a/sysdeps/unix/bsd/ultrix4/mips/sigtramp.c
+++ b/sysdeps/unix/bsd/ultrix4/mips/sigvec.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -36,7 +36,6 @@ Cambridge, MA 02139, USA.  */
 /* The user's signal handler is called with three arguments.  */
 typedef void (*handler_type) (int sig, int code, struct sigcontext *);
 
-/* Defined in __raw_sigvec.S.  */
 extern int EXFUN(__raw_sigvec, (int sig, CONST struct sigvec *vec,
 				struct sigvec *ovec,
 				void (*)(int sig, int code,
diff --git a/sysdeps/unix/bsd/hp/m68k/syscalls.list b/sysdeps/unix/bsd/ultrix4/mips/syscalls.list
index b9dca13bf7..f7d0bba6a8 100644
--- a/sysdeps/unix/bsd/hp/m68k/syscalls.list
+++ b/sysdeps/unix/bsd/ultrix4/mips/syscalls.list
@@ -1,3 +1,3 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-getdents	-	getdirentries	4	__getdirentries	getdirentries
+raw-sigvec	sigvec	sigvec		4	__raw_sigvec
diff --git a/sysdeps/unix/bsd/ultrix4/waitpid.S b/sysdeps/unix/bsd/ultrix4/waitpid.S
deleted file mode 100644
index 3470da783e..0000000000
--- a/sysdeps/unix/bsd/ultrix4/waitpid.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 1992, 1995 Free Software Foundation, Inc.
-   Contributed by Brendan Kehoe (brendan@zen.org).
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <sysdep.h>
-
-SYSCALL__ (waitpid, 3)
-	ret
-	.end __waitpid
-
-weak_alias (__waitpid, waitpid)
diff --git a/sysdeps/unix/sysv/irix4/wait3.S b/sysdeps/unix/sysv/irix4/wait3.S
deleted file mode 100644
index 54065aefdf..0000000000
--- a/sysdeps/unix/sysv/irix4/wait3.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/bsd/ultrix4/wait3.S>
diff --git a/sysdeps/unix/sysv/sysv4/__waitid.S b/sysdeps/unix/sysv/sysv4/__waitid.S
deleted file mode 100644
index 845bec85e2..0000000000
--- a/sysdeps/unix/sysv/sysv4/__waitid.S
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-   Contributed by Brendan Kehoe (brendan@zen.org).
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <sysdep.h>
-
-/* XXX */
-#define SYS_waitid SYS_waitsys
-
-SYSCALL__ (waitid, 3)
-	ret
diff --git a/sysdeps/unix/sysv/sysv4/fchdir.S b/sysdeps/unix/sysv/sysv4/fchdir.S
deleted file mode 100644
index ef11d55bc0..0000000000
--- a/sysdeps/unix/sysv/sysv4/fchdir.S
+++ /dev/null
@@ -1,2 +0,0 @@
-/* SVR4 uses the BSD 4.4 fchdir(2) syscall.  */
-#include <sysdeps/unix/bsd/bsd4.4/fchdir.S>
diff --git a/sysdeps/unix/sysv/sysv4/setegid.S b/sysdeps/unix/sysv/sysv4/setegid.S
deleted file mode 100644
index f8fd7633a5..0000000000
--- a/sysdeps/unix/sysv/sysv4/setegid.S
+++ /dev/null
@@ -1,2 +0,0 @@
-/* SVR4 uses the BSD 4.4 setegid() system call.  */
-#include <sysdeps/unix/bsd/bsd4.4/setegid.S>
diff --git a/sysdeps/unix/sysv/sysv4/seteuid.S b/sysdeps/unix/sysv/sysv4/seteuid.S
deleted file mode 100644
index 4ff110610f..0000000000
--- a/sysdeps/unix/sysv/sysv4/seteuid.S
+++ /dev/null
@@ -1,2 +0,0 @@
-/* SVR4 uses the BSD 4.4 seteuid() system call.  */
-#include <sysdeps/unix/bsd/bsd4.4/seteuid.S>
diff --git a/sysdeps/unix/sysv/sysv4/sigaltstack.S b/sysdeps/unix/sysv/sysv4/sigaltstack.S
deleted file mode 100644
index f7cf0d57f4..0000000000
--- a/sysdeps/unix/sysv/sysv4/sigaltstack.S
+++ /dev/null
@@ -1,2 +0,0 @@
-/* SVR4 uses the BSD 4.4 sigaltstack syscall.  */
-#include <sysdeps/unix/bsd/bsd4.4/sigaltstack.S>
diff --git a/sysdeps/unix/sysv/sysv4/solaris2/utimes.S b/sysdeps/unix/sysv/sysv4/solaris2/utimes.S
deleted file mode 100644
index 54a043c835..0000000000
--- a/sysdeps/unix/sysv/sysv4/solaris2/utimes.S
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Solaris has the BSD `utimes' function.  */
-#include <sysdeps/unix/bsd/utimes.S>