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

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.

Tested for x86_64.

	[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.
This commit is contained in:
Joseph Myers 2014-10-20 15:49:08 +00:00
parent 114c4e0954
commit 42b7f5d485
4 changed files with 11 additions and 105 deletions

View File

@ -1,3 +1,12 @@
2014-10-20 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.
2014-10-17 Roland McGrath <roland@hack.frob.com> 2014-10-17 Roland McGrath <roland@hack.frob.com>
* nptl/createthread.c (TLS_DEFINE_INIT_TP, TLS_VALUE): Macros removed. * nptl/createthread.c (TLS_DEFINE_INIT_TP, TLS_VALUE): Macros removed.

View File

@ -52,7 +52,7 @@ profil - profil i:piii __profil profil
ptrace - ptrace i:iiii ptrace ptrace - ptrace i:iiii ptrace
read - read Ci:ibn __libc_read __read read read - read Ci:ibn __libc_read __read read
readlink - readlink i:spi __readlink readlink 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 reboot - reboot i:i reboot
recv - recv Ci:ibni __libc_recv recv recv - recv Ci:ibni __libc_recv recv
recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
@ -99,4 +99,4 @@ unlink - unlink i:s __unlink unlink
utimes - utimes i:sp __utimes utimes utimes - utimes i:sp __utimes utimes
vhangup - vhangup i:i vhangup vhangup - vhangup i:i vhangup
write - write Ci:ibn __libc_write __write write write - write Ci:ibn __libc_write __write write
writev - writev Ci:ipi __writev writev writev - writev Ci:ipi __libc_writev __writev writev

View File

@ -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)

View File

@ -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)