diff mbox

Move readv and writev definitions to syscalls.list (bug 14138)

Message ID Pine.LNX.4.64.1410072234050.17516@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Oct. 7, 2014, 10:34 p.m. UTC
Continuing the move of syscall definitions to syscalls.list, where the
removal of support for old kernel versions has made this possible,
this patch moves definitions of readv and writev.

The relevant syscalls.list entries were already in
sysdeps/unix/syscalls.list, but to match the C files they needed to
have the names __libc_readv and __libc_writev added.  In fact, I don't
see anything making use of those names - as far as I can tell, these
functions could just be defined as __readv and __writev with aliases
readv and writev.  But cleaning up unnecessary aliases for functions
should be a separate matter from cleaning up unnecessary C syscall
wrappers (and the __libc_* names are mentioned in CANCEL-FCT-WAIVE, so
we'd need to work out what to do with that - remove it, I suspect).

Tested for x86_64.

2014-10-07  Joseph Myers  <joseph@codesourcery.com>

	[BZ #14138]
	* sysdeps/unix/syscalls.list (readv): Use __libc_readv as strong
	name.
	(writev): Use __libc_writev as strong name.
	* sysdeps/unix/sysv/linux/readv.c: Remove file.
	* sysdeps/unix/sysv/linux/writev.c: Likewise.

Comments

Andreas Schwab Oct. 8, 2014, 7:48 a.m. UTC | #1
"Joseph S. Myers" <joseph@codesourcery.com> writes:

> The relevant syscalls.list entries were already in
> sysdeps/unix/syscalls.list, but to match the C files they needed to
> have the names __libc_readv and __libc_writev added.  In fact, I don't
> see anything making use of those names - as far as I can tell, these
> functions could just be defined as __readv and __writev with aliases
> readv and writev.

Since they are obviously unused, just remove them.

Andreas.
Joseph Myers Oct. 15, 2014, 4:04 p.m. UTC | #2
Ping.  This patch 
<https://sourceware.org/ml/libc-alpha/2014-10/msg00210.html> is pending 
review.
Joseph Myers Oct. 20, 2014, 3:29 p.m. UTC | #3
Ping^2.  This patch 
<https://sourceware.org/ml/libc-alpha/2014-10/msg00210.html> is still 
pending review.
Will Newton Oct. 20, 2014, 3:37 p.m. UTC | #4
On 20 October 2014 16:29, Joseph S. Myers <joseph@codesourcery.com> wrote:
> Ping^2.  This patch
> <https://sourceware.org/ml/libc-alpha/2014-10/msg00210.html> is still
> pending review.

This change looks ok to me.
diff mbox

Patch

diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index 4620582..11fe384 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -52,7 +52,7 @@  profil		-	profil		i:piii	__profil	profil
 ptrace		-	ptrace		i:iiii	ptrace
 read		-	read		Ci:ibn	__libc_read	__read read
 readlink	-	readlink	i:spi	__readlink	readlink
-readv		-	readv		Ci:ipi	__readv		readv
+readv		-	readv		Ci:ipi	__libc_readv	__readv readv
 reboot		-	reboot		i:i	reboot
 recv		-	recv		Ci:ibni	__libc_recv	recv
 recvfrom	-	recvfrom	Ci:ibniBN	__libc_recvfrom __recvfrom recvfrom
@@ -99,4 +99,4 @@  unlink		-	unlink		i:s	__unlink	unlink
 utimes		-	utimes		i:sp	__utimes	utimes
 vhangup		-	vhangup		i:i	vhangup
 write		-	write		Ci:ibn	__libc_write	__write write
-writev		-	writev		Ci:ipi	__writev	writev
+writev		-	writev		Ci:ipi	__libc_writev	__writev writev
diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
deleted file mode 100644
index a977d17..0000000
--- a/sysdeps/unix/sysv/linux/readv.c
+++ /dev/null
@@ -1,51 +0,0 @@ 
-/* readv supports all Linux kernels >= 2.0.
-   Copyright (C) 1997-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/param.h>
-#include <sys/uio.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-
-/* Consider moving to syscalls.list.  */
-
-ssize_t
-__libc_readv (fd, vector, count)
-     int fd;
-     const struct iovec *vector;
-     int count;
-{
-  ssize_t result;
-
-  if (SINGLE_THREAD_P)
-    result = INLINE_SYSCALL (readv, 3, fd, vector, count);
-  else
-    {
-      int oldtype = LIBC_CANCEL_ASYNC ();
-
-      result = INLINE_SYSCALL (readv, 3, fd, vector, count);
-
-      LIBC_CANCEL_RESET (oldtype);
-    }
-
-  return result;
-}
-strong_alias (__libc_readv, __readv)
-weak_alias (__libc_readv, readv)
diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
deleted file mode 100644
index f19221f..0000000
--- a/sysdeps/unix/sysv/linux/writev.c
+++ /dev/null
@@ -1,52 +0,0 @@ 
-/* writev supports all Linux kernels >= 2.0.
-   Copyright (C) 1997-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stddef.h>
-#include <sys/param.h>
-#include <sys/uio.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-
-
-/* Consider moving to syscalls.list.  */
-
-ssize_t
-__libc_writev (fd, vector, count)
-     int fd;
-     const struct iovec *vector;
-     int count;
-{
-  ssize_t result;
-
-  if (SINGLE_THREAD_P)
-    result = INLINE_SYSCALL (writev, 3, fd, vector, count);
-  else
-    {
-      int oldtype = LIBC_CANCEL_ASYNC ();
-
-      result = INLINE_SYSCALL (writev, 3, fd, vector, count);
-
-      LIBC_CANCEL_RESET (oldtype);
-    }
-
-  return result;
-}
-strong_alias (__libc_writev, __writev)
-weak_alias (__libc_writev, writev)