From 3e2ee7271dff697194c7761ca0c5836de486b36f Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 30 Oct 1995 16:40:52 +0000 Subject: Thu Oct 26 23:11:11 1995 Ulrich Drepper * 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. * sysdeps/mach/hurd/symlink.c (__symlink): Ditto. --- ChangeLog | 23 ++++++++++++++-- string/tester.c | 6 ++-- sunrpc/clnt_perr.c | 4 +-- sysdeps/i386/i586/strchr.S | 6 ++-- sysdeps/unix/sysv/linux/i386/sigaction.c | 47 +++++++++++++++++--------------- sysdeps/unix/sysv/linux/poll.c | 2 +- sysdeps/unix/sysv/linux/signal.c | 1 + sysdeps/unix/sysv/linux/statbuf.h | 4 +++ 8 files changed, 60 insertions(+), 33 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/signal.c diff --git a/ChangeLog b/ChangeLog index 90a5f0e..29a86e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,31 @@ +Thu Oct 26 23:11:11 1995 Ulrich Drepper + + * 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 * 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 * sysdeps/unix/sysv/linux/i386/sigaction.c: New file. diff --git a/string/tester.c b/string/tester.c index 74ac345..34d4e1c 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 1876c7f..4a8c084 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 #include -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 982c80e..30de6b0 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 6986290..64c8f9a 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 ff43a76..1988199 100644 --- a/sysdeps/unix/sysv/linux/poll.c +++ b/sysdeps/unix/sysv/linux/poll.c @@ -1 +1 @@ -#include +#include diff --git a/sysdeps/unix/sysv/linux/signal.c b/sysdeps/unix/sysv/linux/signal.c new file mode 100644 index 0000000..55f1108 --- /dev/null +++ b/sysdeps/unix/sysv/linux/signal.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/unix/sysv/linux/statbuf.h b/sysdeps/unix/sysv/linux/statbuf.h index ad81704..5aabdd3 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. */ -- cgit v1.1