diff -u --recursive --new-file libc-linux/libinux/bdflush.S libc-linux-0.35davidm/libinux/bdflush.S
--- libc-linux/libinux/bdflush.S	Sat Jul 22 04:35:27 1995
+++ libc-linux-0.35davidm/libinux/bdflush.S	Wed Jul 26 23:55:43 1995
@@ -6,4 +6,3 @@
 
 SYSCALL (bdflush, 2)
 	RETSYS(bdflush)
-
diff -u --recursive --new-file libc-linux/libinux/create_module.S libc-linux-0.35davidm/libinux/create_module.S
--- libc-linux/libinux/create_module.S	Sat Jul 22 04:35:36 1995
+++ libc-linux-0.35davidm/libinux/create_module.S	Thu Jul 27 06:43:00 1995
@@ -4,5 +4,5 @@
 #define SYS_create_module 952
 #endif
 
-SYSCALL (create_module, 2)
+SYSCALL (create_module, 3)
 	RETSYS(create_module)
diff -u --recursive --new-file libc-linux/libinux/delete_module.S libc-linux-0.35davidm/libinux/delete_module.S
--- libc-linux/libinux/delete_module.S	Sat Jul 22 04:35:47 1995
+++ libc-linux-0.35davidm/libinux/delete_module.S	Wed Jul 26 23:55:31 1995
@@ -6,4 +6,3 @@
 
 SYSCALL (delete_module, 3)
 	RETSYS(delete_module)
-
diff -u --recursive --new-file libc-linux/libio/fileops.c libc-linux-0.35davidm/libio/fileops.c
--- libc-linux/libio/fileops.c	Wed May 17 00:41:02 1995
+++ libc-linux-0.35davidm/libio/fileops.c	Fri Aug  4 03:57:44 1995
@@ -278,6 +278,7 @@
     _IO_flush_all_linebuffered();
 
   _IO_switch_to_get_mode(fp);
+  fp->_IO_read_end = fp->_IO_read_ptr; /* make sure len == 0 in case read gets interrupted */
 
   count = fp->_jumps->__read(fp, fp->_IO_buf_base,
 			     fp->_IO_buf_end - fp->_IO_buf_base);
diff -u --recursive --new-file libc-linux/malloc-930716/malloc.h libc-linux-0.35davidm/malloc-930716/malloc.h
--- libc-linux/malloc-930716/malloc.h	Sat Jul 22 21:28:56 1995
+++ libc-linux-0.35davidm/malloc-930716/malloc.h	Wed Jul 26 19:07:48 1995
@@ -26,9 +26,9 @@
    processors. */
 #define INT_BIT (CHAR_BIT * sizeof (int))
 #ifdef __alpha__
-#define BLOCKLOG 13
+# define BLOCKLOG 13
 #else
-#define BLOCKLOG (INT_BIT > 16 ? 12 : 9)
+# define BLOCKLOG (INT_BIT > 16 ? 12 : 9)
 #endif
 #define BLOCKSIZE (1 << BLOCKLOG)
 #define BLOCKIFY(SIZE) (((SIZE) + BLOCKSIZE - 1) / BLOCKSIZE)
diff -u --recursive --new-file libc-linux/sysdeps/alpha/Makefile libc-linux-0.35davidm/sysdeps/alpha/Makefile
--- libc-linux/sysdeps/alpha/Makefile	Sat Jul 22 04:05:02 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/Makefile	Fri Sep 15 07:42:59 1995
@@ -26,7 +26,7 @@
 SRC2S= 
 
 SRC3S= __divl.S __divlu.S __divq.S __divqu.S __reml.S __remlu.S \
-	__remq.S __remqu.S __hton.S divglobl.S strlen.S
+	__remq.S __remqu.S __hton.S strlen.S
 
 SRCS= $(SRC1S) $(SRC2S) $(SRC3S)
 ASMS= $(SRC1S:.c=.s) $(SCR2S:.c=.s) $(SRC3S:.S=.s)
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__divl.S libc-linux-0.35davidm/sysdeps/alpha/__divl.S
--- libc-linux/sysdeps/alpha/__divl.S	Sat Jun  3 22:54:28 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__divl.S	Fri Sep 15 05:48:08 1995
@@ -1,109 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __divl.S,v $
-# Revision 1.1  1994/04/01  18:58:28  paradis
-# Initial revision
-#
- * Revision 1.2.2.9  1992/12/22  14:33:32  Ken_Lesniak
- *      fixup prolog and register usage to work with exception handling.
- *      modify divide by zero trap to return 0 if continued
- *      [92/12/21  11:39:26  Ken_Lesniak]
- *
- * Revision 1.2.2.8  92/12/08  18:03:34  Ken_Lesniak
- *      absolute value of inputs should be done in 64 bits
- *      [92/12/08  18:01:59  Ken_Lesniak]
- *
- * Revision 1.2.2.7  92/11/20  16:37:39  Ken_Lesniak
- *      rearrange so we save and restore one less register
- *      [92/11/20  16:35:44  Ken_Lesniak]
- *
- * Revision 1.2.2.6  92/11/04  15:31:37  Ken_Lesniak
- *      total re-write
- *      [92/11/04  14:44:46  Ken_Lesniak]
- *
- * Revision 1.2.2.5  92/08/26  10:48:51  Ken_Lesniak
- *      return result in $27
- *      [92/08/26  10:25:10  Ken_Lesniak]
- *
- * Revision 1.2.2.4  92/06/11  08:41:49  Mike_Rickabaugh
- *      Updated divide/mod routines to use registers , , and .
- *      [92/06/11  08:36:38  Mike_Rickabaugh]
- *
- * Revision 1.2.2.3  92/04/13  14:58:39  Mike_Rickabaugh
- *      Altered divide and friends to be prepared for both calling standards.
- *      [92/04/13  14:55:26  Mike_Rickabaugh]
- *
- * Revision 1.2.2.2  92/02/20  17:00:55  Mike_Rickabaugh
- *      Initial 3.10 version.
- *      [92/02/20  16:30:54  Mike_Rickabaugh]
- *
- * $EndLog$
- */
-
-/*
- * Signed division
- *
- * On input:
- *      $23/t9  = return address (RA)
- *      $24/t10 = dividend (numerator) (A)
- *      $25/t11 = divisor (denominator) (B)
- *      Note that the high 32 bits of r24 and r25 are ignored.
- *
- * On Return:
- *      $27/t12 = quotient (Q)
- *      All other registers, except $at and $gp, are preserved
- */
-
-#define ENTRY \
-        .globl  __divl; \
-        .ent    __divl; \
-__divl: ; \
-        ldgp    gp, 0(pv); \
-        lda     sp, -8*8(sp); \
-        stq     RA, 0*8(sp); \
-        stq     t0, 1*8(sp); \
-        stq     t1, 2*8(sp); \
-        stq     t2, 3*8(sp); \
-        stq     t3, 4*8(sp); \
-        stq     a0, 5*8(sp); \
-        stq     A, 6*8(sp); \
-        stq     B, 7*8(sp); \
-        .prologue 1; \
-        addl    A, 0, A         /* make sure dividend is in canonical form */; \
-        addl    B, 0, B         /* make sure divisor is in canonical form */; \
-        /* check for INT_MIN / -1 */; \
-        addl    B, 1, t0        /* 0 if B == -1; != 0 otherwise */; \
-        bis     A, A, t1        /* copy dividend */; \
-        cmovne  t0, 0, t1       /* replace w/ 0 if divisor != -1 */; \
-        sublv   zero, t1, t1    /* trap if dividend = INT_MIN */; \
-        subq    zero, A, t0     /* negate dividend */; \
-        cmovlt  A, t0, A        /* get 64-bit absolute value of dividend */; \
-        subq    zero, B, t1     /* negate divisor */; \
-        cmovlt  B, t1, B        /* get 64-bit absolute value of divisor */
-
-#define THIRTYTWOBIT 1
-
-#define RETURN \
-        addl    Q, 0, Q; \
-        subl    zero, Q, AT; \
-        ldq     A, 6*8(sp); \
-        ldq     B, 7*8(sp); \
-        xor     A, B, t0        /* compute sign of quotient */; \
-        addl    t0, 0, t0; \
-        cmovlt  t0, AT, Q; \
-        ldq     RA, 0*8(sp); \
-        ldq     t0, 1*8(sp); \
-        ldq     t1, 2*8(sp); \
-        ldq     t2, 3*8(sp); \
-        ldq     t3, 4*8(sp); \
-        ldq     a0, 5*8(sp); \
-        lda     sp, 8*8(sp); \
-        ret     zero, (RA), 1
-
-#define END
+#define IS_REM		0
+#define SIZE		4
+#define SIGNED		1
+#define FUNC_NAME	__divl
 
 #include "divrem.S"
-
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__divlu.S libc-linux-0.35davidm/sysdeps/alpha/__divlu.S
--- libc-linux/sysdeps/alpha/__divlu.S	Sat Jun  3 22:54:41 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__divlu.S	Fri Sep 15 05:48:31 1995
@@ -1,104 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __divlu.s,v $
- * Revision 1.2.2.11  1993/01/19  15:27:47  Ken_Lesniak
- * 	make sure result is in 32-bit canonical form on return
- * 	[93/01/15  10:45:45  Ken_Lesniak]
- *
- * Revision 1.2.2.10  92/12/22  14:33:40  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:39:38  Ken_Lesniak]
- * 
- * Revision 1.2.2.9  92/11/04  15:31:47  Ken_Lesniak
- * 	total re-write
- * 	[92/11/04  14:45:11  Ken_Lesniak]
- * 
- * Revision 1.2.2.8  92/08/26  10:48:58  Ken_Lesniak
- * 	return result in $27
- * 	[92/08/26  10:25:22  Ken_Lesniak]
- * 
- * Revision 1.2.2.7  92/06/11  08:42:01  Mike_Rickabaugh
- * 	Updated divide/mod routines to use registers , , and .
- * 	[92/06/11  08:36:49  Mike_Rickabaugh]
- * 
- * Revision 1.2.2.6  92/04/13  14:58:47  Mike_Rickabaugh
- * 	Altered divide and friends to be prepared for both calling standards.
- * 	[92/04/13  14:55:36  Mike_Rickabaugh]
- * 
- * Revision 1.2.2.5  92/03/04  12:03:20  Brett_Sampson
- * 	actually changed the save mask
- * 	[92/03/04  12:02:46  Brett_Sampson]
- * 
- * Revision 1.2.2.4  92/03/04  11:59:06  Brett_Sampson
- * 	fixed register mask to represent saving
- * 	t4 also fixed typo so t4 would be restored
- * 	[92/03/04  11:58:25  Brett_Sampson]
- * 
- * Revision 1.2.2.3  92/03/03  20:09:32  Brett_Sampson
- * 	Save register t4 over the divide operation.
- * 	[92/03/03  20:06:39  Brett_Sampson]
- * 
- * Revision 1.2.2.2  92/02/20  17:02:44  Mike_Rickabaugh
- * 	Initial 3.10 version.
- * 	[92/02/20  16:33:05  Mike_Rickabaugh]
- * 
- * $EndLog$
- */
-
-/*
- * Unsigned division
- *
- * On input:
- *	$23/t9  = return address (RA)
- *	$24/t10 = dividend (numerator) (A)
- *	$25/t11 = divisor (denominator) (B)
- *	Note that the high 32 bits of r24 and r25 are ignored.
- *
- * On Return:
- *	$27/t12 = quotient (Q)
- *	All other registers, except $at and $gp, must be preserved
- */
-
-#define ENTRY \
-	.globl	__divlu; \
-	.ent	__divlu; \
-__divlu: ; \
-	ldgp	gp, 0(pv); \
-	lda	sp, -8*8(sp); \
-	stq	RA, 0*8(sp); \
-	stq	t0, 1*8(sp); \
-	stq	t1, 2*8(sp); \
-	stq	t2, 3*8(sp); \
-	stq	t3, 4*8(sp); \
-	stq	a0, 5*8(sp); \
-	stq	A, 6*8(sp); \
-	stq	B, 7*8(sp); \
-	.prologue 1; \
-	zap	A, 0xf0, A; \
-	zap	B, 0xf0, B
-
-#define UNSIGNED 1
-
-#define THIRTYTWOBIT 1
-
-#define RETURN \
-	addl	Q, 0, Q; \
-	ldq	RA, 0*8(sp); \
-	ldq	t0, 1*8(sp); \
-	ldq	t1, 2*8(sp); \
-	ldq	t2, 3*8(sp); \
-	ldq	t3, 4*8(sp); \
-	ldq	a0, 5*8(sp); \
-	ldq	A, 6*8(sp); \
-	ldq	B, 7*8(sp); \
-	lda	sp, 8*8(sp); \
-	ret	zero, (RA), 1
-
-#define END 
-
+#define IS_REM		0
+#define SIZE		4
+#define SIGNED		0
+#define FUNC_NAME	__divlu
 
 #include "divrem.S"
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__divq.S libc-linux-0.35davidm/sysdeps/alpha/__divq.S
--- libc-linux/sysdeps/alpha/__divq.S	Sat Jun  3 22:54:53 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__divq.S	Fri Sep 15 05:48:40 1995
@@ -1,75 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __divqu.s,v $
- * Revision 1.2.2.7  1992/12/22  14:33:56  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:40:00  Ken_Lesniak]
- *
- * Revision 1.2.2.6  92/11/04  15:32:04  Ken_Lesniak
- * 	total re-write
- * 	[92/11/04  14:45:36  Ken_Lesniak]
- * 
- * Revision 1.2.2.5  92/08/26  10:49:12  Ken_Lesniak
- * 	return result in $27
- * 	[92/08/26  10:26:06  Ken_Lesniak]
- * 
- * Revision 1.2.2.4  92/06/11  08:42:22  Mike_Rickabaugh
- * 	Updated divide/mod routines to use registers , , and .
- * 	[92/06/11  08:37:18  Mike_Rickabaugh]
- * 
- * Revision 1.2.2.3  92/04/13  14:59:11  Mike_Rickabaugh
- * 	Altered divide and friends to be prepared for both calling standards.
- * 	[92/04/13  14:56:01  Mike_Rickabaugh]
- * 
- * Revision 1.2.2.2  92/02/20  17:07:06  Mike_Rickabaugh
- * 	Initial 3.10 version.
- * 	[92/02/20  16:42:18  Mike_Rickabaugh]
- * 
- * $EndLog$
- */
-
-/*
- * Unsigned division
- *
- * On input:
- *	$23/t9  = return address (RA)
- *	$24/t10 = dividend (numerator) (A)
- *	$25/t11 = divisor (denominator) (B)
- *
- * On Return:
- *	$27/t12 = quotient (Q)
- *	All other registers, except $at and $gp, must be preserved
- */
-
-#define ENTRY \
-	.globl	__divq; \
-	.ent	__divq; \
-__divq: ; \
-	ldgp	gp, 0(pv); \
-	lda	sp, -6*8(sp); \
-	stq	RA, 0*8(sp); \
-	stq	t0, 1*8(sp); \
-	stq	t1, 2*8(sp); \
-	stq	t2, 3*8(sp); \
-	stq	t3, 4*8(sp); \
-	stq	a0, 5*8(sp); \
-	.prologue 1
-
-#define RETURN \
-	ldq	RA, 0*8(sp); \
-	ldq	t0, 1*8(sp); \
-	ldq	t1, 2*8(sp); \
-	ldq	t2, 3*8(sp); \
-	ldq	t3, 4*8(sp); \
-	ldq	a0, 5*8(sp); \
-	lda	sp, 6*8(sp); \
-	ret	zero, (RA), 1
-
-#define END
-
+#define IS_REM		0
+#define SIZE		8
+#define SIGNED		1
+#define FUNC_NAME	__divq
 
 #include "divrem.S"
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__divqu.S libc-linux-0.35davidm/sysdeps/alpha/__divqu.S
--- libc-linux/sysdeps/alpha/__divqu.S	Sat Jun  3 22:55:00 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__divqu.S	Fri Sep 15 05:49:19 1995
@@ -1,76 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __divqu.s,v $
- * Revision 1.2.2.7  1992/12/22  14:33:56  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:40:00  Ken_Lesniak]
- *
- * Revision 1.2.2.6  92/11/04  15:32:04  Ken_Lesniak
- * 	total re-write
- * 	[92/11/04  14:45:36  Ken_Lesniak]
- * 
- * Revision 1.2.2.5  92/08/26  10:49:12  Ken_Lesniak
- * 	return result in $27
- * 	[92/08/26  10:26:06  Ken_Lesniak]
- * 
- * Revision 1.2.2.4  92/06/11  08:42:22  Mike_Rickabaugh
- * 	Updated divide/mod routines to use registers , , and .
- * 	[92/06/11  08:37:18  Mike_Rickabaugh]
- * 
- * Revision 1.2.2.3  92/04/13  14:59:11  Mike_Rickabaugh
- * 	Altered divide and friends to be prepared for both calling standards.
- * 	[92/04/13  14:56:01  Mike_Rickabaugh]
- * 
- * Revision 1.2.2.2  92/02/20  17:07:06  Mike_Rickabaugh
- * 	Initial 3.10 version.
- * 	[92/02/20  16:42:18  Mike_Rickabaugh]
- * 
- * $EndLog$
- */
-
-/*
- * Unsigned division
- *
- * On input:
- *	$23/t9  = return address (RA)
- *	$24/t10 = dividend (numerator) (A)
- *	$25/t11 = divisor (denominator) (B)
- *
- * On Return:
- *	$27/t12 = quotient (Q)
- *	All other registers, except $at and $gp, must be preserved
- */
-
-#define ENTRY \
-	.globl	__divqu; \
-	.ent	__divqu; \
-__divqu: ; \
-	ldgp	gp, 0(pv); \
-	lda	sp, -6*8(sp); \
-	stq	RA, 0*8(sp); \
-	stq	t0, 1*8(sp); \
-	stq	t1, 2*8(sp); \
-	stq	t2, 3*8(sp); \
-	stq	t3, 4*8(sp); \
-	stq	a0, 5*8(sp); \
-	.prologue 1
-
-#define UNSIGNED 1
-
-#define RETURN \
-	ldq	RA, 0*8(sp); \
-	ldq	t0, 1*8(sp); \
-	ldq	t1, 2*8(sp); \
-	ldq	t2, 3*8(sp); \
-	ldq	t3, 4*8(sp); \
-	ldq	a0, 5*8(sp); \
-	lda	sp, 6*8(sp); \
-	ret	zero, (RA), 1
-
-#define END
+#define IS_REM		0
+#define SIZE		8
+#define SIGNED		0
+#define FUNC_NAME	__divqu
 
 #include "divrem.S"
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__hton.S libc-linux-0.35davidm/sysdeps/alpha/__hton.S
--- libc-linux/sysdeps/alpha/__hton.S	Wed May 17 00:41:07 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__hton.S	Sat Sep 16 17:18:46 1995
@@ -4,8 +4,8 @@
  * good at this 8-) 
  */
 
-#include <alpha/pal.h>
 #include <alpha/regdef.h>
+#include <asm/pal.h>
 
 	.globl	__htonl
 	.ent	__htonl
@@ -27,8 +27,8 @@
 	.ent	__htons
 __htons:
 	bis	a0,a0,v0	# v0 is result; swap in-place.  v0=aabb
-	extwh	v0,7,t1	# t1 = bb00
-	extbl	v0,1,v0	# v0 = 00aa
+	extwh	v0,7,t1		# t1 = bb00
+	extbl	v0,1,v0		# v0 = 00aa
 	bis	v0,t1,v0	# v0 = bbaa
 	ret	zero,(ra)
 	.end	__htons
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__reml.S libc-linux-0.35davidm/sysdeps/alpha/__reml.S
--- libc-linux/sysdeps/alpha/__reml.S	Sat Jun  3 22:55:10 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__reml.S	Fri Sep 15 05:49:26 1995
@@ -1,110 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __reml.S,v $
-# Revision 1.1  1994/04/01  18:58:28  paradis
-# Initial revision
-#
- * Revision 1.1.2.9  1992/12/22  14:34:03  Ken_Lesniak
- *      fixup prolog and register usage to work with exception handling.
- *      modify divide by zero trap to return 0 if continued
- *      [92/12/21  11:40:11  Ken_Lesniak]
- *
- * Revision 1.1.2.8  92/12/08  18:03:44  Ken_Lesniak
- *      absolute value of inputs should be done in 64 bits
- *      [92/12/08  18:02:12  Ken_Lesniak]
- *
- * Revision 1.1.2.7  92/11/20  16:37:57  Ken_Lesniak
- *      rearrange so we save and restore one less register
- *      [92/11/20  16:36:25  Ken_Lesniak]
- *
- * Revision 1.1.2.6  92/11/04  15:32:13  Ken_Lesniak
- *      total re-write
- *      [92/11/04  14:45:48  Ken_Lesniak]
- *
- * Revision 1.1.2.5  92/08/26  10:49:19  Ken_Lesniak
- *      return results in $27
- *      [92/08/26  10:37:18  Ken_Lesniak]
- *
- * Revision 1.1.2.4  92/06/11  08:42:42  Mike_Rickabaugh
- *      Updated divide/mod routines to use registers , , and .
- *      [92/06/11  08:37:31  Mike_Rickabaugh]
- *
- * Revision 1.1.2.3  92/04/13  14:59:21  Mike_Rickabaugh
- *      Altered divide and friends to be prepared for both calling standards.
- *      [92/04/13  14:56:11  Mike_Rickabaugh]
- *
- * Revision 1.1.2.2  92/02/20  17:04:17  Mike_Rickabaugh
- *      Initial 3.10 version.
- *      [92/02/20  16:49:02  Mike_Rickabaugh]
- *
- * $EndLog$
- */
-
-/*
- * Signed division
- *
- * On input:
- *      $23/t9  = return address (RA)
- *      $24/t10 = dividend (numerator) (A)
- *      $25/t11 = divisor (denominator) (B)
- *      Note that the high 32 bits of r24 and r25 are ignored.
- *
- * On Return:
- *      $27/t12 = quotient (Q)
- *      All other registers, except $at and $gp, are preserved
- */
-
-#define ENTRY \
-        .globl  __reml; \
-        .ent    __reml; \
-__reml: ; \
-        ldgp    gp, 0(pv); \
-        lda     sp, -8*8(sp); \
-        stq     RA, 0*8(sp); \
-        stq     t0, 1*8(sp); \
-        stq     t1, 2*8(sp); \
-        stq     t2, 3*8(sp); \
-        stq     t3, 4*8(sp); \
-        stq     a0, 5*8(sp); \
-        stq     A, 6*8(sp); \
-        stq     B, 7*8(sp); \
-        .prologue 1; \
-        addl    A, 0, A         /* make sure dividend is in canonical form */; \
-        addl    B, 0, B         /* make sure divisor is in canonical form */; \
-        /* check for INT_MIN / -1 */; \
-        addl    B, 1, t0        /* 0 if B == -1; != 0 otherwise */; \
-        bis     A, A, t1        /* copy dividend */; \
-        cmovne  t0, 0, t1       /* replace w/ 0 if divisor != -1 */; \
-        sublv   zero, t1, t1    /* trap if dividend = INT_MIN */; \
-        subq    zero, A, t0     /* negate dividend */; \
-        cmovlt  A, t0, A        /* get 64-bit absolute value of dividend */; \
-        subq    zero, B, t1     /* negate divisor */; \
-        cmovlt  B, t1, B        /* get 64-bit absolute value of divisor */
-
-#define REMAINDER 1
-
-#define THIRTYTWOBIT 1
-
-#define RETURN \
-        addl    Q, 0, Q; \
-        subl    zero, Q, AT; \
-        ldq     A, 6*8(sp); \
-        addl    A, 0, t0; \
-        cmovlt  t0, AT, Q; \
-        ldq     RA, 0*8(sp); \
-        ldq     t0, 1*8(sp); \
-        ldq     t1, 2*8(sp); \
-        ldq     t2, 3*8(sp); \
-        ldq     t3, 4*8(sp); \
-        ldq     a0, 5*8(sp); \
-        ldq     B, 7*8(sp); \
-        lda     sp, 8*8(sp); \
-        ret     zero, (RA), 1
-
-#define	END 
+#define IS_REM		1
+#define SIZE		4
+#define SIGNED		1
+#define FUNC_NAME	__reml
 
 #include "divrem.S"
-
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__remlu.S libc-linux-0.35davidm/sysdeps/alpha/__remlu.S
--- libc-linux/sysdeps/alpha/__remlu.S	Sat Jun  3 22:55:17 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__remlu.S	Fri Sep 15 05:49:34 1995
@@ -1,101 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __remlu.s,v $
- * Revision 1.1.2.10  1993/01/19  15:27:56  Ken_Lesniak
- * 	make sure result is in 32-bit canonical form on return
- * 	[93/01/15  10:46:02  Ken_Lesniak]
- *
- * Revision 1.1.2.9  92/12/22  14:34:10  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:40:21  Ken_Lesniak]
- * 
- * Revision 1.1.2.8  92/11/04  15:32:22  Ken_Lesniak
- * 	total re-write
- * 	[92/11/04  14:46:18  Ken_Lesniak]
- * 
- * Revision 1.1.2.7  92/08/26  10:49:26  Ken_Lesniak
- * 	return results in $27
- * 	[92/08/26  10:37:30  Ken_Lesniak]
- * 
- * Revision 1.1.2.6  92/06/11  08:42:53  Mike_Rickabaugh
- * 	Updated divide/mod routines to use registers , , and .
- * 	[92/06/11  08:37:45  Mike_Rickabaugh]
- * 
- * Revision 1.1.2.5  92/04/13  14:59:30  Mike_Rickabaugh
- * 	Altered divide and friends to be prepared for both calling standards.
- * 	[92/04/13  14:56:20  Mike_Rickabaugh]
- * 
- * Revision 1.1.2.4  92/03/04  12:00:10  Brett_Sampson
- * 	fixed register mask to represent saving
- * 	t4
- * 	[92/03/04  11:58:36  Brett_Sampson]
- * 
- * Revision 1.1.2.3  92/03/03  20:07:56  Brett_Sampson
- * 	Save register t4 over the divide operation.
- * 	[92/03/03  20:07:05  Brett_Sampson]
- * 
- * Revision 1.1.2.2  92/02/20  17:04:23  Mike_Rickabaugh
- * 	Initial 3.10 version.
- * 	[92/02/20  16:50:06  Mike_Rickabaugh]
- * 
- * $EndLog$
- */
-
-/*
- * Unsigned remainder
- *
- * On input:
- *	$23/t9  = return address (RA)
- *	$24/t10 = dividend (numerator) (A)
- *	$25/t11 = divisor (denominator) (B)
- *	Note that the high 32 bits of r24 and r25 are ignored.
- *
- * On Return:
- *	$27/t12 = remainder (Q)
- *	All other registers, except $at and $gp, must be preserved
- */
-
-#define ENTRY \
-	.globl	__remlu; \
-	.ent	__remlu; \
-__remlu: ; \
-	ldgp	gp, 0(pv); \
-	lda	sp, -8*8(sp); \
-	stq	RA, 0*8(sp); \
-	stq	t0, 1*8(sp); \
-	stq	t1, 2*8(sp); \
-	stq	t2, 3*8(sp); \
-	stq	t3, 4*8(sp); \
-	stq	a0, 5*8(sp); \
-	stq	A, 6*8(sp); \
-	stq	B, 7*8(sp); \
-	.prologue 1; \
-	zap	A, 0xf0, A; \
-	zap	B, 0xf0, B
-
-#define UNSIGNED 1
-
-#define THIRTYTWOBIT 1
-
-#define REMAINDER 1
-
-#define RETURN \
-	addl	Q, 0, Q; \
-	ldq	RA, 0*8(sp); \
-	ldq	t0, 1*8(sp); \
-	ldq	t1, 2*8(sp); \
-	ldq	t2, 3*8(sp); \
-	ldq	t3, 4*8(sp); \
-	ldq	a0, 5*8(sp); \
-	ldq	A, 6*8(sp); \
-	ldq	B, 7*8(sp); \
-	lda	sp, 8*8(sp); \
-	ret	zero, (RA), 1
-
-#define END 
+#define IS_REM		1
+#define SIZE		4
+#define SIGNED		0
+#define FUNC_NAME	__remlu
 
 #include "divrem.S"
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__remq.S libc-linux-0.35davidm/sysdeps/alpha/__remq.S
--- libc-linux/sysdeps/alpha/__remq.S	Sat Jun  3 22:55:32 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__remq.S	Fri Sep 15 05:49:42 1995
@@ -1,95 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __remq.s,v $
- * Revision 1.1.2.8  1992/12/22  14:34:17  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:40:34  Ken_Lesniak]
- *
- * Revision 1.1.2.7  92/11/20  16:38:04  Ken_Lesniak
- * 	rearrange so we save and restore one less register
- * 	[92/11/20  16:36:40  Ken_Lesniak]
- * 
- * Revision 1.1.2.6  92/11/04  15:32:31  Ken_Lesniak
- * 	total re-write
- * 	[92/11/04  14:47:52  Ken_Lesniak]
- * 
- * Revision 1.1.2.5  92/08/26  10:49:33  Ken_Lesniak
- * 	return results in $27
- * 	[92/08/26  10:37:41  Ken_Lesniak]
- * 
- * Revision 1.1.2.4  92/06/11  08:43:09  Mike_Rickabaugh
- * 	Updated divide/mod routines to use registers , , and .
- * 	[92/06/11  08:38:02  Mike_Rickabaugh]
- * 
- * Revision 1.1.2.3  92/04/13  14:59:38  Mike_Rickabaugh
- * 	Altered divide and friends to be prepared for both calling standards.
- * 	[92/04/13  14:56:29  Mike_Rickabaugh]
- * 
- * Revision 1.1.2.2  92/02/20  17:04:30  Mike_Rickabaugh
- * 	Initial 3.10 version.
- * 	[92/02/20  16:50:35  Mike_Rickabaugh]
- * 
- * $EndLog$
- */
-
-/*
- * Signed division
- *
- * On input:
- *	$23/t9  = return address (RA)
- *	$24/t10 = dividend (numerator) (A)
- *	$25/t11 = divisor (denominator) (B)
- *
- * On Return:
- *	$27/t12 = remainder (Q)
- *	All other registers, except $at and $gp, must be preserved
- */
-
-#define ENTRY \
-	.globl	__remq; \
-	.ent	__remq; \
-__remq: ; \
-	ldgp	gp, 0(pv); \
-	lda	sp, -8*8(sp); \
-	stq	RA, 0*8(sp); \
-	stq	t0, 1*8(sp); \
-	stq	t1, 2*8(sp); \
-	stq	t2, 3*8(sp); \
-	stq	t3, 4*8(sp); \
-	stq	a0, 5*8(sp); \
-	stq	A, 6*8(sp); \
-	stq	B, 7*8(sp); \
-	.prologue 1; \
-	/* check for LONG_MIN / -1 */; \
-	addq	B, 1, t0	/* 0 if B == -1; != 0 otherwise */; \
-	bis	A, A, t1	/* copy dividend */; \
-	cmovne	t0, 0, t1	/* replace w/ 0 if divisor != -1 */; \
-	subqv	zero, t1, t1	/* trap if dividend = LONG_MIN */; \
-	subq	zero, A, t0	/* negate dividend */; \
-	cmovlt	A, t0, A	/* get absolute value of dividend */; \
-	subq	zero, B, t1	/* negate divisor */; \
-	cmovlt	B, t1, B	/* get absolute value of divisor */
-
-#define REMAINDER 1
-
-#define RETURN \
-	subq	zero, Q, AT; \
-	ldq	A, 6*8(sp); \
-	cmovlt	A, AT, Q; \
-	ldq	RA, 0*8(sp); \
-	ldq	t0, 1*8(sp); \
-	ldq	t1, 2*8(sp); \
-	ldq	t2, 3*8(sp); \
-	ldq	t3, 4*8(sp); \
-	ldq	a0, 5*8(sp); \
-	ldq	B, 7*8(sp); \
-	lda	sp, 8*8(sp); \
-	ret	zero, (RA), 1
-
-#define END
+#define IS_REM		1
+#define SIZE		8
+#define SIGNED		1
+#define FUNC_NAME	__remq
 
 #include "divrem.S"
diff -u --recursive --new-file libc-linux/sysdeps/alpha/__remqu.S libc-linux-0.35davidm/sysdeps/alpha/__remqu.S
--- libc-linux/sysdeps/alpha/__remqu.S	Sat Jun  3 22:55:43 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/__remqu.S	Fri Sep 15 05:49:48 1995
@@ -1,78 +1,6 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: __remqu.s,v $
- * Revision 1.1.2.7  1992/12/22  14:34:24  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:40:44  Ken_Lesniak]
- *
- * Revision 1.1.2.6  92/11/04  15:32:41  Ken_Lesniak
- * 	total re-write
- * 	[92/11/04  14:48:07  Ken_Lesniak]
- * 
- * Revision 1.1.2.5  92/08/26  10:49:39  Ken_Lesniak
- * 	return results in $27
- * 	[92/08/26  10:37:54  Ken_Lesniak]
- * 
- * Revision 1.1.2.4  92/06/11  08:43:27  Mike_Rickabaugh
- * 	Updated divide/mod routines to use registers , , and .
- * 	[92/06/11  08:38:17  Mike_Rickabaugh]
- * 
- * Revision 1.1.2.3  92/04/13  14:59:48  Mike_Rickabaugh
- * 	Altered divide and friends to be prepared for both calling standards.
- * 	[92/04/13  14:56:40  Mike_Rickabaugh]
- * 
- * Revision 1.1.2.2  92/02/20  17:04:36  Mike_Rickabaugh
- * 	Initial 3.10 version.
- * 	[92/02/20  16:51:19  Mike_Rickabaugh]
- * 
- * $EndLog$
- */
-
-/*
- * Unsigned remainder
- *
- * On input:
- *	$23/t9  = return address (RA)
- *	$24/t10 = dividend (numerator) (A)
- *	$25/t11 = divisor (denominator) (B)
- *
- * On Return:
- *	$27/t12 = remainder (Q)
- *	All other registers, except $at and $gp, must be preserved
- */
-
-#define ENTRY \
-	.globl	__remqu; \
-	.ent	__remqu; \
-__remqu: ; \
-	ldgp	gp, 0(pv); \
-	lda	sp, -6*8(sp); \
-	stq	RA, 0*8(sp); \
-	stq	t0, 1*8(sp); \
-	stq	t1, 2*8(sp); \
-	stq	t2, 3*8(sp); \
-	stq	t3, 4*8(sp); \
-	stq	a0, 5*8(sp); \
-	.prologue 1
-
-#define UNSIGNED 1
-
-#define REMAINDER 1
-
-#define RETURN \
-	ldq	RA, 0*8(sp); \
-	ldq	t0, 1*8(sp); \
-	ldq	t1, 2*8(sp); \
-	ldq	t2, 3*8(sp); \
-	ldq	t3, 4*8(sp); \
-	ldq	a0, 5*8(sp); \
-	lda	sp, 6*8(sp); \
-	ret	zero, (RA), 1
-
-#define END
+#define IS_REM		1
+#define SIZE		8
+#define SIGNED		0
+#define FUNC_NAME	__remqu
 
 #include "divrem.S"
diff -u --recursive --new-file libc-linux/sysdeps/alpha/divglobl.S libc-linux-0.35davidm/sysdeps/alpha/divglobl.S
--- libc-linux/sysdeps/alpha/divglobl.S	Wed May 17 00:41:08 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/divglobl.S	Thu Jan  1 00:00:00 1970
@@ -1,348 +0,0 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: divglobl.S,v $
-# Revision 1.1  1994/04/01  18:58:28  paradis
-# Initial revision
-#
- * Revision 1.1.2.2  1992/11/04  16:10:47  Ken_Lesniak
- * 	initial version
- * 	[92/11/04  16:09:14  Ken_Lesniak]
- *
- * $EndLog$
- */
-
-/*
- * DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
- *
- * This file contains declarations for the divide and remainder
- * RTL routines. It was machine generated by gendivglobl
- *
- * DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
- */
-
-#include "divglobl.h"
-
-	.rdata
-
-	.align	4
-__divdat:
-
-	#
-	# LOG2TAB
-	#
-	.align	2
-	.long	0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3
-	.long	4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
-	.long	5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
-	.long	5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
-	.long	6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
-	.long	6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
-	.long	6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
-	.long	6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-	.long	7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
-
-	#
-	# INV_FLAG
-	#
-	.align	3
-	.byte	0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1
-	.byte	0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0
-	.byte	0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1
-	.byte	0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0
-	.byte	1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0
-	.byte	1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0
-	.byte	1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1
-	.byte	1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0
-	.byte	0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1
-	.byte	1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1
-	.byte	1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1
-	.byte	0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1
-	.byte	0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1
-	.byte	1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0
-	.byte	1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1
-	.byte	1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0
-	.byte	0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1
-	.byte	1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0
-	.byte	1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1
-	.byte	0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0
-	.byte	0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1
-	.byte	1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1
-	.byte	0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1
-	.byte	1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1
-	.byte	1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1
-	.byte	0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0
-	.byte	1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1
-	.byte	0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1
-	.byte	0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1
-	.byte	1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1
-	.byte	1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1
-	.byte	1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1
-
-	.align	4
-	#		INV		INV_M
-	.quad	0xffffffffffffffff, 0x007fc01ff007fc01  /*    0 */
-	.quad	0xff00ff00ff00ff01, 0x007ec25bf68dabfe  /*    1 */
-	.quad	0xfe03f80fe03f80fe, 0x007dc78930f5b971  /*    2 */
-	.quad	0xfd08e5500fd08e55, 0x007ccf9c05f3157c  /*    3 */
-	.quad	0xfc0fc0fc0fc0fc10, 0x007bda891528a983  /*    4 */
-	.quad	0xfb18856506ddaba6, 0x007ae84535db391c  /*    5 */
-	.quad	0xfa232cf252138ac0, 0x0079f8c575ac2ab0  /*    6 */
-	.quad	0xf92fb2211855a865, 0x00790bff175cf1bf  /*    7 */
-	.quad	0xf83e0f83e0f83e10, 0x007821e7919ad7f4  /*    8 */
-	.quad	0xf74e3fc22c700f75, 0x00773a748dd2e48d  /*    9 */
-	.quad	0xf6603d980f6603da, 0x0076559be70da3cb  /*   10 */
-	.quad	0xf57403d5d00f5740, 0x00757353a8d2921b  /*   11 */
-	.quad	0xf4898d5f85bb3950, 0x007493920e12f0da  /*   12 */
-	.quad	0xf3a0d52cba872336, 0x0073b64d801bcc4b  /*   13 */
-	.quad	0xf2b9d6480f2b9d65, 0x0072db7c958efc82  /*   14 */
-	.quad	0xf1d48bcee0d399fa, 0x007203161162ec7b  /*   15 */
-	.quad	0xf0f0f0f0f0f0f0f1, 0x00712d10e1e8f4b3  /*   16 */
-	.quad	0xf00f00f00f00f00f, 0x007059641fda17d7  /*   17 */
-	.quad	0xef2eb71fc4345238, 0x006f88070d69f229  /*   18 */
-	.quad	0xee500ee500ee500f, 0x006eb8f1155fad72  /*   19 */
-	.quad	0xed7303b5cc0ed730, 0x006dec19ca34cd01  /*   20 */
-	.quad	0xec979118f3fc4da2, 0x006d2178e539a6a8  /*   21 */
-	.quad	0xebbdb2a5c1619c8c, 0x006c590645bf5ef6  /*   22 */
-	.quad	0xeae56403ab95900f, 0x006b92b9f0474060  /*   23 */
-	.quad	0xea0ea0ea0ea0ea0f, 0x006ace8c0db7463d  /*   24 */
-	.quad	0xe939651fe2d8d35c, 0x006a0c74ea93b5ce  /*   25 */
-	.quad	0xe865ac7b7603a197, 0x00694c6cf63da0af  /*   26 */
-	.quad	0xe79372e225fe30d9, 0x00688e6cc2362d3c  /*   27 */
-	.quad	0xe6c2b4481cd85689, 0x0067d26d016682a0  /*   28 */
-	.quad	0xe5f36cb00e5f36cb, 0x00671866876c373e  /*   29 */
-	.quad	0xe525982af70c880e, 0x0066605247ea214c  /*   30 */
-	.quad	0xe45932d7dc52100e, 0x0065aa2955dd6a6f  /*   31 */
-	.quad	0xe38e38e38e38e38e, 0x0064f5e4e2f6c80c  /*   32 */
-	.quad	0xe2c4a6886a4c2e10, 0x0064437e3ef7bb1b  /*   33 */
-	.quad	0xe1fc780e1fc780e2, 0x006392eed713bb0b  /*   34 */
-	.quad	0xe135a9c97500e136, 0x0062e43035553040  /*   35 */
-	.quad	0xe070381c0e070382, 0x0062373c00062374  /*   36 */
-	.quad	0xdfac1f74346c575f, 0x00618c0bf91c8837  /*   37 */
-	.quad	0xdee95c4ca037ba57, 0x0060e299fdaa0972  /*   38 */
-	.quad	0xde27eb2c41f3d9d1, 0x00603ae0054f3f9c  /*   39 */
-	.quad	0xdd67c8a60dd67c8a, 0x005f94d821b23932  /*   40 */
-	.quad	0xdca8f158c7f91ab8, 0x005ef07c7df83e6e  /*   41 */
-	.quad	0xdbeb61eed19c5958, 0x005e4dc75e42ba41  /*   42 */
-	.quad	0xdb2f171df7702919, 0x005dacb31f2f32ed  /*   43 */
-	.quad	0xda740da740da740e, 0x005d0d3a355a3d88  /*   44 */
-	.quad	0xd9ba4256c0366e91, 0x005c6f572ce55811  /*   45 */
-	.quad	0xd901b2036406c80e, 0x005bd304a8ff968c  /*   46 */
-	.quad	0xd84a598ec9151f43, 0x005b383d63711014  /*   47 */
-	.quad	0xd79435e50d79435e, 0x005a9efc2c28f962  /*   48 */
-	.quad	0xd6df43fca482f00d, 0x005a073be8ce5ae4  /*   49 */
-	.quad	0xd62b80d62b80d62c, 0x005970f7945350f4  /*   50 */
-	.quad	0xd578e97c3f5fe551, 0x0058dc2a3e8ac544  /*   51 */
-	.quad	0xd4c77b03531dec0d, 0x005848cf0bc0912f  /*   52 */
-	.quad	0xd4173289870ac52e, 0x0057b6e13453f8e0  /*   53 */
-	.quad	0xd3680d3680d3680d, 0x0057265c04546fe2  /*   54 */
-	.quad	0xd2ba083b445250ab, 0x0056973adb20982b  /*   55 */
-	.quad	0xd20d20d20d20d20d, 0x005609792b076ce1  /*   56 */
-	.quad	0xd161543e28e50274, 0x00557d1278eb8ad3  /*   57 */
-	.quad	0xd0b69fcbd2580d0b, 0x0054f2025be888c5  /*   58 */
-	.quad	0xd00d00d00d00d00d, 0x005468447cfa5248  /*   59 */
-	.quad	0xcf6474a8819ec8e9, 0x0053dfd496a67807  /*   60 */
-	.quad	0xcebcf8bb5b4169cb, 0x005358ae74a768fd  /*   61 */
-	.quad	0xce168a7725080ce1, 0x0052d2cdf3998842  /*   62 */
-	.quad	0xcd712752a886d242, 0x00524e2f00aa138f  /*   63 */
-	.quad	0xcccccccccccccccd, 0x0051cacd9947cecc  /*   64 */
-	.quad	0xcc29786c7607f99f, 0x005148a5cad5697f  /*   65 */
-	.quad	0xcb8727c065c393e0, 0x0050c7b3b25d9315  /*   66 */
-	.quad	0xcae5d85f1bbd6c95, 0x005047f37c48b368  /*   67 */
-	.quad	0xca4587e6b74f0329, 0x004fc96164143d25  /*   68 */
-	.quad	0xc9a633fcd967300d, 0x004f4bf9b40b9000  /*   69 */
-	.quad	0xc907da4e871146ad, 0x004ecfb8c50260f1  /*   70 */
-	.quad	0xc86a78900c86a789, 0x004e549afe109ef0  /*   71 */
-	.quad	0xc7ce0c7ce0c7ce0c, 0x004dda9cd44fcaee  /*   72 */
-	.quad	0xc73293d789b9f838, 0x004d61baca99ba10  /*   73 */
-	.quad	0xc6980c6980c6980c, 0x004ce9f17148b95b  /*   74 */
-	.quad	0xc5fe740317f9d00c, 0x004c733d65f90a5a  /*   75 */
-	.quad	0xc565c87b5f9d4d1c, 0x004bfd9b534bb06e  /*   76 */
-	.quad	0xc4ce07b00c4ce07b, 0x004b8907f0aa86ab  /*   77 */
-	.quad	0xc4372f855d824ca6, 0x004b1580020d9680  /*   78 */
-	.quad	0xc3a13de60495c773, 0x004aa30057c1a767  /*   79 */
-	.quad	0xc30c30c30c30c30c, 0x004a3185ce30004a  /*   80 */
-	.quad	0xc2780613c0309e02, 0x0049c10d4da7534b  /*   81 */
-	.quad	0xc1e4bbd595f6e947, 0x00495193ca25cceb  /*   82 */
-	.quad	0xc152500c152500c1, 0x0048e31643243fb8  /*   83 */
-	.quad	0xc0c0c0c0c0c0c0c1, 0x00487591c36265c8  /*   84 */
-	.quad	0xc0300c0300c0300c, 0x0048090360b4318c  /*   85 */
-	.quad	0xbfa02fe80bfa02ff, 0x00479d683bd0279f  /*   86 */
-	.quad	0xbf112a8ad278e8dd, 0x004732bd801ebb67  /*   87 */
-	.quad	0xbe82fa0be82fa0bf, 0x0046c900638aa88c  /*   88 */
-	.quad	0xbdf59c91700bdf5a, 0x0046602e26524361  /*   89 */
-	.quad	0xbd69104707661aa3, 0x0045f84412d9ba97  /*   90 */
-	.quad	0xbcdd535db1cc5b7b, 0x0045913f7d7e44a5  /*   91 */
-	.quad	0xbc52640bc52640bc, 0x00452b1dc46a3383  /*   92 */
-	.quad	0xbbc8408cd63069a1, 0x0044c5dc4f69e972  /*   93 */
-	.quad	0xbb3ee721a54d880c, 0x004461788fc1a9a5  /*   94 */
-	.quad	0xbab656100bab6561, 0x0043fdf000043fdf  /*   95 */
-	.quad	0xba2e8ba2e8ba2e8c, 0x00439b4023ea7a13  /*   96 */
-	.quad	0xb9a7862a0ff46588, 0x00433966882b6f4f  /*   97 */
-	.quad	0xb92143fa36f5e02e, 0x0042d860c2558f4d  /*   98 */
-	.quad	0xb89bc36ce3e0453a, 0x0042782c70a87632  /*   99 */
-	.quad	0xb81702e05c0b8170, 0x004218c739ef8000  /*  100 */
-	.quad	0xb79300b79300b793, 0x0041ba2ecd5d1788  /*  101 */
-	.quad	0xb70fbb5a19be3659, 0x00415c60e266bc99  /*  102 */
-	.quad	0xb68d31340e4307d8, 0x0040ff5b38a1bd6e  /*  103 */
-	.quad	0xb60b60b60b60b60b, 0x0040a31b97a09f52  /*  104 */
-	.quad	0xb58a485518d1e7e4, 0x0040479fced1329a  /*  105 */
-	.quad	0xb509e68a9b94821f, 0x003fece5b55b4e37  /*  106 */
-	.quad	0xb48a39d44685fe97, 0x003f92eb2a002f2f  /*  107 */
-	.quad	0xb40b40b40b40b40b, 0x003f39ae12fa7858  /*  108 */
-	.quad	0xb38cf9b00b38cf9b, 0x003ee12c5ddecee8  /*  109 */
-	.quad	0xb30f63528917c80b, 0x003e8963ff7d1056  /*  110 */
-	.quad	0xb2927c29da5519cf, 0x003e3252f3c21e56  /*  111 */
-	.quad	0xb21642c8590b2164, 0x003ddbf73d9a3d87  /*  112 */
-	.quad	0xb19ab5c45606f00b, 0x003d864ee6d403ca  /*  113 */
-	.quad	0xb11fd3b80b11fd3c, 0x003d31580003d316  /*  114 */
-	.quad	0xb0a59b418d749d53, 0x003cdd10a067ddc1  /*  115 */
-	.quad	0xb02c0b02c0b02c0b, 0x003c8976e5ccb15f  /*  116 */
-	.quad	0xafb321a1496fdf0e, 0x003c3688f472452e  /*  117 */
-	.quad	0xaf3addc680af3ade, 0x003be444f6f1897b  /*  118 */
-	.quad	0xaec33e1f671529a5, 0x003b92a91e2274fb  /*  119 */
-	.quad	0xae4c415c9882b931, 0x003b41b3a1028dad  /*  120 */
-	.quad	0xadd5e6323fd48a86, 0x003af162bc9bea7b  /*  121 */
-	.quad	0xad602b580ad602b6, 0x003aa1b4b3ecab20  /*  122 */
-	.quad	0xaceb0f891e6551bb, 0x003a52a7cfcee3c6  /*  123 */
-	.quad	0xac7691840ac76918, 0x003a043a5ee0fa15  /*  124 */
-	.quad	0xac02b00ac02b00ac, 0x0039b66ab56e7112  /*  125 */
-	.quad	0xab8f69e28359cd11, 0x003969372d5921bb  /*  126 */
-	.quad	0xab1cbdd3e2970f60, 0x00391c9e2602ddfa  /*  127 */
-	.quad	0xaaaaaaaaaaaaaaab, 0x0038d09e04377bbb  /*  128 */
-	.quad	0xaa392f35dc17f00b, 0x003885353217460a  /*  129 */
-	.quad	0xa9c84a47a07f5638, 0x00383a621f01d214  /*  130 */
-	.quad	0xa957fab5402a55ff, 0x0037f0233f8135f4  /*  131 */
-	.quad	0xa8e83f5717c0a8e8, 0x0037a6770d359f5a  /*  132 */
-	.quad	0xa87917088e262b6f, 0x00375d5c06c14806  /*  133 */
-	.quad	0xa80a80a80a80a80b, 0x003714d0afb4c633  /*  134 */
-	.quad	0xa79c7b16ea64d422, 0x0036ccd3907bb709  /*  135 */
-	.quad	0xa72f05397829cbc1, 0x003685633649c151  /*  136 */
-	.quad	0xa6c21df6e1625c80, 0x00363e7e3307ee8e  /*  137 */
-	.quad	0xa655c4392d7b73a8, 0x0035f8231d4258ba  /*  138 */
-	.quad	0xa5e9f6ed347f0721, 0x0035b25090162b0e  /*  139 */
-	.quad	0xa57eb50295fad40a, 0x00356d052b1ff400  /*  140 */
-	.quad	0xa513fd6bb00a5140, 0x0035283f926a46f2  /*  141 */
-	.quad	0xa4a9cf1d96833751, 0x0034e3fe6e5cabea  /*  142 */
-	.quad	0xa44029100a440291, 0x0034a0406baadbcc  /*  143 */
-	.quad	0xa3d70a3d70a3d70a, 0x00345d043b44478a  /*  144 */
-	.quad	0xa36e71a2cb033128, 0x00341a489243e8ca  /*  145 */
-	.quad	0xa3065e3fae7cd0e0, 0x0033d80c29e05a93  /*  146 */
-	.quad	0xa29ecf163bb6500a, 0x0033964dbf5c3891  /*  147 */
-	.quad	0xa237c32b16cfd772, 0x0033550c13f6c382  /*  148 */
-	.quad	0xa1d139855f7268ee, 0x00331445ecdcc986  /*  149 */
-	.quad	0xa16b312ea8fc377d, 0x0032d3fa1319d0d6  /*  150 */
-	.quad	0xa105a932f2ca891f, 0x00329427538983c8  /*  151 */
-	.quad	0xa0a0a0a0a0a0a0a1, 0x003254cc7ec95ca2  /*  152 */
-	.quad	0xa03c1688732b3032, 0x003215e8692a9028  /*  153 */
-	.quad	0x9fd809fd809fd80a, 0x0031d779eaa43595  /*  154 */
-	.quad	0x9f747a152d7836d0, 0x0031997fdec5aad6  /*  155 */
-	.quad	0x9f1165e7254813e2, 0x00315bf924a933d8  /*  156 */
-	.quad	0x9eaecc8d53ae2ddf, 0x00311ee49ee6d3cb  /*  157 */
-	.quad	0x9e4cad23dd5f3a20, 0x0030e24133875f2f  /*  158 */
-	.quad	0x9deb06c9194aa416, 0x0030a60dcbf7c5aa  /*  159 */
-	.quad	0x9d89d89d89d89d8a, 0x00306a4954fc927a  /*  160 */
-	.quad	0x9d2921c3d6411308, 0x00302ef2bea5a284  /*  161 */
-	.quad	0x9cc8e160c3fb19b9, 0x002ff408fc420f05  /*  162 */
-	.quad	0x9c69169b30446dfa, 0x002fb98b04544bcd  /*  163 */
-	.quad	0x9c09c09c09c09c0a, 0x002f7f77d086781f  /*  164 */
-	.quad	0x9baade8e4a2f6e10, 0x002f45ce5d9ee128  /*  165 */
-	.quad	0x9b4c6f9ef03a3caa, 0x002f0c8dab74b53e  /*  166 */
-	.quad	0x9aee72fcf957c10f, 0x002ed3b4bce4e6d7  /*  167 */
-	.quad	0x9a90e7d95bc609a9, 0x002e9b4297c73e6e  /*  168 */
-	.quad	0x9a33cd67009a33cd, 0x002e633644e39a62  /*  169 */
-	.quad	0x99d722dabde58f06, 0x002e2b8ecfe75c01  /*  170 */
-	.quad	0x997ae76b50efd00a, 0x002df44b475b00d8  /*  171 */
-	.quad	0x991f1a515885fb37, 0x002dbd6abc97e780  /*  172 */
-	.quad	0x98c3bac74f5db00a, 0x002d86ec43be3f17  /*  173 */
-	.quad	0x9868c809868c8098, 0x002d50cef3ab208e  /*  174 */
-	.quad	0x980e4156201301c8, 0x002d1b11e5eed122  /*  175 */
-	.quad	0x97b425ed097b425f, 0x002ce5b436c32d10  /*  176 */
-	.quad	0x975a750ff68a58af, 0x002cb0b5050239fa  /*  177 */
-	.quad	0x97012e025c04b809, 0x002c7c13721ce019  /*  178 */
-	.quad	0x96a850096a850097, 0x002c47cea211c9a1  /*  179 */
-	.quad	0x964fda6c0964fda7, 0x002c13e5bb646783  /*  180 */
-	.quad	0x95f7cc72d1b887e9, 0x002be057e7141b13  /*  181 */
-	.quad	0x95a02568095a0257, 0x002bad24509383a7  /*  182 */
-	.quad	0x9548e4979e0829fd, 0x002b7a4a25bfefbe  /*  183 */
-	.quad	0x94f2094f2094f209, 0x002b47c896d8f0df  /*  184 */
-	.quad	0x949b92ddc02526e5, 0x002b159ed67811bb  /*  185 */
-	.quad	0x9445809445809446, 0x002ae3cc1988adbb  /*  186 */
-	.quad	0x93efd1c50e726b7c, 0x002ab24f973fe99c  /*  187 */
-	.quad	0x939a85c40939a85c, 0x002a81288914cc5b  /*  188 */
-	.quad	0x93459be6b009345a, 0x002a50562ab877df  /*  189 */
-	.quad	0x92f113840497889c, 0x002a1fd7ba0e80df  /*  190 */
-	.quad	0x929cebf48bbd90e5, 0x0029efac7725656b  /*  191 */
-	.quad	0x9249249249249249, 0x0029bfd3a42f218e  /*  192 */
-	.quad	0x91f5bcb8bb02d9cd, 0x0029904c8579e17d  /*  193 */
-	.quad	0x91a2b3c4d5e6f809, 0x002961166168d0d3  /*  194 */
-	.quad	0x9150091500915009, 0x00293230806d0653  /*  195 */
-	.quad	0x90fdbc090fdbc091, 0x0029039a2cfe8bab  /*  196 */
-	.quad	0x90abcc0242af3009, 0x0028d552b39580c2  /*  197 */
-	.quad	0x905a38633e06c43b, 0x0028a75962a35a0f  /*  198 */
-	.quad	0x9009009009009009, 0x002879ad8a8c397c  /*  199 */
-	.quad	0x8fb823ee08fb823f, 0x00284c4e7da06171  /*  200 */
-	.quad	0x8f67a1e3fdc26178, 0x00281f3b9015c16f  /*  201 */
-	.quad	0x8f1779d9fdc3a219, 0x0027f27418019bf5  /*  202 */
-	.quad	0x8ec7ab397255e41d, 0x0027c5f76d52450e  /*  203 */
-	.quad	0x8e78356d1408e783, 0x002799c4e9c8f94d  /*  204 */
-	.quad	0x8e2917e0e702c6cd, 0x00276ddbe8f3cca0  /*  205 */
-	.quad	0x8dda520237694809, 0x0027423bc827b0a6  /*  206 */
-	.quad	0x8d8be33f95d71590, 0x002716e3e67a921c  /*  207 */
-	.quad	0x8d3dcb08d3dcb08d, 0x0026ebd3a4bd8d01  /*  208 */
-	.quad	0x8cf008cf008cf009, 0x0026c10a657736fa  /*  209 */
-	.quad	0x8ca29c046514e023, 0x002696878cddffb1  /*  210 */
-	.quad	0x8c55841c815ed5ca, 0x00266c4a80d2a6b2  /*  211 */
-	.quad	0x8c08c08c08c08c09, 0x00264252a8dac681  /*  212 */
-	.quad	0x8bbc50c8deb420c0, 0x0026189f6e1b7473  /*  213 */
-	.quad	0x8b70344a139bc75a, 0x0025ef303b53f50e  /*  214 */
-	.quad	0x8b246a87e19008b2, 0x0025c6047cd8847d  /*  215 */
-	.quad	0x8ad8f2fba9386823, 0x00259d1ba08d32c5  /*  216 */
-	.quad	0x8a8dcd1feeae465c, 0x0025747515e0d378  /*  217 */
-	.quad	0x8a42f8705669db46, 0x00254c104dc80080  /*  218 */
-	.quad	0x89f87469a23920e0, 0x002523ecbab82fae  /*  219 */
-	.quad	0x89ae4089ae4089ae, 0x0024fc09d0a2dace  /*  220 */
-	.quad	0x89645c4f6e055dec, 0x0024d46704f0b9de  /*  221 */
-	.quad	0x891ac73ae9819b50, 0x0024ad03ce7d0f24  /*  222 */
-	.quad	0x88d180cd3a4133d7, 0x002485dfa59104dc  /*  223 */
-	.quad	0x8888888888888889, 0x00245efa03df1c1d  /*  224 */
-	.quad	0x883fddf00883fddf, 0x00243852647eaccb  /*  225 */
-	.quad	0x87f78087f78087f8, 0x002411e843e77632  /*  226 */
-	.quad	0x87af6fd5992d0d40, 0x0023ebbb1fed4014  /*  227 */
-	.quad	0x8767ab5f34e47ef1, 0x0023c5ca77bb8be3  /*  228 */
-	.quad	0x872032ac13008720, 0x0023a015cbd155d3  /*  229 */
-	.quad	0x86d905447a34acc6, 0x00237a9c9dfce59b  /*  230 */
-	.quad	0x869222b1acf1ce96, 0x0023555e7157ae8e  /*  231 */
-	.quad	0x864b8a7de6d1d608, 0x0023305aca423ed8  /*  232 */
-	.quad	0x86053c345a0b8473, 0x00230b912e603d96  /*  233 */
-	.quad	0x85bf37612cee3c9b, 0x0022e70124947795  /*  234 */
-	.quad	0x85797b917765ab89, 0x0022c2aa34fcfa72  /*  235 */
-	.quad	0x8534085340853408, 0x00229e8be8ef3de8  /*  236 */
-	.quad	0x84eedd357c1b0085, 0x00227aa5caf45b0a  /*  237 */
-	.quad	0x84a9f9c8084a9f9d, 0x002256f766c5512f  /*  238 */
-	.quad	0x84655d9bab2f1008, 0x002233804947585d  /*  239 */
-	.quad	0x8421084210842108, 0x0022104000884100  /*  240 */
-	.quad	0x83dcf94dc7570ce1, 0x0021ed361bbae0a0  /*  241 */
-	.quad	0x839930523fbe3368, 0x0021ca622b338b7a  /*  242 */
-	.quad	0x8355ace3c897db10, 0x0021a7c3c0649abe  /*  243 */
-	.quad	0x83126e978d4fdf3b, 0x0021855a6ddaff33  /*  244 */
-	.quad	0x82cf750393ac3319, 0x00216325c73ae026  /*  245 */
-	.quad	0x828cbfbeb9a020a3, 0x00214125613c4656  /*  246 */
-	.quad	0x824a4e60b3262bc5, 0x00211f58d1a7d2cb  /*  247 */
-	.quad	0x8208208208208208, 0x0020fdbfaf538145  /*  248 */
-	.quad	0x81c635bc123fdf8e, 0x0020dc59921f7638  /*  249 */
-	.quad	0x81848da8faf0d277, 0x0020bb2612f2d806  /*  250 */
-	.quad	0x814327e3b94f462f, 0x00209a24cbb8b365  /*  251 */
-	.quad	0x8102040810204081, 0x00207955575ceaab  /*  252 */
-	.quad	0x80c121b28bd1ba98, 0x002058b751c92feb  /*  253 */
-	.quad	0x8080808080808081, 0x0020384a57e209a8  /*  254 */
-	.quad	0x8040201008040201, 0x0020180e0783e1f9  /*  255 */
diff -u --recursive --new-file libc-linux/sysdeps/alpha/divglobl.h libc-linux-0.35davidm/sysdeps/alpha/divglobl.h
--- libc-linux/sysdeps/alpha/divglobl.h	Wed May 17 00:41:08 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/divglobl.h	Thu Jan  1 00:00:00 1970
@@ -1,45 +0,0 @@
-/*
- * @DEC_COPYRIGHT@
- */
-/*
- * HISTORY
- * $Log: divglobl.h,v $
- * Revision 1.1  1994/04/01  18:58:28  paradis
- * Initial revision
- *
- * Revision 1.1.2.2  1992/11/04  15:32:50  Ken_Lesniak
- * 	initial version
- * 	[92/11/04  14:50:21  Ken_Lesniak]
- *
- * $EndLog$
- */
-
-/*
- * DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
- *
- * This file contains declarations and data for the divide and remainder
- * RTL routines. It was machine generated by gendivglobl
- *
- * DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
- */
-
-#define BIT_LENGTH 8
-#define BIT_VALUE (1<<BIT_LENGTH)
-#define BIT_MASK (BIT_VALUE-1)
-#define K_BIT_LENGTH 8
-#define K_BIT_VALUE (1<<K_BIT_LENGTH)
-#define K_BIT_MASK (K_BIT_VALUE-1)
-
-#define TABLE_BIAS 16384
-
-#define LOG2TAB -16384
-#define INV_FLAG -15360
-#define INV -14848
-#define INV_M -14840
-
-#define A $24
-#define B $25
-#define Q $27
-#define RA $23
-
-	.globl	__divdat
diff -u --recursive --new-file libc-linux/sysdeps/alpha/divrem.S libc-linux-0.35davidm/sysdeps/alpha/divrem.S
--- libc-linux/sysdeps/alpha/divrem.S	Wed May 17 00:41:08 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/divrem.S	Sat Sep 16 17:17:51 1995
@@ -1,529 +1,147 @@
 /*
- * @DEC_COPYRIGHT@
+ * The current Alpha chips don't provide hardware for integer
+ * division, so we have to do it by hand.  The C compiler expects the
+ * functions
+ *
+ *	__divqu: 64-bit unsigned long divide
+ *	__remqu: 64-bit unsigned long remainder
+ *	__divqs/__remqs: signed 64-bit
+ *	__divlu/__remlu: unsigned 32-bit
+ *	__divls/__remls: signed 32-bit
+ *
+ * These are not normal C functions: instead of the normal
+ * calling sequence, these expect their arguments in registers
+ * t10 and t11, and return the result in t12 (aka pv). Registers AT
+ * and v0 may be clobbered (assembly temporary), anything else must
+ * be saved. 
  */
-/*
- * HISTORY
- * $Log: divrem.S,v $
-# Revision 1.1  1994/04/01  18:58:28  paradis
-# Initial revision
-#
- * Revision 1.1.4.2  1993/03/30  21:41:40  Ken_Lesniak
- * 	exit test from refinement loop was incorrect resulting in a quotient
- * 	that could be off by one
- * 	[1993/03/22  19:02:41  Ken_Lesniak]
- *
- * Revision 1.1.2.4  1993/01/08  17:16:39  Ken_Lesniak
- * 	conditionalize includes so we can use the same source in kernel
- * 	[93/01/05  09:44:24  Ken_Lesniak]
- * 
- * Revision 1.1.2.3  92/12/22  14:34:30  Ken_Lesniak
- * 	fixup prolog and register usage to work with exception handling.
- * 	modify divide by zero trap to return 0 if continued
- * 	[92/12/21  11:40:57  Ken_Lesniak]
- * 
- * Revision 1.1.2.2  92/11/04  15:32:57  Ken_Lesniak
- * 	initial version
- * 	[92/11/04  14:49:10  Ken_Lesniak]
- * 
- * $EndLog$
- */
-
-/*
- * This code is the main "guts" of all the divide and remainder
- * RTL routines. It is intended to be included by a wrapper which
- * defines macros to provide entry and return code, and parameters
- * to indicate 32 vs 64-bit, divide vs remainder, etc.
- *
- * The algorithm used here is based on long division and a table for
- * approximating inverses as discussed in the paper "Division by a
- * Constant" by Mary Payne and Robert Gries. If the divisor inverse can
- * be constructed from the table without an error, the division is performed
- * as described in the paper with a multiplication and a shift.  
- *
- * If the inverse can not be found in the table, we improve the inverse with
- * a linear approximation, "I". A multiplication by "I" and a shift by
- * log2(y) is used to obtain an approximate quotient, "Q". Now, like long
- * division, the most significant bits are correct, therefore if we calculate
- * the remainder R = x-Q*y, R will be smaller than x, and R will contain
- * the true remainder and the error in Q, "e" multiplied by y.
- *
- * So if we do the same multiplication and shift, we will get an approxmation
- * for e. This is just long division, and it will finish when R, the remainder
- * is less than y.
- *
- * On input:
- *      $23/t9  = return address (RA)
- *      $24/t10 = dividend (numerator) (A)
- *      $25/t11 = divisor (denominator) (B)
- *
- * On Return:
- *      $27/t12 = quotient/remainder (Q)
- *
- * Register Usage:
- *	$at, $gp, t0..t3, a0 and t9/RA are destroyed; all others preserved
- *      (t0..t3, a0 and t9/RA are preserved by the wrapper)
- *
- * Macros defined by wrapper:
- *	ENTRY - code for procedure prolog, overflow checks, absolute
- *		value of operands, etc.
- *	THIRTYTWOBIT - defined if 32-bit division/remainder; 64-bit
- *		if not defined.
- *	UNSIGNED - defined if unsigned division/remainder; signed
- *		if not defined.
- *	REMAINDER - defined if remainder operation; division operation
- *		if not defined.
- *	RETURN - code for epilog
- */
-
-#include <alpha/pal.h>
 #include <alpha/regdef.h>
+#include <asm/pal.h>
+#include <asm/gentrap.h>
 
-/* 32-bit GNU as, as it comes out of the box from Cygnus,
- * for some reason aborts when we use the call_pal instruction.
- * Fortunately, call_pal is the easiest instruction to fake out 8-)
- */
-#ifdef CALL_PAL_BROKEN
-#define call_pal .long
+#ifdef DEBUG
+# define arg1		a0
+# define arg2		a1
+# define result		v0
+# define mask		t0
+# define tmp0		t1
+# define tmp1		t2
+# define sign		t3
+# define retaddr	ra
+#else
+# define arg1		t10
+# define arg2		t11
+# define result		t12
+# define mask		v0
+# define tmp0		t0
+# define tmp1		t1
+# define sign		t2
+# define retaddr	t9
+#endif
+
+# define divisor	arg2
+#if IS_REM
+# define dividend	result
+# define quotient	arg1
+# define GETDIVIDEND	bis arg1,zero,dividend
+#else
+# define dividend	arg1
+# define quotient	result
+# define GETDIVIDEND
+#endif
+
+#if SIZE == 8
+# define LONGIFYarg1	GETDIVIDEND
+# define LONGIFYarg2
+#else
+# if SIGNED
+#  define LONGIFYarg1	addl	arg1,zero,dividend
+#  define LONGIFYarg2	addl	arg2,zero,divisor
+# else
+#  define LONGIFYarg1	zapnot	arg1,0x0f,dividend
+#  define LONGIFYarg2	zapnot	arg2,0x0f,divisor
+# endif
+#endif
+
+#if SIGNED
+# define SETSIGN(sign,reg,tmp)	subq zero,reg,tmp; cmovlt sign,tmp,reg
+# if IS_REM
+#  define GETSIGN(x,y,s)	bis	x,zero,s
+# else
+#  define GETSIGN(x,y,s)	xor	x,y,s
+# endif
+#else
+# define SETSIGN(sign,reg,tmp)
+# define GETSIGN(x,y,s)
+#endif
+
+	.set noreorder
+	.set noat
+
+	.ent FUNC_NAME
+	.globl FUNC_NAME
+
+	.align 5
+FUNC_NAME:
+#	define FRAME_SIZE	0x30
+	.frame	sp,FRAME_SIZE,ra,0
+	lda	sp,-FRAME_SIZE(sp)
+	.prologue 1
+	stq	arg1,0x00(sp)
+	LONGIFYarg1
+	stq	arg2,0x08(sp)
+	LONGIFYarg2
+	stq	mask,0x10(sp)
+	bis	zero,1,mask
+	stq	tmp0,0x18(sp)
+	bis	zero,zero,quotient
+	stq	tmp1,0x20(sp)
+	beq	divisor,divbyzero
+	stq	sign,0x28(sp)
+	GETSIGN(dividend,divisor,sign)
+#if SIGNED
+	subq	zero,dividend,tmp0
+	subq	zero,divisor,tmp1
+	cmovlt	dividend,tmp0,dividend
+	cmovlt	divisor,tmp1,divisor
 #endif
-#define GEN_INTDIV	-2
-
-#include "divglobl.h"
-
-	.text
-	.set	noat
-	.align	4
-	ENTRY				# generate prolog and setup
-
-	lda	t3, __divdat+TABLE_BIAS	# point to tables
-
-	/*
-	 * Check for division by zero and cases where quotient can only
-	 * be zero or one
-	 *
-	 *	t3	pointer to tables
-	 *	A	numerator
-	 *	B	denominator
-	 *
-	 *  if (B==0) raise(div_by_zero);
-	 *  if ((B >> (size_uint64-1)) != 0) return A>=B;
-	 *  if (B>=A) return A==B; [ common case ]
-	 *  shift= log2(B);
-	 */
-
-	beq	B, divzero		# signal divide by zero
-	cmpule	A, B, t0		# denom >= numer?
-#ifdef THIRTYTWOBIT
-	addl	B, 0, t1		# sign-extend denom
-	blt	t1, zero_one		# quot is 0 or 1 if neg denom
-#else
-	blt	B, zero_one		# quot is 0 or 1 if neg denom
-#endif
-	cmpbge	zero, B, t2		# get mask of null denom bytes
-	bne	t0, zero_one		# quot is 0 or 1 if denom >= numer
-	xor	t2, 0xff, t0		# get mask of non-null denom bytes
-	s4addq	t0, t3, t0		# get table index
-	ldl	AT, LOG2TAB(t0)		# offset of highest non-null byte
-	extbl	B, AT, t0		# extract highest non-null byte
-	s4addq	t0, t3, t0		# get table index
-	ldl	t0, LOG2TAB(t0)		# offset of highest non-null bit
-	s8addq	AT, t0, AT		# combine bit and byte offsets
-
-	/*
-	 * Normalize the denominator (shift highest one bit into MSB) and
-	 * check to see if number of bits between the most-significant-one-bit
-	 * and the least-significant-one-bit is BIT_LENGTH+1 bits or less; if
-	 * so we can take a short cut
-	 *
-	 *	t3	pointer to tables
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *
-	 *  if ((shift-(bit_length+1) <= 0) ||
-	 *    ((B << (size_uint64-shift+(bit_length+1))) == 0))
-	 *      goto small;
-	 */
-
-	ornot	zero, AT, t0		# get (63-shift) in low 6 bits
-	sll	B, t0, t0		# normalize denominator
-	sll	t0, BIT_LENGTH+1, t1	# remove top bits from normalized denom
-	bne	t1, large		# special case denoms with lots of bits
-
-/*
- * The number of bits between the most-signficant-one-bit (MSOB) and the
- * least-significant-one-bit (LSOB) is BIT_LENGTH+1 or less which means
- * we can guarantee our approximation to 1/B is actually exact.
- * As a side effect, this path also handles all cases of dividing
- * by a power of two (since the number of bits between MSOB and LSOB
- * is one!).
- *
- *	A	numerator
- *	B	denominator
- *	AT	log2 of denominator (shift)
- *	t0	normalized denominator
- *	t3	pointer to tables
- */
-
-	/* 
-	 *  if ((B - 1) & B) return A >> shift; [ power of two ]
-	 *  if (shift>(bit_length+1)) {
-	 *    j= integer(B >> (shift-(bit_length+1)));
-	 *  } else {
-	 *    j= integer(B << ((bit_length+1)-shift));
-	 *  }
-	 */
-
-	subq	B, 1, t1		# flip divisor bits up to LS-one-bit
-	and	B, t1, t2		# set non-zero if not power of 2
-	srl	t0, 63-(BIT_LENGTH+1), t12 # shift signif divisor bits to LSB
-	beq	t2, pow_2		# br if divisor is power of 2
-
-	/*  j= j-(bit_value+bit_value); */
-
-	lda	a0,BIT_VALUE+BIT_VALUE(zero)
- 	subq	t12, a0, t12 # clear MS-one-bit
-
-	/*  inverse = inv[j >> 1]; */
-
-	bic	t12, 1, a0		# (j>>1)*2
-	s8addq	a0, t3, a0		# &__divdat+(j*16)
-	ldq	t9, INV(a0)
-
-	/*  if (j & 1) inverse -= inv_m[j >> 1]; */
-
-	ldq	a0, INV_M(a0)
-	subq	t9, a0, a0
-	cmovlbs	t12, a0, t9
-
 	/*
-	 *  switch(inv_flag[j]) {
-	 *  case 1:
-	 *    [ code option 1 for rounded dividend ]
-	 *    a= A+1;
-	 *    if (a == 0)
-	 *      c= inverse >> shift;
-	 *    else
-	 *      c= __UMULH(a,inverse) >> shift;
-	 *    r= A-(B*c);
-	 *    break;
-	 *
-	 *  case 0:
-	 *    [ code option 0 for rounded inv ]
-	 *    c= __UMULH(A,inverse) >> shift;
-	 *    r= A-(B*c);
-	 *    break;
-	 *  }
+	 * Shift divisor left until either bit 63 is set or until it
+	 * is at least as big as the dividend:
 	 */
-
-	addq	t12, t3, t2		# &inv_flag+j
-	ldq_u	t0, INV_FLAG(t2)
-	extbl	t0, t2, t2
-
-	addq	A, t2, t1
-	umulh	t1, t9, t3
-#if !defined(THIRTYTWOBIT) && defined(UNSIGNED)
-	cmoveq	t1, t9, t3
-#endif
-
-	srl	t3, AT, Q
-#ifdef REMAINDER
-	mulq	Q, B, t0
-	subq	A, t0, Q
-#endif
-	RETURN
-
-/*
- * Handle cases when divisor is a power of 2
- *
- *	A	numerator
- *	B	denominator
- *	AT	log2 of denominator (shift)
- *	t1	B-1
- */
 	.align	3
-pow_2:
-#ifdef REMAINDER
-	#  r = A & (B-1);
+1:	cmpule	dividend,divisor,AT
+	blt	divisor,2f
+	blbs	AT,2f
+	addq	mask,mask,mask
+	addq	divisor,divisor,divisor
+	br	1b
 
-	and	A, t1, Q
-#else
-	#  c = A >> shift;
-
-	srl	A, AT, Q
-#endif
-	RETURN
-
-/*
- * The quotient of A/B is guaranteed to be between 0 or 1
- *
- *	A	numerator
- *	B	denominator
- */
 	.align	3
-zero_one:
-#ifdef REMAINDER
-	cmpule	B, A, t0
-	subq	A, B, Q
-	cmoveq	t0, A, Q
-#else
-	cmpule	B, A, Q
-#endif
-	RETURN
+2:	addq	mask,quotient,tmp0
+	cmpule	divisor,dividend,AT
+	subq	dividend,divisor,tmp1
+	srl	divisor,1,divisor
+	srl	mask,1,mask
+	cmovlbs	AT,tmp0,quotient
+	cmovlbs	AT,tmp1,dividend
+	bne	mask,2b
+
+	ldq	arg1,0x00(sp)
+	SETSIGN(sign,result,tmp0)
+done:	ldq	arg2,0x08(sp)
+	ldq	mask,0x10(sp)
+	ldq	tmp0,0x18(sp)
+	ldq	tmp1,0x20(sp)
+	ldq	sign,0x28(sp)
+	lda	sp,FRAME_SIZE(sp)
+	ret	zero,(retaddr),0
 
-/*
- * The number of bits between the most-significant-one-bit and the
- * least-significant-one-bit greather than BIT_LENGTH+1 which means
- * we only have an approximation to 1/divisor. Refine the inverse
- * until it is accurate enough.
- */
-	.align	3
-large:
-	/*
-	 * From the most significant BIT_LENGTH+K_BIT_LENGTH bits of the
-	 * normalized denominator, extract the low K_BIT_LENGTH bits and
-	 * next BIT_LENGTH-1 bits
-	 *
-	 *	t3	pointer to tables
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t0	normalized denominator
-	 *
-	 *  if (shift>bit_length+k_bit_length) {
-	 *    k= B >> (shift-bit_length-k_bit_length);
-	 *  } else {
-	 *    k= B << (bit_length+k_bit_length-shift);
-	 *  }
-	 *  j= (k >> k_bit_length)-bit_value;
-	 *  k= k & k_bit_mask;
-	 */
-
-	srl	t0, 63-(BIT_LENGTH+K_BIT_LENGTH), t12 # shift signif bits to LSB
-	srl	t12, K_BIT_LENGTH, t0	# extract high bits
- #	subq	t0, BIT_VALUE, t0	# folded into mem refs
-#if K_BIT_LENGTH <= 8
-	and	t12, K_BIT_MASK, t12	# extract low bits
-#elif K_BIT_LENGTH <= 16
-	ldiq	t2, K_BIT_MASK		# get low bits mask
-	and	t12, t2, t12		# extract low bits
-#else
-	sll	t12, 64-K_BIT_LENGTH, t12 # extract low bits
-	srl	t12, 64-K_BIT_LENGTH, t12
-#endif
-
-	/*
-	 * Get an approximation of 1/denominator
-	 *
-	 *	t3	pointer to tables
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t0	high bits of signif denom bits (j)
-	 *	t12	low bits of signif denom bits (k)
-	 *
-	 *if k_bit_length > bit_length
-	 *  inverse= inv[j] - (((inv_m[j] >> k_bit_length-bit_length) * k) 
-	 *	>> (bit_length-1));
-	 *else
-	 *  inverse= inv[j] - ((inv_m[j] * k) >> (k_bit_length-1));
-	 *endif
-	 */
-
-	addq	t0, t0, t0		# scale index (j) by 2
-	s8addq	t0, t3, t1		# get pointer into __divdat
-	ldq	t2, INV-(16*BIT_VALUE)(t1) # inv[j]
-	ldq	t0, INV_M-(16*BIT_VALUE)(t1) # inv_m[j]
-#if K_BIT_LENGTH > BIT_LENGTH
-	srl	t0, K_BIT_LENGTH-BIT_LENGTH, t0
-	mulq	t0, t12, t0
-	srl	t0, BIT_LENGTH-1, t0
-#else
-	mulq	t0, t12, t0
-	srl	t0, K_BIT_LENGTH-1, t0
-#endif
-	subq	t2, t0, t12		# inverse
-
-	/*
-	 * Get an approximation of quotient and the remainder
-	 *
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t12	approx of 1/denominator (inverse)
-	 *
-	 *  c= __UMULH(A,inverse);
-	 *  c = c >> shift;
-	 *  r= B*c;
-	 */
-
-	umulh	A, t12, a0		# quotient
-	srl	a0, AT, a0
-	mulq	a0, B, t9		# remainder
-
-	/*
-	 * If sign of remainder differs from sign of numerator and true
-	 * remainder is larger than 64 bits, set 'minus' flag
-	 *
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t12	approx of 1/denominator (inverse)
-	 *	a0	quotient (c)
-	 *	t9	remainder (r)
-	 *
-	 * int minus = 0;
-	 *  if ((r >> (size_uint64-1) ) ^ (A >> (size_uint64-1) )) {
-	 *      if (__UMULH(B,c)!=0) minus= 1;
-	 *  }
-	 *  r= A-r;
-	 */
-
-	bis	zero, zero, t3		# init 'minus'
-#ifndef THIRTYTWOBIT
-	xor	A, t9, t0		# see where rem and numer differ
-	bge	t0, $110			# skip if numer and rem signs match
-	umulh	B, a0, t3		# set 'minus' if rem bits > 64
-$110:
-#endif
-	subq	A, t9, t9
-
-	/*
-	 *  if (c!=0) {	[ kjl: isn't this always true??? ]
-	 *    if (r>A) minus= 1;
-	 *    if (minus) r= -r;
-	 */
-
-	beq	a0, $140
-	cmpult	A, t9, t0
-	or	t0, t3, t3
-	negq	t9, t1
-	cmovne	t3, t1, t9
-
-	/*
-	 * Continue refining the quotient
-	 *
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t12	approx of 1/denominator (inverse)
-	 *	t3	'minus' flag
-	 *	a0	quotient (c)
-	 *	t9	remainder (r)
-	 *
-	 *    if (r>=(B+B))
-	 *    do {
-	 *      a= __UMULH(r,inverse);
-	 *      a = a >> shift;
-	 *      if (minus) c-= a; else c+= a;
-	 *      a= a*B;
-	 *      r-= a;
-	 */
-
-	addq	B, B, t0
-	cmpule	t0, t9, t0
-	beq	t0, $130
-$120:	umulh	t9, t12, t2
-	srl	t2, AT, t2
-	negq	t2, t0
-	cmoveq	t3, t2, t0
-	addq	a0, t0, a0
-	mulq	t2, B, t1	
-	subq	t9, t1, t9
-
-#ifndef THIRTYTWOBIT
-	/*
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t12	approx of 1/denominator (inverse)
-	 *	t3	'minus' flag
-	 *	a0	quotient (c)
-	 *	t9	remainder (r)
-	 *
-	 *      if ((r >> (size_uint64-1)) != 0) {
-	 *	 minus= !minus;
-	 *        r= -r;
-	 *      }
-	 */
-
-	cmpeq	t3, 0, t0
-	negq	t9, t2
-	cmovlt	t9, t0, t3
-	cmovlt	t9, t2, t9
-#endif
-
-	/*
-	 *	A	numerator
-	 *	B	denominator
-	 *	AT	log2 of denominator (shift)
-	 *	t12	approx of 1/denominator (inverse)
-	 *	t3	'minus' flag
-	 *	a0	quotient (c)
-	 *	t9	remainder (r)
-	 *
-	 *      if (B+B>r) a=0; [ break ]
-	 *    } while (a!=0);
-	 */
-
-	addq	B, B, t0
-	cmpult	t9, t0, t0
-	cmovne	t0, 0, t1
-	bne	t1, $120
-$130:
-	/*  } */
-$140:
-	/*
-	 *  if (B<=r) {
-	 *    r-= B;
-	 *    if (minus) c--; else c++; [ kjl: don't need this for remainder ]
-	 *  }
-	 */
-
-	cmpule	B, t9, t0
-	beq	t0, $150
-	subq	t9, B, t9
-	subq	a0, 1, t0
-	addq	a0, 1, a0
-	cmovne	t3, t0, a0
-$150:
-
-	/*
-	 *	B	denominator
-	 *	t3	'minus' flag
-	 *	a0	quotient (c)
-	 *	t9	remainder (r)
-	 *
-	 *  if (r==0) minus=0;
-	 */
-
-	cmoveq	t9, 0, t3
-#ifdef REMAINDER
-	/*  if (minus) r = B-r; */
-	/*  return r; */
-
-	subq	B, t9, Q
-	cmoveq	t3, t9, Q
-#else
-	/*  if (minus) c--; */
-	/*  return c; */
-
-	subq	a0, 1, Q
-	cmoveq	t3, a0, Q
-#endif
-	RETURN
-
-/*
- * Divisor is zero -- generate a signal
- */
-	/* .align 3  (who cares if we save a cycle here...) */
-divzero:
-	ldiq	a0, GEN_INTDIV
+divbyzero:
+	lda	a0,GEN_INTDIV(zero)
 	call_pal PAL_gentrap
+	bis	zero,zero,result	/* if trap returns, return 0 */
+	ldq	arg1,0x00(sp)
+	br	done
 
-	/* if the user continues from the gentrap, return a zero result */
-
-	ldiq	Q, 0
-	RETURN
-
-	.set	at
-	END
+	.end FUNC_NAME
diff -u --recursive --new-file libc-linux/sysdeps/alpha/strlen.S libc-linux-0.35davidm/sysdeps/alpha/strlen.S
--- libc-linux/sysdeps/alpha/strlen.S	Sat Jul 22 04:04:35 1995
+++ libc-linux-0.35davidm/sysdeps/alpha/strlen.S	Wed Jul 26 19:10:00 1995
@@ -56,4 +56,3 @@
         ret     zero, (ra)
 
         .end    strlen
-
diff -u --recursive --new-file libc-linux/sysdeps/linux/Makefile libc-linux-0.35davidm/sysdeps/linux/Makefile
--- libc-linux/sysdeps/linux/Makefile	Fri Jul  7 15:14:59 1995
+++ libc-linux-0.35davidm/sysdeps/linux/Makefile	Thu Aug 31 04:17:57 1995
@@ -25,8 +25,8 @@
 DIRS=$(TARGET_ARCH)
 SRC1S= __bsd_sig.c __flock.c __fpathconf.c __getdtsz.c \
 	__gethstnm.c __getpgsz.c __isatty.c __pathconf.c \
-	__sigblock.c __siggtmsk.c __sigpause.c __sigstmsk.c \
-	__sysconf.c __tcgetatr.c _errlist.c _siglist.c \
+	__sigpause.c __sigblock.c __siggtmsk.c  __sigstmsk.c \
+	__sysconf.c __tcgetatr.c \
 	mkfifo.c morecore.c setegid.c \
 	seteuid.c signal.c \
 	__adjtime.c __ntpgttm.c __wait.c __wait3.c \
@@ -43,7 +43,7 @@
 SRCMMAP=mmap.c nlist.c __utimes.c
 
 SRCMISC=creat.S alarm.S pause.S stime.S time.S utime.S __getppid.S __pipe.S \
-	__geteuid.S __getegid.S nice.S __sigproc.S iopl.S ioperm.S __times.S
+	__geteuid.S __getegid.S nice.S iopl.S ioperm.S __times.S
 
 endif
 
diff -u --recursive --new-file libc-linux/sysdeps/linux/__sigproc.S libc-linux-0.35davidm/sysdeps/linux/__sigproc.S
--- libc-linux/sysdeps/linux/__sigproc.S	Sat Jul 22 04:30:03 1995
+++ libc-linux-0.35davidm/sysdeps/linux/__sigproc.S	Thu Jan  1 00:00:00 1970
@@ -1,22 +0,0 @@
-/* Copyright (C) 1993 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>
-
-SYSCALL__ (sigprocmask, 3)
-	RETSYS(__sigproc)
diff -u --recursive --new-file libc-linux/sysdeps/linux/_errlist.c libc-linux-0.35davidm/sysdeps/linux/_errlist.c
--- libc-linux/sysdeps/linux/_errlist.c	Wed May 17 00:41:06 1995
+++ libc-linux-0.35davidm/sysdeps/linux/_errlist.c	Thu Jan  1 00:00:00 1970
@@ -1,153 +0,0 @@
-#include <_G_config.h>
-#include <ansidecl.h>
-#include <stddef.h>
-#if 0
-#include <errno.h>
-#endif
-#ifdef _G_NO_STABS
-#define _sys_errlist sys_errlist
-#endif
-
-/* This is a list of all known signal numbers.  */
-
-CONST char *CONST sys_errlist[] = {
-	"Unknown error",			/* 0 */
-	"Operation not permitted", 		/* EPERM */
-	"No such file or directory", 		/* ENOENT */
-	"No such process", 			/* ESRCH */
-	"Interrupted system call", 		/* EINTR */
-	"I/O error", 				/* EIO */
-	"No such device or address", 		/* ENXIO */
-	"Arg list too long", 			/* E2BIG */
-	"Exec format error", 			/* ENOEXEC */
-	"Bad file number", 			/* EBADF */
-	"No child processes", 			/* ECHILD */
-	"Try again", 				/* EAGAIN */
-	"Out of memory", 			/* ENOMEM */
-	"Permission denied", 			/* EACCES */
-	"Bad address", 				/* EFAULT */
-	"Block device required", 		/* ENOTBLK */
-	"Device or resource busy", 		/* EBUSY */
-	"File exists", 				/* EEXIST */
-	"Cross-device link", 			/* EXDEV */
-	"No such device", 			/* ENODEV */
-	"Not a directory", 			/* ENOTDIR */
-	"Is a directory", 			/* EISDIR */
-	"Invalid argument", 			/* EINVAL */
-	"File table overflow", 			/* ENFILE */
-	"Too many open files", 			/* EMFILE */
-	"Not a typewriter", 			/* ENOTTY */
-	"Text file busy", 			/* ETXTBSY */
-	"File too large", 			/* EFBIG */
-	"No space left on device", 		/* ENOSPC */
-	"Illegal seek", 			/* ESPIPE */
-	"Read-only file system", 		/* EROFS */
-	"Too many links", 			/* EMLINK */
-	"Broken pipe", 				/* EPIPE */
-	"Math argument out of domain of func", 	/* EDOM */
-	"Math result not representable", 	/* ERANGE */
-	"Resource deadlock would occur", 	/* EDEADLK */
-	"File name too long", 			/* ENAMETOOLONG */
-	"No record locks available", 		/* ENOLCK */
-	"Function not implemented", 		/* ENOSYS */
-	"Directory not empty", 			/* ENOTEMPTY */
-	"Too many symbolic links encountered", 	/* ELOOP */
-	"Operation would block", 		/* EWOULDBLOCK */
-	"No message of desired type", 		/* ENOMSG */
-	"Identifier removed", 			/* EIDRM */
-	"Channel number out of range", 		/* ECHRNG */
-	"Level 2 not synchronized", 		/* EL2NSYNC */
-	"Level 3 halted", 			/* EL3HLT */
-	"Level 3 reset", 			/* EL3RST */
-	"Link number out of range", 		/* ELNRNG */
-	"Protocol driver not attached", 	/* EUNATCH */
-	"No CSI structure available", 		/* ENOCSI */
-	"Level 2 halted", 			/* EL2HLT */
-	"Invalid exchange", 			/* EBADE */
-	"Invalid request descriptor", 		/* EBADR */
-	"Exchange full", 			/* EXFULL */
-	"No anode", 				/* ENOANO */
-	"Invalid request code", 		/* EBADRQC */
-	"Invalid slot", 			/* EBADSLT */
-	"File locking deadlock error", 		/* EDEADLOCK */
-	"Bad font file format", 		/* EBFONT */
-	"Device not a stream", 			/* ENOSTR */
-	"No data available", 			/* ENODATA */
-	"Timer expired", 			/* ETIME */
-	"Out of streams resources", 		/* ENOSR */
-	"Machine is not on the network", 	/* ENONET */
-	"Package not installed", 		/* ENOPKG */
-	"Object is remote", 			/* EREMOTE */
-	"Link has been severed", 		/* ENOLINK */
-	"Advertise error", 			/* EADV */
-	"Srmount error", 			/* ESRMNT */
-	"Communication error on send", 		/* ECOMM */
-	"Protocol error", 			/* EPROTO */
-	"Multihop attempted", 			/* EMULTIHOP */
-	"RFS specific error", 			/* EDOTDOT */
-	"Not a data message", 			/* EBADMSG */
-	"Value too large for defined data type", 	/* EOVERFLOW */
-	"Name not unique on network", 		/* ENOTUNIQ */
-	"File descriptor in bad state", 	/* EBADFD */
-	"Remote address changed", 		/* EREMCHG */
-	"Can not access a needed shared library", 	/* ELIBACC */
-	"Accessing a corrupted shared library", 	/* ELIBBAD */
-	".lib section in a.out corrupted", 	/* ELIBSCN */
-	"Attempting to link in too many shared libraries", 	/* ELIBMAX */
-	"Cannot exec a shared library directly", 	/* ELIBEXEC */
-	"Illegal byte sequence", 		/* EILSEQ */
-	"Interrupted system call should be restarted", 	/* ERESTART */
-	"Streams pipe error", 			/* ESTRPIPE */
-	"Too many users", 			/* EUSERS */
-	"Socket operation on non-socket", 	/* ENOTSOCK */
-	"Destination address required", 	/* EDESTADDRREQ */
-	"Message too long", 			/* EMSGSIZE */
-	"Protocol wrong type for socket", 	/* EPROTOTYPE */
-	"Protocol not available", 		/* ENOPROTOOPT */
-	"Protocol not supported", 		/* EPROTONOSUPPORT */
-	"Socket type not supported", 		/* ESOCKTNOSUPPORT */
-	"Operation not supported on transport endpoint", 	/* EOPNOTSUPP */
-	"Protocol family not supported", 	/* EPFNOSUPPORT */
-	"Address family not supported by protocol", 	/* EAFNOSUPPORT */
-	"Address already in use", 		/* EADDRINUSE */
-	"Cannot assign requested address", 	/* EADDRNOTAVAIL */
-	"Network is down", 			/* ENETDOWN */
-	"Network is unreachable", 		/* ENETUNREACH */
-	"Network dropped connection because of reset", 	/* ENETRESET */
-	"Software caused connection abort", 	/* ECONNABORTED */
-	"Connection reset by peer", 		/* ECONNRESET */
-	"No buffer space available", 		/* ENOBUFS */
-	"Transport endpoint is already connected", 	/* EISCONN */
-	"Transport endpoint is not connected", 	/* ENOTCONN */
-	"Cannot send after transport endpoint shutdown", 	/* ESHUTDOWN */
-	"Too many references: cannot splice", 	/* ETOOMANYREFS */
-	"Connection timed out", 		/* ETIMEDOUT */
-	"Connection refused", 			/* ECONNREFUSED */
-	"Host is down", 			/* EHOSTDOWN */
-	"No route to host", 			/* EHOSTUNREACH */
-	"Operation already in progress", 	/* EALREADY */
-	"Operation now in progress", 		/* EINPROGRESS */
-	"Stale NFS file handle", 		/* ESTALE */
-	"Structure needs cleaning", 		/* EUCLEAN */
-	"Not a XENIX named type file", 		/* ENOTNAM */
-	"No XENIX semaphores available", 	/* ENAVAIL */
-	"Is a named type file", 		/* EISNAM */
-	"Remote I/O error", 			/* EREMOTEIO */
-	NULL
-};
-
-
-#define NR_ERRORS ((sizeof (_sys_errlist))/(sizeof(char *))-1)
-
-CONST int _sys_nerr = NR_ERRORS;
-
-#ifndef _G_NO_STABS
-
-#include <gnu-stabs.h>
-#ifdef weak_alias
-weak_alias (_sys_errlist, sys_errlist);
-weak_alias (_sys_nerr, sys_nerr);
-#endif
-#else
-CONST int sys_nerr = NR_ERRORS;
-#endif
diff -u --recursive --new-file libc-linux/sysdeps/linux/_siglist.c libc-linux-0.35davidm/sysdeps/linux/_siglist.c
--- libc-linux/sysdeps/linux/_siglist.c	Wed May 17 00:41:06 1995
+++ libc-linux-0.35davidm/sysdeps/linux/_siglist.c	Thu Jan  1 00:00:00 1970
@@ -1,54 +0,0 @@
-#include <_G_config.h>
-#include <ansidecl.h>
-#include <stddef.h>
-#include <signal.h>
-
-#ifdef _G_NO_STABS
-#define _sys_siglist sys_siglist
-#endif
-
-/* This is a list of all known signal numbers.  */
-
-CONST char *CONST _sys_siglist[] =
-  {
-    "Unknown signal",
-    "Hangup",
-    "Interrupt",
-    "Quit",
-    "Illegal instruction",
-    "Trace/breakpoint trap",
-    "IOT trap/Abort",
-    "Bus error",
-    "Floating point exception",
-    "Killed",
-    "User defined signal 1",
-    "Segmentation fault",
-    "User defined signal 2",
-    "Broken pipe",
-    "Alarm clock",
-    "Terminated",
-    "Stack fault",
-    "Child exited",
-    "Continued",
-    "Stopped (signal)",
-    "Stopped",
-    "Stopped (tty input)",
-    "Stopped (tty output)",
-    "Possible I/O",
-    "CPU time limit exceeded",
-    "File size limit exceeded",
-    "Virtual time alarm",
-    "Profile signal",
-    "Window size changed",
-    "File lock lost",
-    "Power failure",
-    "Unused signal",
-    NULL
-  };
-
-#ifndef _G_NO_STABS
-#include <gnu-stabs.h>
-#ifdef weak_alias
-weak_alias (_sys_siglist, sys_siglist);
-#endif
-#endif
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/Makefile libc-linux-0.35davidm/sysdeps/linux/alpha/Makefile
--- libc-linux/sysdeps/linux/alpha/Makefile	Fri Jul  7 04:12:37 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/Makefile	Thu Aug 31 04:17:59 1995
@@ -30,8 +30,8 @@
 
 SRC1S = __brk.c __fcntl.c __fpu_control.c \
 	__sbrk.c __select.c __sigact.c getprio.c ieee.c libc_exit.c \
-	__copysign.c __infnan.c __isinf.c __isnan.c \
-	ptrace.c readdir.c sigsuspend.c \
+	__copysign.c __infnan.c __isinf.c __isnan.c _siglist.c \
+	ptrace.c readdir.c sigsuspend.c _errlist.c \
 	accept.c bind.c connect.c getpeernam.c getsocknam.c \
 	getsockopt.c listen.c \
 	recv.c send.c \
@@ -39,7 +39,7 @@
 	alarm.c creat.c pause.c time.c __utimes.c nice.c mmap.c __sigproc.c \
 	__times.c io.c getdnnm.c
 
-SRC2S =
+SRC2S =	__sigproc.S 
 SRC3S = ____sig.S syscall.S __longjmp.S __setjmp.S  __getppid.S \
 	__pipe.S __geteuid.S __getegid.S sendto.S recvfrom.S
 
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__getegid.S libc-linux-0.35davidm/sysdeps/linux/alpha/__getegid.S
--- libc-linux/sysdeps/linux/alpha/__getegid.S	Sat Jun  3 23:20:54 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__getegid.S	Sat Aug 26 22:31:31 1995
@@ -5,7 +5,9 @@
 	.globl	__getegid
 	.ent	__getegid
 __getegid:
+	.frame	sp,0,ra,0
 	ldgp		gp,0(pv)
+	.prologue 1
 	lda		v0,SYS_getxgid(zero)
 	call_pal	PAL_callsys;
 	beq		a3,1f
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__geteuid.S libc-linux-0.35davidm/sysdeps/linux/alpha/__geteuid.S
--- libc-linux/sysdeps/linux/alpha/__geteuid.S	Sat Jun  3 21:35:21 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__geteuid.S	Sat Aug 26 22:31:42 1995
@@ -5,7 +5,9 @@
 	.globl	__geteuid
 	.ent	__geteuid
 __geteuid:
+	.frame	sp,0,ra,0
 	ldgp		gp,0(t12)
+	.prologue 1
 	lda		v0,SYS_getxuid(zero)
 	call_pal	PAL_callsys;
 	beq		a3,1f
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__getppid.S libc-linux-0.35davidm/sysdeps/linux/alpha/__getppid.S
--- libc-linux/sysdeps/linux/alpha/__getppid.S	Sat Jun  3 21:35:29 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__getppid.S	Sat Aug 26 22:31:54 1995
@@ -5,7 +5,9 @@
 	.globl	__getppid
 	.ent	__getppid
 __getppid:
+	.frame	sp,0,ra,0
 	ldgp		gp,0(t12)
+	.prologue 1
 	lda		v0,SYS_getxpid(zero)
 	call_pal	PAL_callsys;
 	beq		a3,1f
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__longjmp.S libc-linux-0.35davidm/sysdeps/linux/alpha/__longjmp.S
--- libc-linux/sysdeps/linux/alpha/__longjmp.S	Wed May 17 16:57:29 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__longjmp.S	Sat Aug 26 22:33:29 1995
@@ -2,7 +2,8 @@
 #include <alpha/regdef.h>
 #include <alpha/pal.h>
 
-/* Jump to the position specified by ENV, causing the
+/*
+ * Jump to the position specified by ENV, causing the
  * setjmp call there to return VAL, or 1 if VAL is 0. 
  * Usage:
  *	void __longjmp(jmp_buf *buf, int val)
@@ -11,23 +12,10 @@
 	.globl	__longjmp
 	.ent	__longjmp
 __longjmp:
-	/* Squirrel away args/ra... */
-	lda	sp,-24(sp)
-	stq	ra,0(sp)
-	stq	a0,8(sp)
-	stq	a1,16(sp)
-
-#if 0
-	/* Someone is confused. This is what siglongjmp is for. */
-	/* Set signal mask */
-	ldq	a0,528(a0)
-	jsr	ra,sigsetmask
-#endif
-
-	ldq	a0,8(sp)
-	ldq	a1,16(sp)
-
-	/* Re-establish registers.  V0 gets set with whatever
+	.frame	sp,0,ra,0
+	.prologue 1
+	/*
+	 * Re-establish registers.  V0 gets set with whatever
 	 * we specify, unless we specify zero.  In order to
 	 * avoid ambiguity, we must always return nonzero to
 	 * the caller of sigjmp...
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__pipe.S libc-linux-0.35davidm/sysdeps/linux/alpha/__pipe.S
--- libc-linux/sysdeps/linux/alpha/__pipe.S	Sat Jun  3 21:35:03 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__pipe.S	Sat Aug 26 22:34:07 1995
@@ -5,7 +5,9 @@
 	.globl	__pipe
 	.ent	__pipe
 __pipe:
+	.frame	sp,0,ra,0
 	ldgp		gp,0(t12)
+	.prologue 1
 	lda		v0,SYS_pipe(zero)
 	call_pal	PAL_callsys;
 	beq		a3,1f
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__sbrk.c libc-linux-0.35davidm/sysdeps/linux/alpha/__sbrk.c
--- libc-linux/sysdeps/linux/alpha/__sbrk.c	Thu May 25 00:24:40 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__sbrk.c	Wed Aug  9 15:09:28 1995
@@ -13,18 +13,18 @@
 void *
 __sbrk(ptrdiff_t increment)
 {
-  long long tmp;
+  long long newbrk, current;
+
+  current = (long long) ___brk_addr;
+
+  if (increment == 0)
+    return (void *) current;
+
+  newbrk = ((long long) ___brk_addr + increment + 7ULL) & ~7ULL;
+  ___brk_addr = (void *) ___brk(newbrk);
+  if ((long long) ___brk_addr == newbrk)
+    return (void *) current;
 
-  increment+=8;
-  tmp = ___brk_addr+increment;
-  
-  ___brk_addr = ___brk(tmp);
-  
-  if (___brk_addr == tmp) {
-     tmp=tmp-increment;
-     tmp=(tmp+7)&~7;
-     return tmp;
-  }
   errno = ENOMEM;
-  return ((void *) -1);
+  return (void *) -1LL;
 }
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__setfpucw.S libc-linux-0.35davidm/sysdeps/linux/alpha/__setfpucw.S
--- libc-linux/sysdeps/linux/alpha/__setfpucw.S	Wed May 17 00:41:07 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__setfpucw.S	Sat Aug 26 22:34:43 1995
@@ -27,6 +27,8 @@
 	.ent	__setfpucw
 
 __setfpucw:
+	.frame	sp,24,ra,0
+	.prologue 1
 	lda	sp,-24(sp)	# Save space for ra, f0, & scratch
 	stq	ra,0(sp)
 	stt	$f0,8(sp)
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__sigproc.S libc-linux-0.35davidm/sysdeps/linux/alpha/__sigproc.S
--- libc-linux/sysdeps/linux/alpha/__sigproc.S	Thu Jan  1 00:00:00 1970
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__sigproc.S	Thu Aug 31 04:16:23 1995
@@ -0,0 +1,22 @@
+/* Copyright (C) 1993 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>
+
+SYSCALL__ (sigprocmask, 2)
+	RETSYS(__sigproc)
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/__sigproc.c libc-linux-0.35davidm/sysdeps/linux/alpha/__sigproc.c
--- libc-linux/sysdeps/linux/alpha/__sigproc.c	Wed May 17 16:59:44 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/__sigproc.c	Thu Aug 31 04:24:17 1995
@@ -1,22 +1,25 @@
 #include <syscall.h>
 #include <signal.h>
-int __sigprocmask(int how,const sigset_t *set,sigset_t *oldset) {
-  long toset;
-  long prevset;
-  if(set!=NULL) {
-    toset=(*set);
-  }
-  else {
-    toset=0;
-    how=SIG_BLOCK;
-  }
-  prevset=syscall(SYS_osf_sigprocmask,how,toset);
-  if(prevset<0) {
-    errno=-prevset;
-    return -1;
-  }
-  if(oldset!=NULL) {
-    *oldset=prevset;
-  }
-  return 0;
+#include <unistd.h>
+
+int
+__sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
+{
+    long toset, result;
+
+    if (set) {
+	toset = *set;
+    } else {
+	toset = 0;
+	how = SIG_BLOCK;
+    }
+    result = syscall(SYS_osf_sigprocmask, how, toset);
+    if (result < 0) {
+	errno = -result;
+	return -1;
+    }
+    if (oldset) {
+	*oldset = result;
+    }
+    return 0;
 }
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/_errlist.c libc-linux-0.35davidm/sysdeps/linux/alpha/_errlist.c
--- libc-linux/sysdeps/linux/alpha/_errlist.c	Thu Jan  1 00:00:00 1970
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/_errlist.c	Sat Aug 26 16:45:11 1995
@@ -0,0 +1,154 @@
+#include <_G_config.h>
+#include <ansidecl.h>
+#include <stddef.h>
+#if 0
+#include <errno.h>
+#endif
+#ifdef _G_NO_STABS
+#define _sys_errlist sys_errlist
+#endif
+
+/* This is a list of all known signal numbers.  */
+
+CONST char *CONST sys_errlist[] = {
+	"Unknown error",			/* 0 */
+	"Operation not permitted", 		/* EPERM */
+	"No such file or directory", 		/* ENOENT */
+	"No such process", 			/* ESRCH */
+	"Interrupted system call", 		/* EINTR */
+	"I/O error", 				/* EIO */
+	"No such device or address", 		/* ENXIO */
+	"Arg list too long", 			/* E2BIG */
+	"Exec format error", 			/* ENOEXEC */
+	"Bad file number", 			/* EBADF */
+	"No child processes", 			/* ECHILD */
+	"Resource deadlock would occur", 	/* EDEADLK */
+	"Out of memory", 			/* ENOMEM */
+	"Permission denied", 			/* EACCES */
+	"Bad address", 				/* EFAULT */
+	"Block device required", 		/* ENOTBLK */
+	"Device or resource busy", 		/* EBUSY */
+	"File exists", 				/* EEXIST */
+	"Cross-device link", 			/* EXDEV */
+	"No such device", 			/* ENODEV */
+	"Not a directory", 			/* ENOTDIR */
+	"Is a directory", 			/* EISDIR */
+	"Invalid argument", 			/* EINVAL */
+	"File table overflow", 			/* ENFILE */
+	"Too many open files", 			/* EMFILE */
+	"Not a typewriter", 			/* ENOTTY */
+	"Text file busy", 			/* ETXTBSY */
+	"File too large", 			/* EFBIG */
+	"No space left on device", 		/* ENOSPC */
+	"Illegal seek", 			/* ESPIPE */
+	"Read-only file system", 		/* EROFS */
+	"Too many links", 			/* EMLINK */
+	"Broken pipe", 				/* EPIPE */
+	"Math argument out of domain of func", 	/* EDOM */
+	"Math result not representable", 	/* ERANGE */
+	"Try again", 				/* EAGAIN */
+	"Operation would block", 		/* EWOULDBLOCK */
+	"Operation now in progress", 		/* EINPROGRESS */
+	"Operation already in progress", 	/* EALREADY */
+	"Socket operation on non-socket", 	/* ENOTSOCK */
+	"Destination address required", 	/* EDESTADDRREQ */
+	"Message too long", 			/* EMSGSIZE */
+	"Protocol wrong type for socket", 	/* EPROTOTYPE */
+	"Protocol not available", 		/* ENOPROTOOPT */
+	"Protocol not supported", 		/* EPROTONOSUPPORT */
+	"Socket type not supported", 		/* ESOCKTNOSUPPORT */
+	"Operation not supported on transport endpoint", /* EOPNOTSUPP */
+	"Protocol family not supported", 	/* EPFNOSUPPORT */
+	"Address family not supported by protocol", 	/* EAFNOSUPPORT */
+	"Address already in use", 		/* EADDRINUSE */
+	"Cannot assign requested address", 	/* EADDRNOTAVAIL */
+	"Network is down", 			/* ENETDOWN */
+	"Network is unreachable", 		/* ENETUNREACH */
+	"Network dropped connection because of reset", 	/* ENETRESET */
+	"Software caused connection abort", 	/* ECONNABORTED */
+	"Connection reset by peer", 		/* ECONNRESET */
+	"No buffer space available", 		/* ENOBUFS */
+	"Transport endpoint is already connected", 	/* EISCONN */
+	"Transport endpoint is not connected", 	/* ENOTCONN */
+	"Cannot send after transport endpoint shutdown", 	/* ESHUTDOWN */
+	"Too many references: cannot splice", 	/* ETOOMANYREFS */
+	"Connection timed out", 		/* ETIMEDOUT */
+	"Connection refused", 			/* ECONNREFUSED */
+	"Too many symbolic links encountered", 	/* ELOOP */
+	"File name too long", 			/* ENAMETOOLONG */
+	"Host is down", 			/* EHOSTDOWN */
+	"No route to host", 			/* EHOSTUNREACH */
+	"Directory not empty", 			/* ENOTEMPTY */
+	"Too many users", 			/* EUSERS */
+	"Quota exceeded",			/* EDQUOT */
+	"Stale NFS file handle", 		/* ESTALE */
+	"Object is remote", 			/* EREMOTE */
+	"No record locks available", 		/* ENOLCK */
+	"Function not implemented", 		/* ENOSYS */
+	"No message of desired type", 		/* ENOMSG */
+	"Identifier removed", 			/* EIDRM */
+	"Out of streams resources", 		/* ENOSR */
+	"Timer expired", 			/* ETIME */
+	"Not a data message", 			/* EBADMSG */
+	"Protocol error", 			/* EPROTO */
+	"No data available", 			/* ENODATA */
+	"Device not a stream", 			/* ENOSTR */
+	"Package not installed", 		/* ENOPKG */
+	"Illegal byte sequence", 		/* EILSEQ */
+	"Channel number out of range", 		/* ECHRNG */
+	"Level 2 not synchronized", 		/* EL2NSYNC */
+	"Level 3 halted", 			/* EL3HLT */
+	"Level 3 reset", 			/* EL3RST */
+	"Link number out of range", 		/* ELNRNG */
+	"Protocol driver not attached", 	/* EUNATCH */
+	"No CSI structure available", 		/* ENOCSI */
+	"Level 2 halted", 			/* EL2HLT */
+	"Invalid exchange", 			/* EBADE */
+	"Invalid request descriptor", 		/* EBADR */
+	"Exchange full", 			/* EXFULL */
+	"No anode", 				/* ENOANO */
+	"Invalid request code", 		/* EBADRQC */
+	"Invalid slot", 			/* EBADSLT */
+	"File locking deadlock error", 		/* EDEADLOCK */
+	"Bad font file format", 		/* EBFONT */
+	"Machine is not on the network", 	/* ENONET */
+	"Link has been severed", 		/* ENOLINK */
+	"Advertise error", 			/* EADV */
+	"Srmount error", 			/* ESRMNT */
+	"Communication error on send", 		/* ECOMM */
+	"Multihop attempted", 			/* EMULTIHOP */
+	"RFS specific error", 			/* EDOTDOT */
+	"Value too large for defined data type", 	/* EOVERFLOW */
+	"Name not unique on network", 		/* ENOTUNIQ */
+	"File descriptor in bad state", 	/* EBADFD */
+	"Remote address changed", 		/* EREMCHG */
+	"Can not access a needed shared library", 	/* ELIBACC */
+	"Accessing a corrupted shared library", 	/* ELIBBAD */
+	".lib section in a.out corrupted", 	/* ELIBSCN */
+	"Attempting to link in too many shared libraries", 	/* ELIBMAX */
+	"Cannot exec a shared library directly", 	/* ELIBEXEC */
+	"Interrupted system call should be restarted", 	/* ERESTART */
+	"Streams pipe error", 			/* ESTRPIPE */
+	"Structure needs cleaning", 		/* EUCLEAN */
+	"Not a XENIX named type file", 		/* ENOTNAM */
+	"No XENIX semaphores available", 	/* ENAVAIL */
+	"Is a named type file", 		/* EISNAM */
+	"Remote I/O error", 			/* EREMOTEIO */
+	NULL
+};
+
+
+#define NR_ERRORS ((sizeof (_sys_errlist))/(sizeof(char *))-1)
+
+CONST int _sys_nerr = NR_ERRORS;
+
+#ifndef _G_NO_STABS
+
+#include <gnu-stabs.h>
+#ifdef weak_alias
+weak_alias (_sys_errlist, sys_errlist);
+weak_alias (_sys_nerr, sys_nerr);
+#endif
+#else
+CONST int sys_nerr = NR_ERRORS;
+#endif
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/_siglist.c libc-linux-0.35davidm/sysdeps/linux/alpha/_siglist.c
--- libc-linux/sysdeps/linux/alpha/_siglist.c	Thu Jan  1 00:00:00 1970
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/_siglist.c	Fri Aug 25 01:13:24 1995
@@ -0,0 +1,54 @@
+#include <_G_config.h>
+#include <ansidecl.h>
+#include <stddef.h>
+#include <signal.h>
+
+#ifdef _G_NO_STABS
+#define _sys_siglist sys_siglist
+#endif
+
+/* This is a list of all known signal numbers.  */
+
+CONST char *CONST _sys_siglist[] =
+  {
+    "Unknown signal",
+    "Hangup",
+    "Interrupt",
+    "Quit",
+    "Illegal instruction",
+    "Trace/breakpoint trap",
+    "IOT trap/Abort",
+    "EMT trap",
+    "Floating point exception",
+    "Killed",
+    "Bus error",
+    "Segmentation fault",
+    "Bad system call",
+    "Broken pipe",
+    "Alarm clock",
+    "Terminated",
+    "Urgent I/O condition",
+    "Stopped (signal)",
+    "Stopped",
+    "Continued",
+    "Child exited",
+    "Stopped (tty input)",
+    "Stopped (tty output)",
+    "I/O possible/complete",
+    "CPU time limit exceeded",
+    "File size limit exceeded",
+    "Virtual time alarm",
+    "Profile signal",
+    "Window size changed",
+    "Information request",
+    "User defined signal 1",
+    "User defined signal 2",
+    NULL
+  };
+
+#ifndef _G_NO_STABS
+#include <gnu-stabs.h>
+#ifdef weak_alias
+weak_alias (_sys_siglist, sys_siglist);
+#endif
+#endif
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/gmon/Makefile libc-linux-0.35davidm/sysdeps/linux/alpha/gmon/Makefile
--- libc-linux/sysdeps/linux/alpha/gmon/Makefile	Fri Jun 23 04:11:05 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/gmon/Makefile	Sun Aug 27 08:41:40 1995
@@ -5,10 +5,10 @@
 
 TOPDIR=../../../..
 
-override STATIC=false
-override SHARED=false
-override DEBUG=false
-override CHECKER=false
+override STATIC:=false
+override SHARED:=false
+override DEBUG:=false
+override CHECKER:=false
 
 # That is fake for SUBDIR.
 JUMP_LIB=libgmon
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/io.c libc-linux-0.35davidm/sysdeps/linux/alpha/io.c
--- libc-linux/sysdeps/linux/alpha/io.c	Sat Jun 17 22:26:18 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/io.c	Sat Aug 26 17:04:43 1995
@@ -23,23 +23,24 @@
  * This needs to be cleaned up:
  */
 #define IOSYS_ALPHA_JENSEN	1	/* Jensen (EISA bus) */
-#define IOSYS_ALPHA_LCA		2	/* Low Cost Alpha (2106x) */
+#define IOSYS_ALPHA_PCI		2	/* PCI I/O system (LCA & APECS) */
 
-#ifdef CONFIG_PCI
-# define CONFIG_IOSYS	IOSYS_ALPHA_LCA
-#else
-# define CONFIG_IOSYS	IOSYS_ALPHA_JENSEN
-#endif
-
-
-
-#if CONFIG_IOSYS == IOSYS_ALPHA_LCA
+#if defined(CONFIG_ALPHA_NONAME)
+# define CONFIG_IOSYS	IOSYS_ALPHA_PCI
 # define IO_SHIFT	5
 # define IO_BASE	LCA_IO
 # define IO_TYPE_BYTE	0x00
 # define IO_TYPE_WORD	0x08
 # define IO_TYPE_LONG	0x18
-#elif CONFIG_IOSYS == IOSYS_ALPHA_JENSEN
+#elif defined(CONFIG_ALPHA_CABRIOLET)
+# define CONFIG_IOSYS	IOSYS_ALPHA_PCI
+# define IO_SHIFT	5
+# define IO_BASE	APECS_IO
+# define IO_TYPE_BYTE	0x00
+# define IO_TYPE_WORD	0x08
+# define IO_TYPE_LONG	0x18
+#elif defined(CONFIG_ALPHA_JENSEN)
+# define CONFIG_IOSYS	IOSYS_ALPHA_JENSEN
 # define IO_SHIFT	7
 # define IO_BASE	EISA_IO
 # define IO_TYPE_BYTE	0x00
@@ -51,6 +52,8 @@
 
 
 static struct hae hae;
+
+extern void sethae (unsigned long new_hae);
 
 /*
  * DON'T try inlining this!  Compared to a syscall, the function calling
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/pause.c libc-linux-0.35davidm/sysdeps/linux/alpha/pause.c
--- libc-linux/sysdeps/linux/alpha/pause.c	Wed May 17 00:41:07 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/pause.c	Tue Aug 15 02:14:12 1995
@@ -1,8 +1,12 @@
 #include <unistd.h>
+#include <signal.h>
 
-int pause(void) {
-  unsigned int i;
-  while((i=sleep(1000000))==0) {
-  }
-  return -1;
+int pause(void)
+{
+	sigset_t mask;
+
+	__sigemptyset(&mask);
+	__sigprocmask(SIG_BLOCK, &mask, &mask);
+	sigsuspend(&mask);	/* why no __sigsuspend?? */
+	return -1;
 }
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/recvfrom.S libc-linux-0.35davidm/sysdeps/linux/alpha/recvfrom.S
--- libc-linux/sysdeps/linux/alpha/recvfrom.S	Sun Jul 23 05:02:52 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/recvfrom.S	Sat Aug 26 22:35:26 1995
@@ -18,7 +18,9 @@
 	.globl	recvfrom
 	.ent	recvfrom
 recvfrom:
+	.frame	sp,0,ra,0
 	ldgp	gp,0(pv)
+	.prologue 1
 	lda	v0,SYS_recvfrom	# syscall no into v0, leave a0-a5 as-is
 
 	call_pal PAL_callsys	# Invoke system call
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/sendto.S libc-linux-0.35davidm/sysdeps/linux/alpha/sendto.S
--- libc-linux/sysdeps/linux/alpha/sendto.S	Sun Jul 23 05:02:45 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/sendto.S	Sat Aug 26 22:35:39 1995
@@ -18,7 +18,9 @@
 	.globl	sendto
 	.ent	sendto
 sendto:
+	.frame	sp,0,ra,0
 	ldgp	gp,0(pv)
+	.prologue 1
 	lda	v0,SYS_sendto	# syscall no into v0, leave a0-a5 as-is
 
 	call_pal PAL_callsys	# Invoke system call
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/syscall.S libc-linux-0.35davidm/sysdeps/linux/alpha/syscall.S
--- libc-linux/sysdeps/linux/alpha/syscall.S	Sat Jun  3 23:21:19 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/syscall.S	Sat Aug 26 22:30:08 1995
@@ -18,7 +18,9 @@
 	.globl	syscall
 	.ent	syscall
 syscall:
+	.frame	sp,0,ra,0
 	ldgp	gp,0(t12)	# Make sure gp points somewhere sane
+	.prologue 1
 	bis	a0,a0,v0	# Syscall number -> v0
 	bis	a1,a1,a0	# arg1-arg5 -> a0-a4
 	bis	a2,a2,a1
@@ -42,6 +44,8 @@
 	.globl	syscall0
 	.ent	syscall0
 syscall0:
+	.frame	sp,0,ra,0
+	.prologue 1
 	bis		a0,a0,v0
 	call_pal	PAL_callsys
 	beq		a3,1f		# On error, return -errno to caller
@@ -53,6 +57,8 @@
 	.globl	syscall1
 	.ent	syscall1
 syscall1:
+	.frame	sp,0,ra,0
+	.prologue 1
 	bis		a1,a1,v0
 	call_pal	PAL_callsys
 	beq		a3,1f		# On error, return -errno to caller
@@ -64,6 +70,8 @@
 	.globl	syscall2
 	.ent	syscall2
 syscall2:
+	.frame	sp,0,ra,0
+	.prologue 1
 	bis		a2,a2,v0
 	call_pal	PAL_callsys
 	beq		a3,1f		# On error, return -errno to caller
@@ -75,6 +83,8 @@
 	.globl	syscall3
 	.ent	syscall3
 syscall3:
+	.frame	sp,0,ra,0
+	.prologue 1
 	bis		a3,a3,v0
 	call_pal	PAL_callsys
 	beq		a3,1f		# On error, return -errno to caller
@@ -86,6 +96,8 @@
 	.globl	syscall4
 	.ent	syscall4
 syscall4:
+	.frame	sp,0,ra,0
+	.prologue 1
 	bis		a4,a4,v0
 	call_pal	PAL_callsys
 	beq		a3,1f		# On error, return -errno to caller
@@ -97,6 +109,8 @@
 	.globl	syscall5
 	.ent	syscall5
 syscall5:
+	.frame	sp,0,ra,0
+	.prologue 1
 	bis		a5,a5,v0
 	call_pal	PAL_callsys
 	beq		a3,1f		# On error, return -errno to caller
diff -u --recursive --new-file libc-linux/sysdeps/linux/alpha/sysdep.h libc-linux-0.35davidm/sysdeps/linux/alpha/sysdep.h
--- libc-linux/sysdeps/linux/alpha/sysdep.h	Sat Jul 22 04:31:39 1995
+++ libc-linux-0.35davidm/sysdeps/linux/alpha/sysdep.h	Sun Aug 27 07:29:20 1995
@@ -57,13 +57,16 @@
     .ent name;						\
 .globl	name;						\
 name:							\
-    ldgp	gp,0(pv);				\
+    .frame	sp,0,ra,0;				\
+    .prologue	1;					\
     lda		v0,SYS_##syscall_name(zero);		\
     call_pal	PAL_callsys;				\
-    beq		a3,Lexit;				\
+    beq		a3,1f;					\
+    br		gp,2f;					\
+2:  ldgp	gp,0(gp);				\
     stl		v0,errno;				\
     lda		v0,-1(zero);				\
-   Lexit:
+1:
 
 #define RETURN  ret zero,(ra)
 /* Linux doesn't use it. */
diff -u --recursive --new-file libc-linux/sysdeps/linux/i386/__sigproc.S libc-linux-0.35davidm/sysdeps/linux/i386/__sigproc.S
--- libc-linux/sysdeps/linux/i386/__sigproc.S	Thu Jan  1 00:00:00 1970
+++ libc-linux-0.35davidm/sysdeps/linux/i386/__sigproc.S	Wed Jul 26 19:08:32 1995
@@ -0,0 +1,22 @@
+/* Copyright (C) 1993 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>
+
+SYSCALL__ (sigprocmask, 3)
+	RETSYS(__sigproc)
diff -u --recursive --new-file libc-linux/sysdeps/linux/i386/_errlist.c libc-linux-0.35davidm/sysdeps/linux/i386/_errlist.c
--- libc-linux/sysdeps/linux/i386/_errlist.c	Thu Jan  1 00:00:00 1970
+++ libc-linux-0.35davidm/sysdeps/linux/i386/_errlist.c	Sat Aug 26 16:27:35 1995
@@ -0,0 +1,153 @@
+#include <_G_config.h>
+#include <ansidecl.h>
+#include <stddef.h>
+#if 0
+#include <errno.h>
+#endif
+#ifdef _G_NO_STABS
+#define _sys_errlist sys_errlist
+#endif
+
+/* This is a list of all known signal numbers.  */
+
+CONST char *CONST sys_errlist[] = {
+	"Unknown error",			/* 0 */
+	"Operation not permitted", 		/* EPERM */
+	"No such file or directory", 		/* ENOENT */
+	"No such process", 			/* ESRCH */
+	"Interrupted system call", 		/* EINTR */
+	"I/O error", 				/* EIO */
+	"No such device or address", 		/* ENXIO */
+	"Arg list too long", 			/* E2BIG */
+	"Exec format error", 			/* ENOEXEC */
+	"Bad file number", 			/* EBADF */
+	"No child processes", 			/* ECHILD */
+	"Try again", 				/* EAGAIN */
+	"Out of memory", 			/* ENOMEM */
+	"Permission denied", 			/* EACCES */
+	"Bad address", 				/* EFAULT */
+	"Block device required", 		/* ENOTBLK */
+	"Device or resource busy", 		/* EBUSY */
+	"File exists", 				/* EEXIST */
+	"Cross-device link", 			/* EXDEV */
+	"No such device", 			/* ENODEV */
+	"Not a directory", 			/* ENOTDIR */
+	"Is a directory", 			/* EISDIR */
+	"Invalid argument", 			/* EINVAL */
+	"File table overflow", 			/* ENFILE */
+	"Too many open files", 			/* EMFILE */
+	"Not a typewriter", 			/* ENOTTY */
+	"Text file busy", 			/* ETXTBSY */
+	"File too large", 			/* EFBIG */
+	"No space left on device", 		/* ENOSPC */
+	"Illegal seek", 			/* ESPIPE */
+	"Read-only file system", 		/* EROFS */
+	"Too many links", 			/* EMLINK */
+	"Broken pipe", 				/* EPIPE */
+	"Math argument out of domain of func", 	/* EDOM */
+	"Math result not representable", 	/* ERANGE */
+	"Resource deadlock would occur", 	/* EDEADLK */
+	"File name too long", 			/* ENAMETOOLONG */
+	"No record locks available", 		/* ENOLCK */
+	"Function not implemented", 		/* ENOSYS */
+	"Directory not empty", 			/* ENOTEMPTY */
+	"Too many symbolic links encountered", 	/* ELOOP */
+	"Operation would block", 		/* EWOULDBLOCK */
+	"No message of desired type", 		/* ENOMSG */
+	"Identifier removed", 			/* EIDRM */
+	"Channel number out of range", 		/* ECHRNG */
+	"Level 2 not synchronized", 		/* EL2NSYNC */
+	"Level 3 halted", 			/* EL3HLT */
+	"Level 3 reset", 			/* EL3RST */
+	"Link number out of range", 		/* ELNRNG */
+	"Protocol driver not attached", 	/* EUNATCH */
+	"No CSI structure available", 		/* ENOCSI */
+	"Level 2 halted", 			/* EL2HLT */
+	"Invalid exchange", 			/* EBADE */
+	"Invalid request descriptor", 		/* EBADR */
+	"Exchange full", 			/* EXFULL */
+	"No anode", 				/* ENOANO */
+	"Invalid request code", 		/* EBADRQC */
+	"Invalid slot", 			/* EBADSLT */
+	"File locking deadlock error", 		/* EDEADLOCK */
+	"Bad font file format", 		/* EBFONT */
+	"Device not a stream", 			/* ENOSTR */
+	"No data available", 			/* ENODATA */
+	"Timer expired", 			/* ETIME */
+	"Out of streams resources", 		/* ENOSR */
+	"Machine is not on the network", 	/* ENONET */
+	"Package not installed", 		/* ENOPKG */
+	"Object is remote", 			/* EREMOTE */
+	"Link has been severed", 		/* ENOLINK */
+	"Advertise error", 			/* EADV */
+	"Srmount error", 			/* ESRMNT */
+	"Communication error on send", 		/* ECOMM */
+	"Protocol error", 			/* EPROTO */
+	"Multihop attempted", 			/* EMULTIHOP */
+	"RFS specific error", 			/* EDOTDOT */
+	"Not a data message", 			/* EBADMSG */
+	"Value too large for defined data type", 	/* EOVERFLOW */
+	"Name not unique on network", 		/* ENOTUNIQ */
+	"File descriptor in bad state", 	/* EBADFD */
+	"Remote address changed", 		/* EREMCHG */
+	"Can not access a needed shared library", 	/* ELIBACC */
+	"Accessing a corrupted shared library", 	/* ELIBBAD */
+	".lib section in a.out corrupted", 	/* ELIBSCN */
+	"Attempting to link in too many shared libraries", 	/* ELIBMAX */
+	"Cannot exec a shared library directly", 	/* ELIBEXEC */
+	"Illegal byte sequence", 		/* EILSEQ */
+	"Interrupted system call should be restarted", 	/* ERESTART */
+	"Streams pipe error", 			/* ESTRPIPE */
+	"Too many users", 			/* EUSERS */
+	"Socket operation on non-socket", 	/* ENOTSOCK */
+	"Destination address required", 	/* EDESTADDRREQ */
+	"Message too long", 			/* EMSGSIZE */
+	"Protocol wrong type for socket", 	/* EPROTOTYPE */
+	"Protocol not available", 		/* ENOPROTOOPT */
+	"Protocol not supported", 		/* EPROTONOSUPPORT */
+	"Socket type not supported", 		/* ESOCKTNOSUPPORT */
+	"Operation not supported on transport endpoint", 	/* EOPNOTSUPP */
+	"Protocol family not supported", 	/* EPFNOSUPPORT */
+	"Address family not supported by protocol", 	/* EAFNOSUPPORT */
+	"Address already in use", 		/* EADDRINUSE */
+	"Cannot assign requested address", 	/* EADDRNOTAVAIL */
+	"Network is down", 			/* ENETDOWN */
+	"Network is unreachable", 		/* ENETUNREACH */
+	"Network dropped connection because of reset", 	/* ENETRESET */
+	"Software caused connection abort", 	/* ECONNABORTED */
+	"Connection reset by peer", 		/* ECONNRESET */
+	"No buffer space available", 		/* ENOBUFS */
+	"Transport endpoint is already connected", 	/* EISCONN */
+	"Transport endpoint is not connected", 	/* ENOTCONN */
+	"Cannot send after transport endpoint shutdown", 	/* ESHUTDOWN */
+	"Too many references: cannot splice", 	/* ETOOMANYREFS */
+	"Connection timed out", 		/* ETIMEDOUT */
+	"Connection refused", 			/* ECONNREFUSED */
+	"Host is down", 			/* EHOSTDOWN */
+	"No route to host", 			/* EHOSTUNREACH */
+	"Operation already in progress", 	/* EALREADY */
+	"Operation now in progress", 		/* EINPROGRESS */
+	"Stale NFS file handle", 		/* ESTALE */
+	"Structure needs cleaning", 		/* EUCLEAN */
+	"Not a XENIX named type file", 		/* ENOTNAM */
+	"No XENIX semaphores available", 	/* ENAVAIL */
+	"Is a named type file", 		/* EISNAM */
+	"Remote I/O error", 			/* EREMOTEIO */
+	NULL
+};
+
+
+#define NR_ERRORS ((sizeof (_sys_errlist))/(sizeof(char *))-1)
+
+CONST int _sys_nerr = NR_ERRORS;
+
+#ifndef _G_NO_STABS
+
+#include <gnu-stabs.h>
+#ifdef weak_alias
+weak_alias (_sys_errlist, sys_errlist);
+weak_alias (_sys_nerr, sys_nerr);
+#endif
+#else
+CONST int sys_nerr = NR_ERRORS;
+#endif
diff -u --recursive --new-file libc-linux/sysdeps/linux/i386/_siglist.c libc-linux-0.35davidm/sysdeps/linux/i386/_siglist.c
--- libc-linux/sysdeps/linux/i386/_siglist.c	Thu Jan  1 00:00:00 1970
+++ libc-linux-0.35davidm/sysdeps/linux/i386/_siglist.c	Wed May 17 00:41:06 1995
@@ -0,0 +1,54 @@
+#include <_G_config.h>
+#include <ansidecl.h>
+#include <stddef.h>
+#include <signal.h>
+
+#ifdef _G_NO_STABS
+#define _sys_siglist sys_siglist
+#endif
+
+/* This is a list of all known signal numbers.  */
+
+CONST char *CONST _sys_siglist[] =
+  {
+    "Unknown signal",
+    "Hangup",
+    "Interrupt",
+    "Quit",
+    "Illegal instruction",
+    "Trace/breakpoint trap",
+    "IOT trap/Abort",
+    "Bus error",
+    "Floating point exception",
+    "Killed",
+    "User defined signal 1",
+    "Segmentation fault",
+    "User defined signal 2",
+    "Broken pipe",
+    "Alarm clock",
+    "Terminated",
+    "Stack fault",
+    "Child exited",
+    "Continued",
+    "Stopped (signal)",
+    "Stopped",
+    "Stopped (tty input)",
+    "Stopped (tty output)",
+    "Possible I/O",
+    "CPU time limit exceeded",
+    "File size limit exceeded",
+    "Virtual time alarm",
+    "Profile signal",
+    "Window size changed",
+    "File lock lost",
+    "Power failure",
+    "Unused signal",
+    NULL
+  };
+
+#ifndef _G_NO_STABS
+#include <gnu-stabs.h>
+#ifdef weak_alias
+weak_alias (_sys_siglist, sys_siglist);
+#endif
+#endif
