This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 21/58] Hide __readv and __writev [BZ #18822]


Hide internal __readv and __writev functions to allow direct access
within libc.so and libc.a without using GOT nor PLT.

	[BZ #18822]
	* include/sys/uio.h (__readv): Add libc_hidden_proto.
	(__writev): Likewise.
	* misc/readv.c (__readv): Add libc_hidden_def.
	* misc/writev.c (__writev): Likewise.
	* sysdeps/posix/readv.c (__readv): Likewise.
	* sysdeps/posix/writev.c (__writev): Likewise.
	* sysdeps/unix/sysv/linux/readv.c: Include <sys/uio.h>.
	(__readv): Likewise.
	* sysdeps/unix/sysv/linux/writev.c: Include <sys/uio.h>.
	(__writev): Likewise.
---
 include/sys/uio.h                | 2 ++
 misc/readv.c                     | 1 +
 misc/writev.c                    | 1 +
 sysdeps/posix/readv.c            | 1 +
 sysdeps/posix/writev.c           | 1 +
 sysdeps/unix/sysv/linux/readv.c  | 2 ++
 sysdeps/unix/sysv/linux/writev.c | 2 ++
 7 files changed, 10 insertions(+)

diff --git a/include/sys/uio.h b/include/sys/uio.h
index 20860bfd82..204c4b906d 100644
--- a/include/sys/uio.h
+++ b/include/sys/uio.h
@@ -5,8 +5,10 @@
 /* Now define the internal interfaces.  */
 extern ssize_t __readv (int __fd, const struct iovec *__iovec,
 			int __count);
+libc_hidden_proto (__readv)
 extern ssize_t __writev (int __fd, const struct iovec *__iovec,
 			 int __count);
+libc_hidden_proto (__writev)
 
 /* Used for p{read,write}{v64}v2 implementation.  */
 libc_hidden_proto (preadv)
diff --git a/misc/readv.c b/misc/readv.c
index 064f88523c..9ad94d370a 100644
--- a/misc/readv.c
+++ b/misc/readv.c
@@ -30,6 +30,7 @@ __readv (int fd, const struct iovec *vector, int count)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__readv)
 weak_alias (__readv, readv)
 
 stub_warning (readv)
diff --git a/misc/writev.c b/misc/writev.c
index c8d222e04f..8bd2eddf1a 100644
--- a/misc/writev.c
+++ b/misc/writev.c
@@ -30,6 +30,7 @@ __writev (int fd, const struct iovec *vector, int count)
   __set_errno (ENOSYS);
   return -1;
 }
+libc_hidden_def (__writev)
 weak_alias (__writev, writev)
 
 stub_warning (writev)
diff --git a/sysdeps/posix/readv.c b/sysdeps/posix/readv.c
index 5b0c124e89..2875c76daf 100644
--- a/sysdeps/posix/readv.c
+++ b/sysdeps/posix/readv.c
@@ -88,4 +88,5 @@ __readv (int fd, const struct iovec *vector, int count)
 
   return bytes_read;
 }
+libc_hidden_def (__readv)
 weak_alias (__readv, readv)
diff --git a/sysdeps/posix/writev.c b/sysdeps/posix/writev.c
index 7ce1deb80f..89d463033a 100644
--- a/sysdeps/posix/writev.c
+++ b/sysdeps/posix/writev.c
@@ -88,4 +88,5 @@ __writev (int fd, const struct iovec *vector, int count)
 
   return bytes_written;
 }
+libc_hidden_def (__writev)
 weak_alias (__writev, writev)
diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
index 142a0a92a7..e4713008f1 100644
--- a/sysdeps/unix/sysv/linux/readv.c
+++ b/sysdeps/unix/sysv/linux/readv.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <unistd.h>
+#include <sys/uio.h>
 #include <sysdep-cancel.h>
 
 ssize_t
@@ -24,4 +25,5 @@ __readv (int fd, const struct iovec *iov, int iovcnt)
 {
   return SYSCALL_CANCEL (readv, fd, iov, iovcnt);
 }
+libc_hidden_def (__readv)
 weak_alias (__readv, readv)
diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
index 1b56cbb709..2495fd938a 100644
--- a/sysdeps/unix/sysv/linux/writev.c
+++ b/sysdeps/unix/sysv/linux/writev.c
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <unistd.h>
+#include <sys/uio.h>
 #include <sysdep-cancel.h>
 
 ssize_t
@@ -24,4 +25,5 @@ __writev (int fd, const struct iovec *iov, int iovcnt)
 {
   return SYSCALL_CANCEL (writev, fd, iov, iovcnt);
 }
+libc_hidden_def (__writev)
 weak_alias (__writev, writev)
-- 
2.13.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]