aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-12-15 01:00:22 +0000
committerUlrich Drepper <drepper@redhat.com>2002-12-15 01:00:22 +0000
commit86b2dc4072725edb69ec4b872f9fcd17a4554b74 (patch)
treefcc7abb285572b9e539af7b4c324806a0364daf2
parent9d263d72848fb561e104a21da3ffccf791078f2a (diff)
downloadglibc-86b2dc4072725edb69ec4b872f9fcd17a4554b74.tar
glibc-86b2dc4072725edb69ec4b872f9fcd17a4554b74.tar.gz
glibc-86b2dc4072725edb69ec4b872f9fcd17a4554b74.tar.bz2
glibc-86b2dc4072725edb69ec4b872f9fcd17a4554b74.zip
Update.
* sysdeps/generic/sysdep-cancel.h: New file. * sysdeps/unix/make-syscalls.sh: Handle C at start of args as cancelable syscall. * sysdeps/unix/inet/syscalls.list (accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Make cancelable. * sysdeps/unix/mman/syscalls.list (msync): Likewise. * sysdeps/unix/sysv/linux/alpha/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto, osf_select): Likewise. * sysdeps/unix/sysv/linux/hppa/syscalls.list (accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list (accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto, select): Likewise. * sysdeps/unix/sysv/linux/x86_64/syscalls.list (llseek, pread, pwrite, accept, connect, recvfrom, recvmsg, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/syscalls.list (creat, nanosleep, pause, select, fcntl): Likewise. * sysdeps/unix/sysv/syscalls.list (pause, poll): Likewise. * sysdeps/unix/syscalls.list (close, fcntl, fsync, lseek, open, read, readv, select, sigsuspend, write, writev): Likewise. 2002-12-14 Jakub Jelinek <jakub@redhat.com>
-rw-r--r--ChangeLog33
-rw-r--r--nptl/ChangeLog15
-rw-r--r--nptl/sysdeps/unix/sysv/linux/close.c49
-rw-r--r--nptl/sysdeps/unix/sysv/linux/creat.c57
-rw-r--r--nptl/sysdeps/unix/sysv/linux/fsync.c47
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h70
-rw-r--r--nptl/sysdeps/unix/sysv/linux/lseek.c48
-rw-r--r--nptl/sysdeps/unix/sysv/linux/msync.c47
-rw-r--r--nptl/sysdeps/unix/sysv/linux/nanosleep.c48
-rw-r--r--nptl/sysdeps/unix/sysv/linux/open.c62
-rw-r--r--nptl/sysdeps/unix/sysv/linux/pause.c47
-rw-r--r--nptl/sysdeps/unix/sysv/linux/read.c50
-rw-r--r--nptl/sysdeps/unix/sysv/linux/select.c57
-rw-r--r--nptl/sysdeps/unix/sysv/linux/write.c50
-rw-r--r--sysdeps/generic/sysdep-cancel.h1
-rw-r--r--sysdeps/unix/inet/syscalls.list16
-rw-r--r--sysdeps/unix/make-syscalls.sh7
-rw-r--r--sysdeps/unix/mman/syscalls.list2
-rw-r--r--sysdeps/unix/syscalls.list22
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list24
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscalls.list16
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list22
-rw-r--r--sysdeps/unix/sysv/linux/mips/syscalls.list16
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list22
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list24
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list10
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscalls.list18
-rw-r--r--sysdeps/unix/sysv/syscalls.list4
28 files changed, 223 insertions, 661 deletions
diff --git a/ChangeLog b/ChangeLog
index 9994a04665..f45ba51ba3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,38 @@
2002-12-14 Jakub Jelinek <jakub@redhat.com>
+ * sysdeps/generic/sysdep-cancel.h: New file.
+ * sysdeps/unix/make-syscalls.sh: Handle C at start of args as
+ cancelable syscall.
+ * sysdeps/unix/inet/syscalls.list (accept, connect, recv, recvfrom,
+ recvmsg, send, sendmsg, sendto): Make cancelable.
+ * sysdeps/unix/mman/syscalls.list (msync): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (llseek, pread,
+ pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
+ sendto, osf_select): Likewise.
+ * sysdeps/unix/sysv/linux/hppa/syscalls.list (accept, connect, recv,
+ recvfrom, recvmsg, send, sendmsg, sendto): Likewise.
+ * sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek, pread,
+ pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
+ sendto): Likewise.
+ * sysdeps/unix/sysv/linux/mips/syscalls.list (accept, connect, recv,
+ recvfrom, recvmsg, send, sendmsg, sendto): Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek, pread,
+ pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
+ sendto): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (llseek, pread,
+ pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
+ sendto, select): Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/syscalls.list (llseek, pread,
+ pwrite, accept, connect, recvfrom, recvmsg, sendmsg, sendto):
+ Likewise.
+ * sysdeps/unix/sysv/linux/syscalls.list (creat, nanosleep, pause,
+ select, fcntl): Likewise.
+ * sysdeps/unix/sysv/syscalls.list (pause, poll): Likewise.
+ * sysdeps/unix/syscalls.list (close, fcntl, fsync, lseek, open,
+ read, readv, select, sigsuspend, write, writev): Likewise.
+
+2002-12-14 Jakub Jelinek <jakub@redhat.com>
+
* dirent/bug-readdir1.c: Include unistd.h.
2002-12-13 Jakub Jelinek <jakub@redhat.com>
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 5650b3825a..a97ff6999e 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,18 @@
+2002-12-14 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
+ * sysdeps/unix/sysv/linux/open.c: Removed.
+ * sysdeps/unix/sysv/linux/fsync.c: Removed.
+ * sysdeps/unix/sysv/linux/lseek.c: Removed.
+ * sysdeps/unix/sysv/linux/msync.c: Removed.
+ * sysdeps/unix/sysv/linux/read.c: Removed.
+ * sysdeps/unix/sysv/linux/close.c: Removed.
+ * sysdeps/unix/sysv/linux/creat.c: Removed.
+ * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
+ * sysdeps/unix/sysv/linux/pause.c: Removed.
+ * sysdeps/unix/sysv/linux/select.c: Removed.
+ * sysdeps/unix/sysv/linux/write.c: Removed.
+
2002-12-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
diff --git a/nptl/sysdeps/unix/sysv/linux/close.c b/nptl/sysdeps/unix/sysv/linux/close.c
deleted file mode 100644
index e5cac953f3..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/close.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-__libc_close (int fd)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (close, 1, fd);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (close, 1, fd);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-strong_alias (__libc_close, __close)
-libc_hidden_weak (__close)
-weak_alias (__libc_close, close)
diff --git a/nptl/sysdeps/unix/sysv/linux/creat.c b/nptl/sysdeps/unix/sysv/linux/creat.c
deleted file mode 100644
index c21c8bb9a4..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/creat.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-creat (const char *pathname, mode_t mode)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- {
-#ifdef __NR_creat
- return INLINE_SYSCALL (creat, 2, pathname, mode);
-#else
- return __libc_open (pathname, O_WRONLY|O_CREAT|O_TRUNC, mode);
-#endif
- }
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
-#ifdef __NR_creat
- int result = INLINE_SYSCALL (creat, 2, pathname, mode);
-#else
- int result = __libc_open (pathname, O_WRONLY|O_CREAT|O_TRUNC, mode);
-#endif
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
diff --git a/nptl/sysdeps/unix/sysv/linux/fsync.c b/nptl/sysdeps/unix/sysv/linux/fsync.c
deleted file mode 100644
index b132a75ee9..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/fsync.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-__libc_fsync (int fd)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (fsync, 1, fd);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (fsync, 1, fd);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-weak_alias (__libc_fsync, fsync)
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
new file mode 100644
index 0000000000..ed9f9420e7
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
@@ -0,0 +1,70 @@
+/* Copyright (C) 2002 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <sysdep.h>
+#include <tls.h>
+
+#if !defined NOT_IN_libc || defined IS_IN_libpthread
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ cmpl $0, %gs:MULTIPLE_THREADS_OFFSET; \
+ jne L(pseudo_cancel); \
+ DO_CALL (syscall_name, args); \
+ cmpl $-4095, %eax; \
+ jae SYSCALL_ERROR_LABEL; \
+ ret; \
+ L(pseudo_cancel): \
+ call __libc_enable_asynccancel; \
+ SAVE_OLDTYPE_##args \
+ PUSHARGS_##args \
+ DOCARGS_##args \
+ movl $SYS_ify (syscall_name), %eax; \
+ int $0x80 \
+ POPARGS_##args; \
+ POPCARGS_##args \
+ cmpl $-4095, %eax; \
+ jae SYSCALL_ERROR_LABEL; \
+ L(pseudo_end):
+
+#define SAVE_OLDTYPE_0 movl %eax, %ecx;
+#define SAVE_OLDTYPE_1 SAVE_OLDTYPE_0
+#define SAVE_OLDTYPE_2 pushl %eax;
+#define SAVE_OLDTYPE_3 SAVE_OLDTYPE_2
+#define SAVE_OLDTYPE_4 SAVE_OLDTYPE_2
+#define SAVE_OLDTYPE_5 SAVE_OLDTYPE_2
+
+#define DOCARGS_0 DOARGS_0
+#define DOCARGS_1 DOARGS_1
+#define DOCARGS_2 _DOARGS_2 (12)
+#define DOCARGS_3 _DOARGS_3 (20)
+#define DOCARGS_4 _DOARGS_4 (28)
+#define DOCARGS_5 _DOARGS_5 (36)
+
+#define DISABLE call __libc_disable_asynccancel
+#define POPCARGS_0 pushl %eax; movl %ecx, %eax; DISABLE; popl %eax;
+#define POPCARGS_1 POPCARGS_0
+#define POPCARGS_2 xchgl (%esp), %eax; DISABLE; popl %eax;
+#define POPCARGS_3 POPCARGS_2
+#define POPCARGS_4 POPCARGS_2
+#define POPCARGS_5 POPCARGS_2
+
+#endif
diff --git a/nptl/sysdeps/unix/sysv/linux/lseek.c b/nptl/sysdeps/unix/sysv/linux/lseek.c
deleted file mode 100644
index 5229216122..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/lseek.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-off_t
-__libc_lseek (int fd, off_t offset, int whence)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (lseek, 3, fd, offset, whence);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- off_t result = INLINE_SYSCALL (lseek, 3, fd, offset, whence);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-strong_alias (__libc_lseek, __lseek)
-weak_alias (__libc_lseek, lseek)
diff --git a/nptl/sysdeps/unix/sysv/linux/msync.c b/nptl/sysdeps/unix/sysv/linux/msync.c
deleted file mode 100644
index 9edd56c024..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/msync.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <sys/mman.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-__libc_msync (void *start, size_t length, int flags)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (msync, 3, start, length, flags);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (msync, 3, start, length, flags);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-weak_alias (__libc_msync, msync)
diff --git a/nptl/sysdeps/unix/sysv/linux/nanosleep.c b/nptl/sysdeps/unix/sysv/linux/nanosleep.c
deleted file mode 100644
index d43f9eb9da..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/nanosleep.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <time.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-__libc_nanosleep (const struct timespec *req, struct timespec *rem)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (nanosleep, 2, req, rem);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (nanosleep, 2, req, rem);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-strong_alias (__libc_nanosleep, __nanosleep)
-weak_alias (__libc_nanosleep, nanosleep)
diff --git a/nptl/sysdeps/unix/sysv/linux/open.c b/nptl/sysdeps/unix/sysv/linux/open.c
deleted file mode 100644
index f0f95c1b60..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/open.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-__libc_open (const char *file, int oflag, ...)
-{
- int mode = 0;
-
- if (oflag & O_CREAT)
- {
- va_list arg;
- va_start (arg, oflag);
- mode = va_arg (arg, int);
- va_end (arg);
- }
-
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (open, 3, file, oflag, mode);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (open, 3, file, oflag, mode);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-libc_hidden_def (__libc_open)
-strong_alias (__libc_open, __open)
-libc_hidden_weak (__open)
-weak_alias (__libc_open, open)
diff --git a/nptl/sysdeps/unix/sysv/linux/pause.c b/nptl/sysdeps/unix/sysv/linux/pause.c
deleted file mode 100644
index 6348974031..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/pause.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-int
-__libc_pause (void)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (pause, 0);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (pause, 0);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-weak_alias (__libc_pause, pause)
diff --git a/nptl/sysdeps/unix/sysv/linux/read.c b/nptl/sysdeps/unix/sysv/linux/read.c
deleted file mode 100644
index ea04002023..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/read.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-ssize_t
-__libc_read (int fd, void *buf, size_t count)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (read, 3, fd, buf, count);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- ssize_t result = INLINE_SYSCALL (read, 3, fd, buf, count);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-libc_hidden_def (__libc_read)
-strong_alias (__libc_read, __read)
-libc_hidden_weak (__read)
-weak_alias (__libc_read, read)
diff --git a/nptl/sysdeps/unix/sysv/linux/select.c b/nptl/sysdeps/unix/sysv/linux/select.c
deleted file mode 100644
index b1c46595be..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/select.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <sys/select.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-#ifdef __NR__newselect
-# undef __NR_select
-# define __NR_select __NR__newselect
-#endif
-
-
-int
-__libc_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- struct timeval *timeout)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (select, 5, n, readfds, writefds, exceptfds,
- timeout);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- int result = INLINE_SYSCALL (select, 5, n, readfds, writefds, exceptfds,
- timeout);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-strong_alias (__libc_select, __select)
-libc_hidden_weak(__select)
-weak_alias (__libc_select, select)
diff --git a/nptl/sysdeps/unix/sysv/linux/write.c b/nptl/sysdeps/unix/sysv/linux/write.c
deleted file mode 100644
index ea9b60c979..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/write.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include <unistd.h>
-#include <nptl/pthreadP.h>
-#include <tls.h>
-
-
-ssize_t
-__libc_write (int fd, const void *buf, size_t count)
-{
-#ifndef NOT_IN_libc
- if (__builtin_expect (THREAD_GETMEM (THREAD_SELF,
- header.data.multiple_threads) == 0, 1))
- return INLINE_SYSCALL (write, 3, fd, buf, count);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-#endif
-
- ssize_t result = INLINE_SYSCALL (write, 3, fd, buf, count);
-
-#ifndef NOT_IN_libc
- LIBC_CANCEL_RESET (oldtype);
-#endif
-
- return result;
-}
-libc_hidden_def (__libc_write)
-strong_alias (__libc_write, __write)
-libc_hidden_weak (__write)
-weak_alias (__libc_write, write)
diff --git a/sysdeps/generic/sysdep-cancel.h b/sysdeps/generic/sysdep-cancel.h
new file mode 100644
index 0000000000..0eca1e927c
--- /dev/null
+++ b/sysdeps/generic/sysdep-cancel.h
@@ -0,0 +1 @@
+#include <sysdep.h>
diff --git a/sysdeps/unix/inet/syscalls.list b/sysdeps/unix/inet/syscalls.list
index c2cfa9f4d6..f0b7af7b1a 100644
--- a/sysdeps/unix/inet/syscalls.list
+++ b/sysdeps/unix/inet/syscalls.list
@@ -1,20 +1,20 @@
# File name Caller Syscall name # args Strong name Weak names
-accept - accept i:iBN __libc_accept accept
+accept - accept Ci:iBN __libc_accept accept
bind - bind i:ipi __bind bind
-connect - connect i:ipi __libc_connect __connect __connect_internal connect
+connect - connect Ci:ipi __libc_connect __connect __connect_internal connect
gethostid - gethostid i: gethostid
gethostname - gethostname i:bn __gethostname gethostname
getpeername - getpeername i:ibN __getpeername getpeername
getsockname - getsockname i:ibN __getsockname getsockname
getsockopt - getsockopt i:iiiBN getsockopt
listen - listen i:ii __listen listen
-recv - recv i:ibni __libc_recv recv
-recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
-send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto __sendto sendto
+recv - recv Ci:ibni __libc_recv recv
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+send - send Ci:ibni __libc_send __send send
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
sethostid - sethostid i:i sethostid
sethostname - sethostname i:pi sethostname
setsockopt - setsockopt i:iiibn setsockopt __setsockopt
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index d49688aacc..7b53651240 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -83,6 +83,11 @@ while read file srcfile caller syscall args strong weak; do
;;
esac
+ cancellable=
+ case $args in
+ C*) cancellable=-cancel; args=`echo $args | sed 's/C:\?//'`;;
+ esac
+
# Derive the number of arguments from the argument signature
case $args in
[0-9]) nargs=$args;;
@@ -142,7 +147,7 @@ shared-only-routines += $file
x*)
echo "\
\$(make-target-directory)
- (echo '#include <sysdep.h>'; \\
+ (echo '#include <sysdep$cancellable.h>'; \\
echo 'PSEUDO ($strong, $syscall, $nargs)'; \\
echo ' ret'; \\
echo 'PSEUDO_END($strong)'; \\
diff --git a/sysdeps/unix/mman/syscalls.list b/sysdeps/unix/mman/syscalls.list
index 772caff370..7db8eb7729 100644
--- a/sysdeps/unix/mman/syscalls.list
+++ b/sysdeps/unix/mman/syscalls.list
@@ -7,5 +7,5 @@
madvise - madvise i:pii madvise
mmap - mmap b:aniiii __mmap mmap
mprotect - mprotect i:aii __mprotect mprotect
-msync - msync i:aii __libc_msync msync
+msync - msync Ci:aii __libc_msync msync
munmap - munmap i:ai __munmap munmap
diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index a7a875450b..bbd068a33e 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -6,13 +6,13 @@ chdir - chdir i:s __chdir chdir
chmod - chmod i:si __chmod chmod
chown - chown i:sii __chown __chown_internal chown
chroot - chroot i:s chroot
-close - close i:i __libc_close __close close
+close - close Ci:i __libc_close __close close
dup - dup i:i __dup dup
dup2 - dup2 i:ii __dup2 dup2
fchdir - fchdir i:i __fchdir fchdir
-fcntl - fcntl i:iiF __libc_fcntl __fcntl __fcntl_internal fcntl
+fcntl - fcntl Ci:iiF __libc_fcntl __fcntl __fcntl_internal fcntl
fstatfs - fstatfs i:ip __fstatfs fstatfs
-fsync - fsync i:i __libc_fsync fsync
+fsync - fsync Ci:i __libc_fsync fsync
getdomain - getdomainname i:si getdomainname
getgid - getgid i: __getgid getgid
getgroups - getgroups i:ip __getgroups getgroups
@@ -24,18 +24,18 @@ getuid - getuid i: __getuid getuid
ioctl - ioctl i:iiI __ioctl ioctl
kill - kill i:ii __kill kill
link - link i:ss __link link
-lseek - lseek i:iii __libc_lseek __lseek lseek
+lseek - lseek Ci:iii __libc_lseek __lseek lseek
mkdir - mkdir i:si __mkdir mkdir
-open - open i:siv __libc_open __open open
+open - open Ci:siv __libc_open __open open
profil - profil i:piii __profil profil
ptrace - ptrace i:iiii ptrace
-read - read i:ibn __libc_read __read read
+read - read Ci:ibn __libc_read __read read
readlink - readlink i:spi __readlink readlink
-readv - readv i:ipi __readv readv
+readv - readv Ci:ipi __readv readv
reboot - reboot i:i reboot
rename - rename i:ss rename
rmdir - rmdir i:s __rmdir rmdir
-select - select i:iPPPP __select __libc_select select
+select - select Ci:iPPPP __select __libc_select select
setdomain - setdomainname i:si setdomainname
setegid - setegid i:i __setegid setegid
seteuid - seteuid i:i __seteuid seteuid
@@ -47,7 +47,7 @@ setrlimit - setrlimit i:ip __setrlimit setrlimit
setsid - setsid i: __setsid setsid
settimeofday - settimeofday i:PP __settimeofday settimeofday
setuid - setuid i:i __setuid setuid
-sigsuspend - sigsuspend i:p sigsuspend
+sigsuspend - sigsuspend Ci:p sigsuspend
sstk - sstk b:i sstk
statfs - statfs i:sp __statfs statfs
swapoff - swapoff i:s swapoff
@@ -61,5 +61,5 @@ umask - umask i:i __umask umask
uname - uname i:p __uname uname
unlink - unlink i:s __unlink unlink
utimes - utimes i:sp __utimes utimes
-write - write i:ibn __libc_write __write write
-writev - writev i:ipi __writev writev
+write - write Ci:ibn __libc_write __write write
+writev - writev Ci:ipi __writev writev
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index c8ab6ec847..7f5c9d0052 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -19,9 +19,9 @@ vfork - vfork 0 __vfork vfork
getpeername - getpeername 3 __getpeername getpeername
getpriority - getpriority 2 __getpriority getpriority
mmap - mmap 6 __mmap mmap __mmap64 mmap64
-llseek EXTRA lseek 3 __libc_lseek64 __llseek llseek __lseek64 lseek64
-pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
-pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+llseek EXTRA lseek C:3 __libc_lseek64 __llseek llseek __lseek64 lseek64
+pread - pread C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
+pwrite - pwrite C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs 2 __fstatfs fstatfs __fstatfs64 fstatfs64
statfs - statfs 2 __statfs statfs statfs64
getrlimit - getrlimit 2 __getrlimit getrlimit getrlimit64
@@ -36,20 +36,20 @@ sys_ustat ustat ustat 2 __syscall_ustat
sys_mknod xmknod mknod 3 __syscall_mknod
# proper socket implementations:
-accept - accept 3 __libc_accept __accept accept
+accept - accept C:3 __libc_accept __accept accept
bind - bind 3 __bind bind
-connect - connect 3 __libc_connect __connect_internal __connect connect
+connect - connect C:3 __libc_connect __connect_internal __connect connect
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
listen - listen 2 __listen listen
-recv - recv 4 __libc_recv __recv recv
-recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg 3 __libc_recvmsg __recvmsg recvmsg
+recv - recv C:4 __libc_recv __recv recv
+recvfrom - recvfrom C:6 __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg C:3 __libc_recvmsg __recvmsg recvmsg
ptrace - ptrace 4 __ptrace ptrace
-send - send 4 __libc_send __send send
-sendmsg - sendmsg 3 __libc_sendmsg __sendmsg sendmsg
-sendto - sendto 6 __libc_sendto __sendto sendto
+send - send C:4 __libc_send __send send
+sendmsg - sendmsg C:3 __libc_sendmsg __sendmsg sendmsg
+sendto - sendto C:6 __libc_sendto __sendto sendto
setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
socket - socket 3 __socket socket
@@ -64,7 +64,7 @@ pciconfig_iobase EXTRA pciconfig_iobase 3 __pciconfig_iobase pciconfig_iobase
adjtimex - syscall_adjtimex 1 __syscall_adjtimex syscall_adjtimex
# support old timeval32 entry points
-osf_select - osf_select 5 __select_tv32 __select@GLIBC_2.0 select@GLIBC_2.0
+osf_select - osf_select C:5 __select_tv32 __select@GLIBC_2.0 select@GLIBC_2.0
osf_gettimeofday - osf_gettimeofday 2 __gettimeofday_tv32 __gettimeofday@GLIBC_2.0 gettimeofday@GLIBC_2.0
osf_settimeofday - osf_settimeofday 2 __settimeofday_tv32 settimeofday@GLIBC_2.0
osf_getitimer - osf_getitimer 2 __getitimer_tv32 getitimer@GLIBC_2.0
diff --git a/sysdeps/unix/sysv/linux/hppa/syscalls.list b/sysdeps/unix/sysv/linux/hppa/syscalls.list
index 6b18e1f166..6edb2d2b16 100644
--- a/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -14,19 +14,19 @@ semget - semget i:iii __semget semget
semctl - semctl i:iiii __semctl semctl
# proper socket implementations:
-accept - accept i:iBN __libc_accept __accept accept
+accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect i:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
-recv - recv i:ibni __libc_recv __recv recv
-recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
-send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto __sendto sendto
+recv - recv Ci:ibni __libc_recv __recv recv
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+send - send Ci:ibni __libc_send __send send
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
index 723573aa43..a18d5efd44 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -3,10 +3,10 @@
umount2 - umount 2 __umount2 umount2
# Whee! 64-bit systems naturally implement llseek.
-llseek EXTRA lseek 3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64
+llseek EXTRA lseek C:3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64
lseek llseek -
-pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
-pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pread - pread C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
+pwrite - pwrite C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64
statfs - statfs i:sp __statfs statfs statfs64
mmap - mmap b:aniiii __mmap mmap __mmap64 mmap64
@@ -33,19 +33,19 @@ semget - semget i:iii __semget semget
semctl - semctl i:iiii __semctl semctl
# proper socket implementations:
-accept - accept i:iBN __libc_accept __accept accept
+accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect i:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
-recv - recv i:ibni __libc_recv __recv recv
-recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
-send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto __sendto sendto
+recv - recv Ci:ibni __libc_recv __recv recv
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+send - send Ci:ibni __libc_send __send send
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list
index 76b8b0fe15..685edc0e65 100644
--- a/sysdeps/unix/sysv/linux/mips/syscalls.list
+++ b/sysdeps/unix/sysv/linux/mips/syscalls.list
@@ -14,19 +14,19 @@ s_sigsuspend sigsuspend sigsuspend i:p __syscall_sigsuspend
# Socket functions; Linux/MIPS doesn't use the socketcall(2) wrapper;
# it's provided for compatibility, though.
#
-accept - accept i:iBN __libc_accept __accept accept
+accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect i:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
-recv - recv i:ibni __libc_recv __recv recv
-recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
-send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto __sendto sendto
+recv - recv Ci:ibni __libc_recv __recv recv
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+send - send Ci:ibni __libc_send __send send
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
index 3e595f5fd0..55c8c3aa8e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
@@ -1,9 +1,9 @@
# File name Caller Syscall name # args Strong name Weak names
-llseek EXTRA lseek 3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64
+llseek EXTRA lseek C:3 __libc_lseek __lseek lseek __libc_lseek64 __llseek llseek __lseek64 lseek64
lseek llseek -
-pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
-pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+pread - pread C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
+pwrite - pwrite C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64
statfs - statfs i:sp __statfs statfs statfs64
getpeername - getpeername i:ipp __getpeername getpeername
@@ -26,19 +26,19 @@ semget - semget i:iii __semget semget
semctl - semctl i:iiii __semctl semctl
# proper socket implementations:
-accept - accept i:iBN __libc_accept __accept accept
+accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect i:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
-recv - recv i:ibni __libc_recv __recv recv
-recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
-send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto __sendto sendto
+recv - recv Ci:ibni __libc_recv __recv recv
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+send - send Ci:ibni __libc_send __send send
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index 43002a51c6..a34e49246e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -1,9 +1,9 @@
# File name Caller Syscall name # args Strong name Weak names
# Whee! 64-bit systems naturally implement llseek.
-llseek EXTRA lseek 3 __llseek llseek __libc_lseek64 __lseek64 lseek64
-pread - pread 4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
-pwrite - pwrite 4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+llseek EXTRA lseek C:3 __llseek llseek __libc_lseek64 __lseek64 lseek64
+pread - pread C:4 __libc_pread __libc_pread64 __pread pread __pread64 pread64
+pwrite - pwrite C:4 __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs 2 __fstatfs fstatfs __fstatfs64 fstatfs64
statfs - statfs 2 __statfs statfs statfs64
getrlimit - getrlimit 2 __getrlimit getrlimit getrlimit64
@@ -15,20 +15,20 @@ readahead - readahead 3 __readahead readahead
sendfile - sendfile i:iipi sendfile sendfile64
# Override select.S in parent directory:
-select - select 5 __select select
-accept - accept 3 __libc_accept __accept accept
+select - select C:5 __select select
+accept - accept C:3 __libc_accept __accept accept
bind - bind 3 __bind bind
-connect - connect 3 __libc_connect __connect_internal __connect connect
+connect - connect C:3 __libc_connect __connect_internal __connect connect
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
listen - listen 2 __listen listen
-recv - recv 4 __libc_recv __recv recv
-recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg 3 __libc_recvmsg __recvmsg recvmsg
-send - send 4 __libc_send __send send
-sendmsg - sendmsg 3 __libc_sendmsg __sendmsg sendmsg
-sendto - sendto 6 __libc_sendto __sendto sendto
+recv - recv C:4 __libc_recv __recv recv
+recvfrom - recvfrom C:6 __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg C:3 __libc_recvmsg __recvmsg recvmsg
+send - send C:4 __libc_send __send send
+sendmsg - sendmsg C:3 __libc_sendmsg __sendmsg sendmsg
+sendto - sendto C:6 __libc_sendto __sendto sendto
setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
socketpair - socketpair 4 __socketpair socketpair
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index ce0f58bb0a..16eae75f2f 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -4,7 +4,7 @@ adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime __adjtimex_interna
bdflush EXTRA bdflush i:ii bdflush
capget EXTRA capget i:pp capget
capset EXTRA capset i:pp capset
-creat - creat i:si __libc_creat creat
+creat - creat Ci:si __libc_creat creat
create_module EXTRA create_module 3 create_module
delete_module EXTRA delete_module 3 delete_module
fdatasync - fdatasync i:i fdatasync
@@ -33,9 +33,9 @@ mount EXTRA mount i:sssip __mount mount
mremap EXTRA mremap b:aini __mremap mremap
munlock - munlock i:ai munlock
munlockall - munlockall i: munlockall
-nanosleep - nanosleep i:pp __libc_nanosleep __nanosleep nanosleep
+nanosleep - nanosleep Ci:pp __libc_nanosleep __nanosleep nanosleep
nfsservctl EXTRA nfsservctl i:ipp nfsservctl
-pause - pause i: __libc_pause pause
+pause - pause Ci: __libc_pause pause
personality init-first personality i:i __personality personality
pipe - pipe i:f __pipe pipe
pivot_root EXTRA pivot_root i:ss pivot_root
@@ -52,7 +52,7 @@ sched_setaffinity - sched_setaffinity i:iip sched_setaffinity
sched_setp - sched_setparam i:ip __sched_setparam sched_setparam
sched_sets - sched_setscheduler i:iip __sched_setscheduler sched_setscheduler
sched_yield - sched_yield i: __sched_yield sched_yield
-select - _newselect i:iPPPP __select __libc_select select
+select - _newselect Ci:iPPPP __select __libc_select select
sendfile - sendfile i:iipi sendfile
sendfile64 - sendfile64 i:iipi sendfile64
setfsgid EXTRA setfsgid i:i setfsgid
@@ -68,7 +68,7 @@ uselib EXTRA uselib i:s uselib
wait4 - wait4 i:iWiP __wait4 wait4
chown - chown i:sii __libc_chown __chown chown
-fcntl - fcntl i:iiF __libc_fcntl __fcntl fcntl
+fcntl - fcntl Ci:iiF __libc_fcntl __fcntl fcntl
setxattr EXTRA setxattr i:sspii setxattr
lsetxattr EXTRA lsetxattr i:sspii lsetxattr
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
index 2bae164fd9..a5c1288f61 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
@@ -3,9 +3,9 @@
arch_prctl EXTRA arch_prctl i:ii __arch_prctl arch_prctl
mmap - mmap b:aniiii __mmap mmap __mmap64 mmap64
modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt
-llseek EXTRA lseek i:iii __libc_lseek64 __llseek llseek __lseek64 lseek64
-pread - pread i:ibni __libc_pread __libc_pread64 __pread pread __pread64 pread64
-pwrite - pwrite i:ibni __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
+llseek EXTRA lseek Ci:iii __libc_lseek64 __llseek llseek __lseek64 lseek64
+pread - pread Ci:ibni __libc_pread __libc_pread64 __pread pread __pread64 pread64
+pwrite - pwrite Ci:ibni __libc_pwrite __libc_pwrite64 __pwrite pwrite __pwrite64 pwrite64
fstatfs - fstatfs i:ip __fstatfs fstatfs __fstatfs64 fstatfs64
statfs - statfs i:sp __statfs statfs statfs64
getrlimit - getrlimit i:ip __getrlimit getrlimit getrlimit64
@@ -30,17 +30,17 @@ semctl - semctl i:iiii __semctl semctl
# proper socket implementations:
-accept - accept i:iBN __libc_accept __accept accept
+accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect i:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
-recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
-sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto __sendto sendto
+recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
+sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
diff --git a/sysdeps/unix/sysv/syscalls.list b/sysdeps/unix/sysv/syscalls.list
index 1d37af8391..d945ff014e 100644
--- a/sysdeps/unix/sysv/syscalls.list
+++ b/sysdeps/unix/sysv/syscalls.list
@@ -3,8 +3,8 @@
alarm - alarm i:i alarm
ftime - ftime i:p ftime
nice - nice i:i nice
-pause - pause i: pause
-poll - poll i:pii poll
+pause - pause Ci: pause
+poll - poll Ci:pii poll
s_getdents getdents getdents i:ipi __getdents
setrlimit - setrlimit i:ip __setrlimit setrlimit
settimeofday - settimeofday i:PP __settimeofday settimeofday