[hurd,commited,1/8] hurd: avoid PLT ref between sendfile and sendfile64

Message ID 20180616010627.29577-1-samuel.thibault@ens-lyon.org
State New
Headers show
Series
  • [hurd,commited,1/8] hurd: avoid PLT ref between sendfile and sendfile64
Related show

Commit Message

Samuel Thibault June 16, 2018, 1:06 a.m.
* include/sys/sendfile.h (__sendfile64): Declare hidden prototype.
	* sysdeps/mach/hurd/sendfile.c (sendfile): Call __sendfile64 instead
	of sendfile.
	* sysdeps/mach/hurd/sendfile64.c (sendfile64): Rename to __sendfile64.
	(sendfile64): New strong alias.
---
 ChangeLog                      | 8 ++++++++
 include/sys/sendfile.h         | 6 ++++++
 sysdeps/mach/hurd/sendfile.c   | 4 ++--
 sysdeps/mach/hurd/sendfile64.c | 3 ++-
 4 files changed, 18 insertions(+), 3 deletions(-)

-- 
2.17.1

Patch

diff --git a/ChangeLog b/ChangeLog
index a8f711fcd7..74c14d4f84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@ 
+2018-06-15  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+	* include/sys/sendfile.h (__sendfile64): Declare hidden prototype.
+	* sysdeps/mach/hurd/sendfile.c (sendfile): Call __sendfile64 instead
+	of sendfile.
+	* sysdeps/mach/hurd/sendfile64.c (sendfile64): Rename to __sendfile64.
+	(sendfile64): New strong alias.
+
 2018-06-15  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #23007]
diff --git a/include/sys/sendfile.h b/include/sys/sendfile.h
index abe09769cc..b88cca27b8 100644
--- a/include/sys/sendfile.h
+++ b/include/sys/sendfile.h
@@ -1 +1,7 @@ 
 #include <io/sys/sendfile.h>
+
+#ifndef _ISOMAC
+
+extern __typeof (sendfile64) __sendfile64 attribute_hidden;
+
+#endif
diff --git a/sysdeps/mach/hurd/sendfile.c b/sysdeps/mach/hurd/sendfile.c
index 6a3de0fcc1..4df66b56d7 100644
--- a/sysdeps/mach/hurd/sendfile.c
+++ b/sysdeps/mach/hurd/sendfile.c
@@ -25,11 +25,11 @@  ssize_t
 sendfile (int out_fd, int in_fd, off_t *offset, size_t count)
 {
   if (offset == NULL || sizeof (off_t) == sizeof (off64_t))
-    return sendfile64 (out_fd, in_fd, (off64_t *) offset, count);
+    return __sendfile64 (out_fd, in_fd, (off64_t *) offset, count);
   else
     {
       off64_t ofs = *offset;
-      ssize_t ret = sendfile64 (out_fd, in_fd, &ofs, count);
+      ssize_t ret = __sendfile64 (out_fd, in_fd, &ofs, count);
       *offset = ofs;
       return ret;
     }
diff --git a/sysdeps/mach/hurd/sendfile64.c b/sysdeps/mach/hurd/sendfile64.c
index f69ccd4a79..ea4e96da90 100644
--- a/sysdeps/mach/hurd/sendfile64.c
+++ b/sysdeps/mach/hurd/sendfile64.c
@@ -24,7 +24,7 @@ 
 /* Send COUNT bytes from file associated with IN_FD starting at OFFSET to
    descriptor OUT_FD.  */
 ssize_t
-sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count)
+__sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count)
 {
   /* We just do a vanilla io_read followed by a vanilla io_write here.
      In theory the IN_FD filesystem can return us out-of-line data that
@@ -57,3 +57,4 @@  sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count)
     }
   return __hurd_fail (err);
 }
+strong_alias (__sendfile64, sendfile64)