This is the mail archive of the glibc-cvs@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]

GNU C Library master sources branch master updated. glibc-2.25-400-gd8a7d10


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d8a7d10324d9765fa62f42c1d94c5bf36b60d558 (commit)
      from  c4c96f92f76dbc03a04a0e5005bf0be6f8dd4138 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d8a7d10324d9765fa62f42c1d94c5bf36b60d558

commit d8a7d10324d9765fa62f42c1d94c5bf36b60d558
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jun 5 07:21:44 2017 -0700

    x86-64: Update LO_HI_LONG for p{readv,writev}{64}v2
    
    The kernel interface for p{readv,writev}{64}v is
    
    (unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
     unsigned long pos_l, unsigned long pos_h)
    
    Except for targets which define __ARCH_WANT_COMPAT_SYS_PREADV64 and
    __ARCH_WANT_COMPAT_SYS_PWRITEV64,
    
    (unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
     off64_t pos)
    
    is used for p{readv,writev}{64}v.  X32 is the only such target.  The
    LO_HI_LONG macro is used to pass offset to the pos_l and pos_h pair.
    Since pos_h is ignored when size of offset == sizeof of pos_l, x86-64
    has
    
     #define LO_HI_LONG(val) (val)
    
    But the kernel interface for p{readv,writev}{64}v2 is
    
    (unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
     unsigned long pos_l, unsigned long pos_h, int flags)
    
    Except for targets which define __ARCH_WANT_COMPAT_SYS_PREADV64V2 and
    __ARCH_WANT_COMPAT_SYS_PWRITEV64V2,
    
    (unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
     off64_t pos, int flags)
    
    is used for p{readv,writev}{64}v2.  X32 is the only such target.  Update
    x86-64 LO_HI_LONG to pass 0 as the high part of the offset argument for
    p{readv,writev}{64}v2 and define a different LO_HI_LONG for x32 to only
    pass one argument for offset.
    
    Tested on x32 and x86-64.
    
    	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (LO_HI_LONG): Pass
    	0 as the high part of offset.
    	* sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h (LO_HI_LONG): New.

diff --git a/ChangeLog b/ChangeLog
index ff791f7..1cbcf56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-06-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (LO_HI_LONG): Pass
+	0 as the high part of offset.
+	* sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h (LO_HI_LONG): New.
+
 2017-06-05  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #21538]
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 7b8bd79..880e496 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -387,6 +387,6 @@
 
 /* How to pass the off{64}_t argument on p{readv,writev}{64}.  */
 #undef LO_HI_LONG
-#define LO_HI_LONG(val) (val)
+#define LO_HI_LONG(val) (val), 0
 
 #endif /* linux/x86_64/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
index f90fcfa..04c73a2 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
@@ -22,4 +22,8 @@
 #include <sysdeps/unix/sysv/linux/x86_64/sysdep.h>
 #include <sysdeps/x86_64/x32/sysdep.h>
 
+/* How to pass the off{64}_t argument on p{readv,writev}{64}.  */
+#undef LO_HI_LONG
+#define LO_HI_LONG(val) (val)
+
 #endif /* linux/x86_64/x32/sysdep.h */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                   |    6 ++++++
 sysdeps/unix/sysv/linux/x86_64/sysdep.h     |    2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h |    4 ++++
 3 files changed, 11 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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