about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list27
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h12
-rw-r--r--sysdeps/unix/sysv/linux/i386/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.c17
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c17
5 files changed, 29 insertions, 46 deletions
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 <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
     }