]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 2 Nov 1998 10:07:25 +0000 (10:07 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 2 Nov 1998 10:07:25 +0000 (10:07 +0000)
1998-11-02  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Remove
unnecessary test and add cast.

1998-11-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

* 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  <kettenis@phys.uva.nl>

* 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  <rth@cygnus.com>

* 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  <kukuk@vt.uni-paderborn.de>

* 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  <schwab@issan.cs.uni-dortmund.de>

* manual/locale.texi (Formatting Numbers): Fix strfmon examples.

1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

* sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain
0, __fd_mask is usually not a char.

1998-10-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

* 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  <aj@arthur.rhein-neckar.de>

* time/strptime.c (HERE_D_FMT): Fix typo.
Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842.

ChangeLog
bits/types.h
math/Makefile
posix/getconf.c
sysdeps/generic/bits/types.h
sysdeps/unix/alpha/sysdep.h
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/alpha/sysdep.h
sysdeps/unix/sysv/linux/i386/setgroups.c
sysdeps/unix/sysv/linux/ttyname.c
sysdeps/unix/sysv/linux/ttyname_r.c

index 35edf0af48b7b48e1bf60461f7b2d0cd60f9cdbd..2df321005c0e17017663b906fd6b13308446dd6a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+1998-11-02  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/i386/setgroups.c (setgroups): Remove
+       unnecessary test and add cast.
+
+1998-11-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+       * 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  <kettenis@phys.uva.nl>
+
+       * 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  <rth@cygnus.com>
+
+       * 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-31  Ulrich Drepper  <drepper@cygnus.com>
 
        * aclocal.m4 (LIBC_PROG_FOO_GNU): Name output file using -o to
 
        * posix/PTESTS: Remove comment about incorrect test (it is correct).
 
-1998-10-30  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de> 
-       * 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. 
+1998-10-30  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>
+
+       * 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.
        * sunrpc/xdr.c: Implement xdr_int32_t and xdr_uint32_t .
-       * 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  <schwab@issan.cs.uni-dortmund.de> 
-       * manual/locale.texi (Formatting Numbers): Fix strfmon examples. 
-1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de> 
-       * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain 
-       0, __fd_mask is usually not a char. 
-1998-10-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
-       * 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  <aj@arthur.rhein-neckar.de> 
-       * time/strptime.c (HERE_D_FMT): Fix typo.   
-       Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842. 
+
+       * 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  <schwab@issan.cs.uni-dortmund.de>
+
+       * manual/locale.texi (Formatting Numbers): Fix strfmon examples.
+
+1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+
+       * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain
+       0, __fd_mask is usually not a char.
+
+1998-10-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+       * 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  <aj@arthur.rhein-neckar.de>
+
+       * time/strptime.c (HERE_D_FMT): Fix typo.
+       Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842.
+
 1998-10-30  Ulrich Drepper  <drepper@cygnus.com>
 
        * catgets/Makefile (tests): Add rules to run gencat on test1.msg.
index 2b3edab5e40a3c63697d146f61066d9796caea43..8bb6c78b6a62cea18eef4041ab3d439623f89688 100644 (file)
@@ -93,7 +93,7 @@ typedef unsigned long int __fd_mask;
 /* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
 #define        __NFDBITS       (sizeof (unsigned long int) * 8)
 #define        __FDELT(d)      ((d) / __NFDBITS)
-#define        __FDMASK(d)     ((unsigned long int) 1 << ((d) % __NFDBITS))
+#define        __FDMASK(d)     ((__fd_mask) 1 << ((d) % __NFDBITS))
 
 /* fd_set for select and pselect.  */
 typedef struct
@@ -102,8 +102,10 @@ typedef struct
        from the user namespace.  */
 #ifdef __USE_XOPEN
     __fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+# define __FDS_BITS(set) ((set)->fds_bits)
 #else
     __fd_mask __fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+# define __FDS_BITS(set) ((set)->__fds_bits)
 #endif
   } __fd_set;
 
index 9e6869a0e5db0a5ddcc0ba55ce61a522a5f6f180..5bdbb066da9608c463ee9738b322e7b9b83d4cd4 100644 (file)
@@ -156,7 +156,7 @@ o = .os
 endif
 gmp-objs = $(patsubst %,$(common-objpfx)stdlib/%$o,\
                      add_n sub_n cmp addmul_1 mul_1 mul_n divmod_1 \
-                     lshift rshift mp_clz_tab)
+                     lshift rshift mp_clz_tab udiv_qrnnd)
 $(objpfx)atest-exp: $(gmp-objs)
 $(objpfx)atest-sincos: $(gmp-objs)
 $(objpfx)atest-exp2: $(gmp-objs)
index f0b8c910ab7102fc2848ab300bb9e2d2b581cc1b..a28b8eb1aa4464bca75011f2546226d7bc70d8c1 100644 (file)
@@ -423,7 +423,7 @@ static const struct conf vars[] =
 #ifdef _SC_BC_STRING_MAX
     { "BC_STRING_MAX", _SC_BC_STRING_MAX, SYSCONF },
 #endif
-    { "CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX },
+    { "CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX, SYSCONF },
 #ifdef _SC_COLL_WEIGHTS_MAX
     { "COLL_WEIGHTS_MAX", _SC_COLL_WEIGHTS_MAX, SYSCONF },
 #endif
index 2b3edab5e40a3c63697d146f61066d9796caea43..8bb6c78b6a62cea18eef4041ab3d439623f89688 100644 (file)
@@ -93,7 +93,7 @@ typedef unsigned long int __fd_mask;
 /* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
 #define        __NFDBITS       (sizeof (unsigned long int) * 8)
 #define        __FDELT(d)      ((d) / __NFDBITS)
-#define        __FDMASK(d)     ((unsigned long int) 1 << ((d) % __NFDBITS))
+#define        __FDMASK(d)     ((__fd_mask) 1 << ((d) % __NFDBITS))
 
 /* fd_set for select and pselect.  */
 typedef struct
@@ -102,8 +102,10 @@ typedef struct
        from the user namespace.  */
 #ifdef __USE_XOPEN
     __fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+# define __FDS_BITS(set) ((set)->fds_bits)
 #else
     __fd_mask __fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+# define __FDS_BITS(set) ((set)->__fds_bits)
 #endif
   } __fd_set;
 
index f43c7f8edf37a6d3d4b02a2e6c4c3a57180331d9..80cb3e2486ac5a4528b6faca7b57e683a36aa53c 100644 (file)
@@ -109,4 +109,167 @@ __LABEL(name)                                     \
 
 #define MOVE(x,y)      mov x,y
 
-#endif
+#else /* !ASSEMBLER */
+
+/* Define a macro which expands inline into the wrapper code for a
+   system call.  */
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...)  INLINE_SYSCALL1(name, nr, args)
+
+#define INLINE_SYSCALL1(name, nr, args...)     \
+({                                             \
+       long _sc_ret, _sc_err;                  \
+       inline_syscall##nr(name, args);         \
+       if (_sc_err)                            \
+         {                                     \
+           __set_errno (_sc_ret);              \
+           _sc_ret = -1L;                      \
+         }                                     \
+       _sc_ret;                                \
+})
+
+#define inline_syscall_clobbers                                \
+       "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \
+       "$22", "$23", "$24", "$25", "$27", "$28"
+
+/* It is moderately important optimization-wise to limit the lifetime
+   of the hard-register variables as much as possible.  Thus we copy
+   in/out as close to the asm as possible.  */
+
+#define inline_syscall0(name)                  \
+{                                              \
+       register long _sc_0 __asm__("$0");      \
+       register long _sc_19 __asm__("$19");    \
+                                               \
+       _sc_0 = __NR_##name;                    \
+       __asm__("callsys # %0 %1 <= %2"         \
+               : "=r"(_sc_0), "=r"(_sc_19)     \
+               : "0"(_sc_0)                    \
+               : inline_syscall_clobbers);     \
+       _sc_ret = _sc_0, _sc_err = _sc_19;      \
+}
+
+#define inline_syscall1(name,arg1)             \
+{                                              \
+       register long _sc_0 __asm__("$0");      \
+       register long _sc_16 __asm__("$16");    \
+       register long _sc_19 __asm__("$19");    \
+                                               \
+       _sc_0 = __NR_##name;                    \
+       _sc_16 = (long) (arg1);                 \
+       __asm__("callsys # %0 %1 <= %2 %3"      \
+               : "=r"(_sc_0), "=r"(_sc_19)     \
+               : "0"(_sc_0), "r"(_sc_16)       \
+               : inline_syscall_clobbers);     \
+       _sc_ret = _sc_0, _sc_err = _sc_19;      \
+}
+
+#define inline_syscall2(name,arg1,arg2)                        \
+{                                                      \
+       register long _sc_0 __asm__("$0");              \
+       register long _sc_16 __asm__("$16");            \
+       register long _sc_17 __asm__("$17");            \
+       register long _sc_19 __asm__("$19");            \
+                                                       \
+       _sc_0 = __NR_##name;                            \
+       _sc_16 = (long) (arg1);                         \
+       _sc_17 = (long) (arg2);                         \
+       __asm__("callsys # %0 %1 <= %2 %3 %4"           \
+               : "=r"(_sc_0), "=r"(_sc_19)             \
+               : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)  \
+               : inline_syscall_clobbers);             \
+       _sc_ret = _sc_0, _sc_err = _sc_19;              \
+}
+
+#define inline_syscall3(name,arg1,arg2,arg3)           \
+{                                                      \
+       register long _sc_0 __asm__("$0");              \
+       register long _sc_16 __asm__("$16");            \
+       register long _sc_17 __asm__("$17");            \
+       register long _sc_18 __asm__("$18");            \
+       register long _sc_19 __asm__("$19");            \
+                                                       \
+       _sc_0 = __NR_##name;                            \
+       _sc_16 = (long) (arg1);                         \
+       _sc_17 = (long) (arg2);                         \
+       _sc_18 = (long) (arg3);                         \
+       __asm__("callsys # %0 %1 <= %2 %3 %4 %5"        \
+               : "=r"(_sc_0), "=r"(_sc_19)             \
+               : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \
+                 "r"(_sc_18)                           \
+               : inline_syscall_clobbers);             \
+       _sc_ret = _sc_0, _sc_err = _sc_19;              \
+}
+
+#define inline_syscall4(name,arg1,arg2,arg3,arg4)      \
+{                                                      \
+       register long _sc_0 __asm__("$0");              \
+       register long _sc_16 __asm__("$16");            \
+       register long _sc_17 __asm__("$17");            \
+       register long _sc_18 __asm__("$18");            \
+       register long _sc_19 __asm__("$19");            \
+                                                       \
+       _sc_0 = __NR_##name;                            \
+       _sc_16 = (long) (arg1);                         \
+       _sc_17 = (long) (arg2);                         \
+       _sc_18 = (long) (arg3);                         \
+       _sc_19 = (long) (arg4);                         \
+       __asm__("callsys # %0 %1 <= %2 %3 %4 %5 %6"     \
+               : "=r"(_sc_0), "=r"(_sc_19)             \
+               : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \
+                 "r"(_sc_18), "1"(_sc_19)              \
+               : inline_syscall_clobbers);             \
+       _sc_ret = _sc_0, _sc_err = _sc_19;              \
+}
+
+#define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \
+{                                                      \
+       register long _sc_0 __asm__("$0");              \
+       register long _sc_16 __asm__("$16");            \
+       register long _sc_17 __asm__("$17");            \
+       register long _sc_18 __asm__("$18");            \
+       register long _sc_19 __asm__("$19");            \
+       register long _sc_20 __asm__("$20");            \
+                                                       \
+       _sc_0 = __NR_##name;                            \
+       _sc_16 = (long) (arg1);                         \
+       _sc_17 = (long) (arg2);                         \
+       _sc_18 = (long) (arg3);                         \
+       _sc_19 = (long) (arg4);                         \
+       _sc_20 = (long) (arg5);                         \
+       __asm__("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7"  \
+               : "=r"(_sc_0), "=r"(_sc_19)             \
+               : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17), \
+                 "r"(_sc_18), "1"(_sc_19), "r"(_sc_20) \
+               : inline_syscall_clobbers);             \
+       _sc_ret = _sc_0, _sc_err = _sc_19;              \
+}
+
+#define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6)    \
+{                                                              \
+       register long _sc_0 __asm__("$0");                      \
+       register long _sc_16 __asm__("$16");                    \
+       register long _sc_17 __asm__("$17");                    \
+       register long _sc_18 __asm__("$18");                    \
+       register long _sc_19 __asm__("$19");                    \
+       register long _sc_20 __asm__("$20");                    \
+       register long _sc_21 __asm__("$21");                    \
+                                                               \
+       _sc_0 = __NR_##name;                                    \
+       _sc_16 = (long) (arg1);                                 \
+       _sc_17 = (long) (arg2);                                 \
+       _sc_18 = (long) (arg3);                                 \
+       _sc_19 = (long) (arg4);                                 \
+       _sc_20 = (long) (arg5);                                 \
+       _sc_21 = (long) (arg6);                                 \
+       __asm__("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7 %8"       \
+               : "=r"(_sc_0), "=r"(_sc_19)                     \
+               : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
+                 "r"(_sc_18), "1"(_sc_19), "r"(_sc_20),        \
+                 "r"(_sc_21)                                   \
+               : inline_syscall_clobbers);                     \
+       _sc_ret = _sc_0, _sc_err = _sc_19;                      \
+}
+
+#endif /* ASSEMBLER */
index b48f5382111d3faf3f911cb08fb62817e2cac07a..9f002b2ad17d6be84e8e28d6edc0a051933af925 100644 (file)
@@ -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
index 29d973f5b9c2cde4fb9709c419da5dc5334c187e..1a3cf37c6d6910d9952a8beb9ccbe5d7fd653f86 100644 (file)
 #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))
index 4266145d01092eb2d559d2d8b91232ac77afb1fd..e57004f8ac48e393a1a10305e6b14df578b42d3f 100644 (file)
@@ -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;
index 35eb4b4696627f672c5076035c479899d03dcf17..6ea406a8b83211edf58475b021230cc7a5909ab2 100644 (file)
 
 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
     }
 
index 449942a96d8cd437ace5d3ab91dbbdb643432efe..fe68e10b4deaef2fa6d59a7a74f7a42d05dccfab 100644 (file)
 
 #include <stdio-common/_itoa.h>
 
-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
     }