summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--string/tester.c6
-rw-r--r--sunrpc/clnt_perr.c4
-rw-r--r--sysdeps/i386/i586/strchr.S6
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c47
-rw-r--r--sysdeps/unix/sysv/linux/poll.c2
-rw-r--r--sysdeps/unix/sysv/linux/signal.c1
-rw-r--r--sysdeps/unix/sysv/linux/statbuf.h4
8 files changed, 60 insertions, 33 deletions
diff --git a/ChangeLog b/ChangeLog
index 90a5f0e41a..29a86e6d80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,31 @@
+Thu Oct 26 23:11:11 1995  Ulrich Drepper  <drepper@ipd.info.uni-karlsruhe.de>
+
+	* sysdeps/unix/sysv/linux/poll.c: Don't define as stub.  Use
+	simulation of system call using select.
+
+	* sysdeps/unix/sysv/linux/signal.c: Use POSIX implementation.
+
+	* sysdeps/unix/sysv/linux/statbuf.h: Define _STAT_VER.
+
+	* sysdeps/unix/sysv/linux/i386/sigaction.c: Correct parameter
+	name usage (new->act, old->oact).
+	Correct asm statement because of gcc strangeness.
+	
+	* sysdeps/i386/i586/strchr.S: Correct typos: cmp -> cmpb.
+
+	* sunrpc/clnt_perr.c: Remove declaration of sys_errlist.  They
+	conflict with the ones in stdio.h.
+
+	* string/tester.c: %Z is no complete format.  Change to %Zd.
+
 Thu Oct 26 18:13:33 1995  Miles Bader  <miles@gnu.ai.mit.edu>
 
 	* sysdeps/mach/hurd/bind.c (bind): Swap args to dir_link.
 	* sysdeps/mach/hurd/link.c (__link): Ditto.
+	* sysdeps/mach/hurd/symlink.c (__symlink): Ditto.
 	* sysdeps/mach/hurd/mknod.c (__mknod): Ditto.
 	Include "stdio-common/_itoa.h" instead of "stdio/_itoa.h".
 
-	* sysdeps/mach/hurd/symlink.c (__symlink): Ditto.
-
 Thu Oct 26 00:11:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
 	* sysdeps/unix/sysv/linux/i386/sigaction.c: New file.
diff --git a/string/tester.c b/string/tester.c
index 74ac34541e..34d4e1c8e0 100644
--- a/string/tester.c
+++ b/string/tester.c
@@ -177,11 +177,11 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
 
   (void) strcpy(one, "abc");
   (void) strncpy(one, "xyz", 0);		/* Zero-length copy. */
-  equal(one, "abc", 10);	
+  equal(one, "abc", 10);
 
   (void) strncpy(one, "", 2);		/* Zero-length source. */
   equal(one, "", 11);
-  equal(one+1, "", 12);	
+  equal(one+1, "", 12);
   equal(one+2, "c", 13);
 
   (void) strcpy(one, "hi there");
@@ -563,7 +563,7 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
     else
       {
 	status = EXIT_FAILURE;
-	printf("%Z errors.\n", errors);
+	printf("%Zd errors.\n", errors);
       }
     exit(status);
   }
diff --git a/sunrpc/clnt_perr.c b/sunrpc/clnt_perr.c
index 1876c7f163..4a8c084e13 100644
--- a/sunrpc/clnt_perr.c
+++ b/sunrpc/clnt_perr.c
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro";
 #include <rpc/auth.h>
 #include <rpc/clnt.h>
 
-extern char *sys_errlist[];
+/* extern char *sys_errlist[]; --drepper@gnu */
 /* extern char *sprintf(); --roland@gnu */
 static char *auth_errmsg();
 
@@ -230,7 +230,7 @@ clnt_spcreateerror(s)
 	char *s;
 {
 	extern int sys_nerr;
-	extern char *sys_errlist[];
+	/* extern char *sys_errlist[]; --drepper@gnu */
 	char *str = _buf();
 
 	if (str == 0)
diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
index 982c80ec9a..30de6b069d 100644
--- a/sysdeps/i386/i586/strchr.S
+++ b/sysdeps/i386/i586/strchr.S
@@ -74,7 +74,7 @@ ENTRY (strchr)
 
 	je L2			/* aligned => return pointer */
 
-	cmp $0, %cl		/* is byte NUL? */
+	cmpb $0, %cl		/* is byte NUL? */
 	je L3			/* yes => return NULL */
 
 	incl %eax		/* increment pointer */
@@ -87,7 +87,7 @@ ENTRY (strchr)
 
 	je L2			/* aligned => return pointer */
 
-	cmp $0, %cl		/* is byte NUL? */
+	cmpb $0, %cl		/* is byte NUL? */
 	je L3			/* yes => return NULL */
 
 	incl %eax		/* increment pointer */
@@ -100,7 +100,7 @@ ENTRY (strchr)
 
 	je L2			/* aligned => return pointer */
 
-	cmp $0, %cl		/* is byte NUL? */
+	cmpb $0, %cl		/* is byte NUL? */
 	je L3			/* yes => return NULL */
 
 	incl %eax		/* increment pointer */
diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c
index 6986290da5..64c8f9a404 100644
--- a/sysdeps/unix/sysv/linux/i386/sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -31,20 +31,20 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
   struct sigaction newact;
   int result;
 
-  if (new)
+  if (act)
     {
-      newact = *new;
-      new = &newact;
-      new->sa_restorer = ((new->sa_flags & SA_NOMASK)
-			  ? &&restore_nomask : &&restore);
+      newact = *act;
+      newact.sa_restorer = ((act->sa_flags & SA_NOMASK)
+			    ? &&restore_nomask : &&restore);
+      act = &newact;
     }
 
   asm volatile ("pushl %%ebx\n"
-		"movl %1, %%ebx\n"
+		"movl %2, %%ebx\n"
 		"int $0x80\n"
 		"popl %%ebx"
 		: "=a" (result)
-		: "0" (SYS_ify (sigaction)), "g" (sig), "c" (new), "d" (old));
+		: "0" (SYS_ify (sigaction)), "g" (sig), "c" (act), "d" (oact));
 
   if (result < 0)
     {
@@ -56,31 +56,34 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
  restore:
   asm (
 #ifdef	PIC
-       "	pushl %ebx\n"
+       "	pushl %%ebx\n"
        "	call 0f\n"
-       "0:	popl %ebx\n"
-       "	addl $_GLOBAL_OFFSET_TABLE_+[.-0b],%ebx\n"
+       "0:	popl %%ebx\n"
+       "	addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %%ebx\n"
        "	addl $8, %%esp\n"
        "	call __sigsetmask@PLT\n"
        "	addl $8, %%esp\n"
-       "	popl %ebx\n"
+       "	popl %%ebx\n"
 #else
        "	addl $4, %%esp\n"
        "	call __sigsetmask\n"
        "	addl $4, %%esp\n"
 #endif
-       "popl %eax\n"
-       "popl %ecx\n"
-       "popl %edx\n"
-       "popf\n"
-       "ret");
+       "	popl %%eax\n"
+       "	popl %%ecx\n"
+       "	popl %%edx\n"
+       "	popf\n"
+       "	ret"
+       : : );
  restore_nomask:
-  asm ("addl $4, %esp\n"
-       "popl %eax\n"
-       "popl %ecx\n"
-       "popl %edx\n"
-       "popf\n"
-       "ret");
+  asm ("	addl $4, %%esp\n"
+       "	popl %%eax\n"
+       "	popl %%ecx\n"
+       "	popl %%edx\n"
+       "	popf\n"
+       "	ret"
+       : : );
+  /* NOTREACHED */
 }
 
 weak_alias (__sigaction, sigaction)
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index ff43a76a63..198819970a 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1 +1 @@
-#include <sysdeps/stub/poll.c>
+#include <sysdeps/unix/bsd/poll.c>
diff --git a/sysdeps/unix/sysv/linux/signal.c b/sysdeps/unix/sysv/linux/signal.c
new file mode 100644
index 0000000000..55f1108498
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/signal.c
@@ -0,0 +1 @@
+#include <sysdeps/posix/signal.c>
diff --git a/sysdeps/unix/sysv/linux/statbuf.h b/sysdeps/unix/sysv/linux/statbuf.h
index ad81704ae5..5aabdd30ad 100644
--- a/sysdeps/unix/sysv/linux/statbuf.h
+++ b/sysdeps/unix/sysv/linux/statbuf.h
@@ -19,6 +19,10 @@ Cambridge, MA 02139, USA.  */
 #ifndef	_STATBUF_H
 #define	_STATBUF_H
 
+/* Current version of stat system call.  */
+#define _STAT_VER 1
+
+
 struct stat
   {
     short int st_dev;			/* Device.  */