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.19-441-ga60339a


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  a60339aaff82beadea6f580e587d64052cb5e3b8 (commit)
       via  7d05a8168b45c0580e1f9a79c2dd26c8f0d31fca (commit)
      from  af121e371d6d1a46df72d59f3a6b521eb12a9c6e (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=a60339aaff82beadea6f580e587d64052cb5e3b8

commit a60339aaff82beadea6f580e587d64052cb5e3b8
Author: Will Newton <will.newton@linaro.org>
Date:   Mon May 19 14:38:30 2014 +0100

    AArch64: Fix handling of nocancel syscall failures
    
    The current code for nocancel syscalls does not do a comparison of
    the system call return value. This leads to code being generated
    where the b.cs follows the svc instruction directly without setting
    the flags on which the branch depends.
    
    ChangeLog:
    
    2014-05-20  Will Newton  <will.newton@linaro.org>
    
    	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
    	Test the return value of the system call in the nocancel case.

diff --git a/ChangeLog b/ChangeLog
index 8c2fd97..fc75ff2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
 2014-05-20  Will Newton  <will.newton@linaro.org>
+
+	* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
+	Test the return value of the system call in the nocancel case.
+
+2014-05-20  Will Newton  <will.newton@linaro.org>
 	    Yvan Roux  <yvan.roux@linaro.org>
 
 	* sysdeps/unix/sysv/linux/aarch64/sys/user.h: Remove unused
diff --git a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
index f6903b5..0e9bef3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
@@ -32,6 +32,7 @@
   __##syscall_name##_nocancel:						\
     cfi_startproc;							\
     DO_CALL (syscall_name, args);					\
+    cmn x0, 4095;							\
     PSEUDO_RET;								\
     cfi_endproc;							\
     .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;	\

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7d05a8168b45c0580e1f9a79c2dd26c8f0d31fca

commit 7d05a8168b45c0580e1f9a79c2dd26c8f0d31fca
Author: Yvan Roux <yvan.roux@linaro.org>
Date:   Tue May 20 13:45:22 2014 +0100

    AArch64: Remove asm/ptrace.h inclusion in sys/user.h and sys/procfs.h
    
    This patch fixes an issue observed by the Xen project, where including
    signal.h exposes various PSR_MODE #defines.  This is due to the usage
    in sys/user.h and sys/procfs.h of the struct user_pt_regs and
    user_fpsimd_state included via asm/ptrace.h.  The namespace pollution
    this inclusion introduce is already partially fixed with some #undef
    of the PTRACE_* symbols, but other symbols like the PSR_MODE ones are
    still present, and undefining them is not safe since a user can
    include ptrace.h before user.h.
    
    My proposition is to define the 2 structures we need in user.h and get
    rid of the asm/ptrace.h inclusion.
    
    Build and make check are clean on AArch64.
    
    2014-05-20  Will Newton  <will.newton@linaro.org>
    	    Yvan Roux  <yvan.roux@linaro.org>
    
    	* sysdeps/unix/sysv/linux/aarch64/sys/user.h: Remove unused
    	#include of asm/ptrace.h.
    	(PTRACE_GET_THREAD_AREA): Remove #undef.
    	(PTRACE_GETHBPREGS): Likewise.
    	(PTRACE_SETHBPREGS): Likewise.
    	(struct user_regs_struct): New structure.
    	(struct user_fpsimd_struct): New structure.
    	* sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove unused
    	#include of asm/ptrace.h and second #include of sys/user.h.
    	(PTRACE_GET_THREAD_AREA): Remove #undef.
    	(PTRACE_GETHBPREGS): Likewise.
    	(PTRACE_SETHBPREGS): Likewise.
    	(ELF_NGREG): Use new struct user_regs_struct.
    	(elf_fpregset_t): Use new struct user_fpsimd_struct.

diff --git a/ChangeLog b/ChangeLog
index 2060344..8c2fd97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2014-05-20  Will Newton  <will.newton@linaro.org>
+	    Yvan Roux  <yvan.roux@linaro.org>
+
+	* sysdeps/unix/sysv/linux/aarch64/sys/user.h: Remove unused
+	#include of asm/ptrace.h.
+	(PTRACE_GET_THREAD_AREA): Remove #undef.
+	(PTRACE_GETHBPREGS): Likewise.
+	(PTRACE_SETHBPREGS): Likewise.
+	(struct user_regs_struct): New structure.
+	(struct user_fpsimd_struct): New structure.
+	* sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove unused
+	#include of asm/ptrace.h and second #include of sys/user.h.
+	(PTRACE_GET_THREAD_AREA): Remove #undef.
+	(PTRACE_GETHBPREGS): Likewise.
+	(PTRACE_SETHBPREGS): Likewise.
+	(ELF_NGREG): Use new struct user_regs_struct.
+	(elf_fpregset_t): Use new struct user_fpsimd_struct.
+
 2014-05-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/powerpc64/fpu/multiarch/e_hypof.c: Moved ...
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
index b02af8a..211227c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
@@ -33,17 +33,6 @@
 #include <sys/types.h>
 #include <sys/user.h>
 
-/* We need to see the definition of struct pt_regs but do not want the
-   linux PTRACE_* defines since they conflict with the generic eglibc
-   definitions in sys/ptrace.h Hence the undef's below.  */
-#include <asm/ptrace.h>
-
-#undef PTRACE_GET_THREAD_AREA
-#undef PTRACE_GETHBPREGS
-#undef PTRACE_SETHBPREGS
-
-#include <sys/user.h>
-
 __BEGIN_DECLS
 
 /* Type for a general-purpose register.  */
@@ -53,11 +42,11 @@ typedef unsigned long elf_greg_t;
    pt_regs' directly in the typedef, but tradition says that
    the register set is an array, which does have some peculiar
    semantics, so leave it that way.  */
-#define ELF_NGREG (sizeof (struct user_pt_regs) / sizeof(elf_greg_t))
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
 
 /* Register set for the floating-point registers.  */
-typedef struct user_fpsimd_state elf_fpregset_t;
+typedef struct user_fpsimd_struct elf_fpregset_t;
 
 /* Signal info.  */
 struct elf_siginfo
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
index eceeb38..0ca2715 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -19,13 +19,19 @@
 #ifndef _SYS_USER_H
 #define _SYS_USER_H	1
 
-/* We need to see the definition of struct pt_regs but do not want the
-   linux PTRACE_* defines since they conflict with the generic glibc
-   definitions in sys/ptrace.h Hence the undef's below.  */
-#include <asm/ptrace.h>
-
-#undef PTRACE_GET_THREAD_AREA
-#undef PTRACE_GETHBPREGS
-#undef PTRACE_SETHBPREGS
+struct user_regs_struct
+{
+  unsigned long long regs[31];
+  unsigned long long sp;
+  unsigned long long pc;
+  unsigned long long pstate;
+};
+
+struct user_fpsimd_struct
+{
+  __uint128_t  vregs[32];
+  unsigned int fpsr;
+  unsigned int fpcr;
+};
 
 #endif

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

Summary of changes:
 ChangeLog                                          |   23 ++++++++++++++++++++
 .../unix/sysv/linux/aarch64/nptl/sysdep-cancel.h   |    1 +
 sysdeps/unix/sysv/linux/aarch64/sys/procfs.h       |   15 +-----------
 sysdeps/unix/sysv/linux/aarch64/sys/user.h         |   22 ++++++++++++-------
 4 files changed, 40 insertions(+), 21 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]