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.15-995-g0e44a77


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  0e44a77e481e18b56ef5bd2354fc97a267487551 (commit)
       via  5e1a27a96de16ad0cd67a81e25741790b32e2c25 (commit)
      from  46259beccca5f4b3a6c64a1b84b2c09f079eb3ae (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0e44a77e481e18b56ef5bd2354fc97a267487551

commit 0e44a77e481e18b56ef5bd2354fc97a267487551
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 22 05:34:36 2012 -0700

    Use "neg %eax" in x86_64 SYSCALL_SET_ERRNO

diff --git a/ChangeLog b/ChangeLog
index f1921de..200c726 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_SET_ERRNO):
+	Use "neg %eax".
+
 	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Use
 	__rlim_t cast.
 	(struct rusage): Use anonymous union to pad each field to
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 3f5bdd2..396345e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -115,9 +115,8 @@
 # if defined PIC && defined RTLD_PRIVATE_ERRNO
 #  define SYSCALL_SET_ERRNO			\
   lea rtld_errno(%rip), %RCX_LP;		\
-  xorl %edx, %edx;				\
-  sub %RAX_LP, %RDX_LP;				\
-  movl %edx, (%rcx)
+  neg %eax;					\
+  movl %eax, (%rcx)
 # else
 #  ifndef NOT_IN_libc
 #   define SYSCALL_ERROR_ERRNO __libc_errno
@@ -126,9 +125,8 @@
 #  endif
 #  define SYSCALL_SET_ERRNO			\
   movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
-  xorl %edx, %edx;				\
-  sub %RAX_LP, %RDX_LP;				\
-  movl %edx, %fs:(%rcx)
+  neg %eax;					\
+  movl %eax, %fs:(%rcx);
 # endif
 
 # ifndef PIC

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5e1a27a96de16ad0cd67a81e25741790b32e2c25

commit 5e1a27a96de16ad0cd67a81e25741790b32e2c25
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 22 05:32:34 2012 -0700

    Pad each field to __syscall_slong_t in struct rusage

diff --git a/ChangeLog b/ChangeLog
index caa476e..f1921de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Use
+	__rlim_t cast.
+	(struct rusage): Use anonymous union to pad each field to
+	__syscall_slong_t.
+
 2012-05-21  David S. Miller  <davem@davemloft.net>
 
 	* Makefules (o-iterator): Remove .s cases.
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index be852e5..62cb257 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -1,6 +1,5 @@
 /* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 1994, 1996-2000, 2004, 2005, 2008, 2009, 2010, 2011, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1994-2012 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
@@ -113,7 +112,7 @@ enum __rlimit_resource
 
 /* Value to indicate that there is no limit.  */
 #ifndef __USE_FILE_OFFSET64
-# define RLIM_INFINITY ((unsigned long int)(~0UL))
+# define RLIM_INFINITY ((__rlim_t) -1)
 #else
 # define RLIM_INFINITY 0xffffffffffffffffuLL
 #endif
@@ -180,6 +179,11 @@ enum __rusage_who
 #include <bits/time.h>		/* For `struct timeval'.  */
 
 /* Structure which says how much of each resource has been used.  */
+
+/* The purpose of all the unions is to have the kernel-compatible layout
+   while keeping the API type as 'long int', and among machines where
+   __syscall_slong_t is not 'long int', this only does the right thing
+   for little-endian ones, like x32.  */
 struct rusage
   {
     /* Total amount of user time used.  */
@@ -187,39 +191,96 @@ struct rusage
     /* Total amount of system time used.  */
     struct timeval ru_stime;
     /* Maximum resident set size (in kilobytes).  */
-    long int ru_maxrss;
+    __extension__ union
+      {
+	long int ru_maxrss;
+	__syscall_slong_t __ru_maxrss_word;
+      };
     /* Amount of sharing of text segment memory
        with other processes (kilobyte-seconds).  */
-    long int ru_ixrss;
+    /* Maximum resident set size (in kilobytes).  */
+    __extension__ union
+      {
+	long int ru_ixrss;
+	__syscall_slong_t __ru_ixrss_word;
+      };
     /* Amount of data segment memory used (kilobyte-seconds).  */
-    long int ru_idrss;
+    __extension__ union
+      {
+	long int ru_idrss;
+	__syscall_slong_t __ru_idrss_word;
+      };
     /* Amount of stack memory used (kilobyte-seconds).  */
-    long int ru_isrss;
+    __extension__ union
+      {
+	long int ru_isrss;
+	 __syscall_slong_t __ru_isrss_word;
+      };
     /* Number of soft page faults (i.e. those serviced by reclaiming
        a page from the list of pages awaiting reallocation.  */
-    long int ru_minflt;
+    __extension__ union
+      {
+	long int ru_minflt;
+	__syscall_slong_t __ru_minflt_word;
+      };
     /* Number of hard page faults (i.e. those that required I/O).  */
-    long int ru_majflt;
+    __extension__ union
+      {
+	long int ru_majflt;
+	__syscall_slong_t __ru_majflt_word;
+      };
     /* Number of times a process was swapped out of physical memory.  */
-    long int ru_nswap;
+    __extension__ union
+      {
+	long int ru_nswap;
+	__syscall_slong_t __ru_nswap_word;
+      };
     /* Number of input operations via the file system.  Note: This
        and `ru_oublock' do not include operations with the cache.  */
-    long int ru_inblock;
+    __extension__ union
+      {
+	long int ru_inblock;
+	__syscall_slong_t __ru_inblock_word;
+      };
     /* Number of output operations via the file system.  */
-    long int ru_oublock;
+    __extension__ union
+      {
+	long int ru_oublock;
+	__syscall_slong_t __ru_oublock_word;
+      };
     /* Number of IPC messages sent.  */
-    long int ru_msgsnd;
+    __extension__ union
+      {
+	long int ru_msgsnd;
+	__syscall_slong_t __ru_msgsnd_word;
+      };
     /* Number of IPC messages received.  */
-    long int ru_msgrcv;
+    __extension__ union
+      {
+	long int ru_msgrcv;
+	__syscall_slong_t __ru_msgrcv_word;
+      };
     /* Number of signals delivered.  */
-    long int ru_nsignals;
+    __extension__ union
+      {
+	long int ru_nsignals;
+	__syscall_slong_t __ru_nsignals_word;
+      };
     /* Number of voluntary context switches, i.e. because the process
        gave up the process before it had to (usually to wait for some
        resource to be available).  */
-    long int ru_nvcsw;
+    __extension__ union
+      {
+	long int ru_nvcsw;
+	__syscall_slong_t __ru_nvcsw_word;
+      };
     /* Number of involuntary context switches, i.e. a higher priority process
        became runnable or the current process used up its time slice.  */
-    long int ru_nivcsw;
+    __extension__ union
+      {
+	long int ru_nivcsw;
+	__syscall_slong_t __ru_nivcsw_word;
+      };
   };
 
 /* Priority limits.  */

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

Summary of changes:
 ChangeLog                               |   10 +++
 sysdeps/unix/sysv/linux/bits/resource.h |   95 +++++++++++++++++++++++++------
 sysdeps/unix/sysv/linux/x86_64/sysdep.h |   10 +--
 3 files changed, 92 insertions(+), 23 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]