From 160698e277bb4bc9a402c0f044289fd04f958089 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 2 Nov 1998 10:07:25 +0000 Subject: Update. 1998-11-02 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Remove unnecessary test and add cast. 1998-11-02 Andreas Jaeger * posix/getconf.c: Add initializer SYSCONF for CHARCLASS_NAME_MAX. * sysdeps/unix/sysv/linux/ttyname.c (getttyname): Remove unused parameter fd. * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Likewise. 1998-11-02 Mark Kettenis * sysdeps/generic/bits/types.h (__FDS_BITS): New macro to access fds_bits member. (__FDMASK): Use __fd_mask instead of unsigned long int in cast. 1998-10-31 Richard Henderson * math/Makefile (gmp-objs): Add udiv_qrnnd. * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL*): New. (inline_syscall*): New. * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL): New. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Kill __syscall* bits. 1998-10-30 Thorsten Kukuk * sunrpc/Versions: Add xdr_uint32_t and xdr_int32_t. * sunrpc/pmap_rmt.c: Initialize clnt_stat variable. * sunrpc/rpc/auth_des.h: Use uint32_t for time values. * sunrpc/rpc/xdr.h: Add INT32 support. * nis/nis_call.c: Changes for new 64bit clean NIS+ interface. * nis/nis_callback.c: Likewise. * nis/nis_creategroup.c: Likewise. * nis/nis_defaults.c: Likewise. * nis/nis_intern.h: Likewise. * nis/nis_lookup.c: Likewise. * nis/nis_ping.c: Likewise. * nis/nis_print.c: Likewise. * nis/nis_table.c: Likewise. * nis/nis_util.c: Likewise. * nis/nis_xdr.c: Likewise. * nis/rpcsvc/nis.h: Likewise. * nis/rpcsvc/nis.x: Likewise. * nis/rpcsvc/nis_callback.h: Likewise. * nis/rpcsvc/nis_object.x: Likewise. * nis/rpcsvc/nislib.h: Likewise. * nis/rpcsvc/yp.h: Remove casts to (u_long). * nis/rpcsvc/yp_prot.h: Likewise. * nis/rpcsvc/ypupd.h: Likewise. * nis/ypclnt.c: Change %ld to %d in sprintf. 1998-10-29 Andreas Schwab * manual/locale.texi (Formatting Numbers): Fix strfmon examples. 1998-10-28 Andreas Schwab * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain 0, __fd_mask is usually not a char. 1998-10-30 Andreas Jaeger * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow compilation on systems without rt_* syscalls (e.g. on Linux 2.0). * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow compiling on systems without rt_sigaction syscall. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Likewise. 1998-10-30 Andreas Jaeger * time/strptime.c (HERE_D_FMT): Fix typo. Reported by Claus Heine , PR libc/842. --- sysdeps/unix/sysv/linux/alpha/syscalls.list | 27 --------------------------- sysdeps/unix/sysv/linux/alpha/sysdep.h | 12 ++++++++++++ sysdeps/unix/sysv/linux/i386/setgroups.c | 2 +- sysdeps/unix/sysv/linux/ttyname.c | 17 ++++++++--------- sysdeps/unix/sysv/linux/ttyname_r.c | 17 ++++++++--------- 5 files changed, 29 insertions(+), 46 deletions(-) (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list index b48f538211..9f002b2ad1 100644 --- a/sysdeps/unix/sysv/linux/alpha/syscalls.list +++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list @@ -79,30 +79,3 @@ old_adjtimex - old_adjtimex 1 __adjtimex_tv32 __adjtimex@GLIBC_2.0 adjtimex@GLI # and one for timeval64 entry points adjtimex adjtime adjtimex 1 __syscall_adjtimex_tv64 - -# System calls with wrappers. -rt_sigaction - rt_sigaction 4 __syscall_rt_sigaction -rt_sigpending - rt_sigpending 2 __syscall_rt_sigpending -rt_sigprocmask - rt_sigprocmask 4 __syscall_rt_sigprocmask -rt_sigqueueinfo - rt_sigqueueinfo 3 __syscall_rt_sigqueueinfo -rt_sigsuspend - rt_sigsuspend 2 __syscall_rt_sigsuspend -rt_sigtimedwait - rt_sigtimedwait 4 __syscall_rt_sigtimedwait -s_getcwd getcwd getcwd 2 __syscall_getcwd -s_getdents getdents getdents 3 __syscall_getdents -s_getpriority getpriority getpriority 2 __syscall_getpriority -s_getresgid getresgid getresgid 3 __syscall_getresgid -s_getresuid getresuid getresuid 3 __syscall_getresuid -s_poll poll poll 3 __syscall_poll -s_ptrace ptrace ptrace 4 __syscall_ptrace -s_reboot reboot reboot 3 __syscall_reboot -s_sigaction sigaction sigaction 3 __syscall_sigaction -s_sigpending sigpending sigpending 1 __syscall_sigpending -s_sigprocmask sigprocmask sigprocmask 3 __syscall_sigprocmask -s_sigsuspend sigsuspend sigsuspend 3 __syscall_sigsuspend -s_sysctl sysctl _sysctl 1 __syscall__sysctl -sys_fstat fxstat fstat 2 __syscall_fstat -sys_lstat lxstat lstat 2 __syscall_lstat -sys_mknod xmknod mknod 3 __syscall_mknod -sys_readv readv readv 3 __syscall_readv -sys_stat xstat stat 2 __syscall_stat -sys_writev writev writev 3 __syscall_writev diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h index 29d973f5b9..1a3cf37c6d 100644 --- a/sysdeps/unix/sysv/linux/alpha/sysdep.h +++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h @@ -55,3 +55,15 @@ #define __NR_osf_shmat 209 #define __NR_osf_getsysinfo 256 #define __NR_osf_setsysinfo 257 + +/* + * In order to get the hidden arguments for rt_sigaction set up + * properly, we need to call the assembly version. Detect this in the + * INLINE_SYSCALL macro, and fail to expand inline in that case. + */ + +#undef INLINE_SYSCALL +#define INLINE_SYSCALL(name, nr, args...) \ + (__NR_##name == __NR_rt_sigaction \ + ? __syscall_##name(args) \ + : INLINE_SYSCALL1(name, nr, args)) diff --git a/sysdeps/unix/sysv/linux/i386/setgroups.c b/sysdeps/unix/sysv/linux/i386/setgroups.c index 4266145d01..e57004f8ac 100644 --- a/sysdeps/unix/sysv/linux/i386/setgroups.c +++ b/sysdeps/unix/sysv/linux/i386/setgroups.c @@ -36,7 +36,7 @@ setgroups (n, groups) size_t n; const gid_t *groups; { - if (n < 0 || n > __sysconf (_SC_NGROUPS_MAX)) + if (n > (size_t) __sysconf (_SC_NGROUPS_MAX)) { __set_errno (EINVAL); return -1; diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c index 35eb4b4696..6ea406a8b8 100644 --- a/sysdeps/unix/sysv/linux/ttyname.c +++ b/sysdeps/unix/sysv/linux/ttyname.c @@ -30,15 +30,14 @@ char *__ttyname = NULL; -static char * getttyname __P ((const char *dev, int fd, dev_t mydev, +static char * getttyname __P ((const char *dev, dev_t mydev, ino_t myino, int save, int *dostat)) internal_function; static char * internal_function -getttyname (dev, fd, mydev, myino, save, dostat) +getttyname (dev, mydev, myino, save, dostat) const char *dev; - int fd; dev_t mydev; ino_t myino; int save; @@ -142,9 +141,9 @@ ttyname (fd) if (stat ("/dev/pts", &st1) == 0 && S_ISDIR (st1.st_mode)) { #ifdef _STATBUF_ST_RDEV - name = getttyname ("/dev/pts", fd, st.st_rdev, st.st_ino, save, &dostat); + name = getttyname ("/dev/pts", st.st_rdev, st.st_ino, save, &dostat); #else - name = getttyname ("/dev/pts", fd, st.st_dev, st.st_ino, save, &dostat); + name = getttyname ("/dev/pts", st.st_dev, st.st_ino, save, &dostat); #endif } else @@ -156,9 +155,9 @@ ttyname (fd) if (!name && dostat != -1) { #ifdef _STATBUF_ST_RDEV - name = getttyname ("/dev", fd, st.st_rdev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_rdev, st.st_ino, save, &dostat); #else - name = getttyname ("/dev", fd, st.st_dev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_dev, st.st_ino, save, &dostat); #endif } @@ -166,9 +165,9 @@ ttyname (fd) { dostat = 1; #ifdef _STATBUF_ST_RDEV - name = getttyname ("/dev", fd, st.st_rdev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_rdev, st.st_ino, save, &dostat); #else - name = getttyname ("/dev", fd, st.st_dev, st.st_ino, save, &dostat); + name = getttyname ("/dev", st.st_dev, st.st_ino, save, &dostat); #endif } diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c index 449942a96d..fe68e10b4d 100644 --- a/sysdeps/unix/sysv/linux/ttyname_r.c +++ b/sysdeps/unix/sysv/linux/ttyname_r.c @@ -28,14 +28,13 @@ #include -static int getttyname_r __P ((int fd, char *buf, size_t buflen, +static int getttyname_r __P ((char *buf, size_t buflen, dev_t mydev, ino_t myino, int save, int *dostat)) internal_function; static int internal_function -getttyname_r (fd, buf, buflen, mydev, myino, save, dostat) - int fd; +getttyname_r (buf, buflen, mydev, myino, save, dostat) char *buf; size_t buflen; dev_t mydev; @@ -152,10 +151,10 @@ __ttyname_r (fd, buf, buflen) if (stat (buf, &st1) == 0 && S_ISDIR (st1.st_mode)) { #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (fd, buf, buflen, st.st_rdev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, &dostat); #else - ret = getttyname_r (fd, buf, buflen, st.st_dev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, &dostat); #endif } @@ -170,10 +169,10 @@ __ttyname_r (fd, buf, buflen) buf[sizeof ("/dev/") - 1] = '\0'; buflen += sizeof ("pts/") - 1; #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (fd, buf, buflen, st.st_rdev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, &dostat); #else - ret = getttyname_r (fd, buf, buflen, st.st_dev, st.st_ino, save, + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, &dostat); #endif } @@ -183,10 +182,10 @@ __ttyname_r (fd, buf, buflen) buf[sizeof ("/dev/") - 1] = '\0'; dostat = 1; #ifdef _STATBUF_ST_RDEV - ret = getttyname_r (fd, buf, buflen, st.st_rdev, st.st_ino, + ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save, &dostat); #else - ret = getttyname_r (fd, buf, buflen, st.st_dev, st.st_ino, + ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save, &dostat); #endif } -- cgit v1.2.3