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.22-613-gfc48bfb


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  fc48bfbc796e3825b6048df9146ce91c0baec0c8 (commit)
      from  8ead7a9b94a085e6fba69b8b22e2ba0e2677f0d5 (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=fc48bfbc796e3825b6048df9146ce91c0baec0c8

commit fc48bfbc796e3825b6048df9146ce91c0baec0c8
Author: Adhemerval Zanella <adhemerval.zanella@linaro.com>
Date:   Sat Oct 17 16:56:27 2015 -0300

    Fix SYSCALL_CANCEL for empty argumetns
    
    This patch fixes the SYSCALL_CANCEL macro for usage with zero argument
    number (for instance SYSCALL_CANCEL (pause)) using a similar approach
    used for SOCKETCALL_CANCEL.
    
    GLIBC build still does not hit this issue still since SYSCALL_CANCEL
    is not currently being used for zero arguments calls.
    
    Tested on i386, x86_64, powerpc64le, aarch64.
    
    	* sysdeps/unix/sysdep.h (SYSCALL_CANCEL): Fix macro for zero argument
    	syscalls.
    	(__SYSCALL0): New macro.
    	(__SYSCALL1): Likewise.
    	(__SYSCALL2): Likewise.
    	(__SYSCALL3): Likewise.
    	(__SYSCALL4): Likewise.
    	(__SYSCALL5): Likewise.
    	(__SYSCALL6): Likewise.
    	(__SYSCALL7): Likewise.
    	(__SYSCALL_CONCAT_X): Likewise.
    	(__SYSCALL_CONCAT): Likewise.
    	(__SYSCALL_DIST): Likewise.
    	(__SYSCALL_CALL): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 9a32440..722aecb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2015-12-17  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* sysdeps/unix/sysdep.h (SYSCALL_CANCEL): Fix macro for zero argument
+	syscalls.
+	(__SYSCALL0): New macro.
+	(__SYSCALL1): Likewise.
+	(__SYSCALL2): Likewise.
+	(__SYSCALL3): Likewise.
+	(__SYSCALL4): Likewise.
+	(__SYSCALL5): Likewise.
+	(__SYSCALL6): Likewise.
+	(__SYSCALL_CONCAT_X): Likewise.
+	(__SYSCALL_CONCAT): Likewise.
+	(__SYSCALL_DIST): Likewise.
+	(__SYSCALL_CALL): Likewise.
+
 2015-12-17  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #19363]
@@ -5,6 +21,7 @@
 
 2015-12-17  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+	[BZ #19375]
 	* sysdeps/powerpc/power7/fpu/s_logb.c (__logb): Fix return for
 	negative subnormals.
 
diff --git a/sysdeps/unix/sysdep.h b/sysdeps/unix/sysdep.h
index 52dad58..5c8208f 100644
--- a/sysdeps/unix/sysdep.h
+++ b/sysdeps/unix/sysdep.h
@@ -24,22 +24,42 @@
 #define	SYSCALL__(name, args)	PSEUDO (__##name, name, args)
 #define	SYSCALL(name, args)	PSEUDO (name, name, args)
 
-/* Cancellation macros.  */
-#define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,n,...) n
+#define __SYSCALL0(name) \
+  INLINE_SYSCALL (name, 0)
+#define __SYSCALL1(name, a1) \
+  INLINE_SYSCALL (name, 1, a1)
+#define __SYSCALL2(name, a1, a2) \
+  INLINE_SYSCALL (name, 2, a1, a2)
+#define __SYSCALL3(name, a1, a2, a3) \
+  INLINE_SYSCALL (name, 3, a1, a2, a3)
+#define __SYSCALL4(name, a1, a2, a3, a4) \
+  INLINE_SYSCALL (name, 4, a1, a2, a3, a4)
+#define __SYSCALL5(name, a1, a2, a3, a4, a5) \
+  INLINE_SYSCALL (name, 5, a1, a2, a3, a4, a5)
+#define __SYSCALL6(name, a1, a2, a3, a4, a5, a6) \
+  INLINE_SYSCALL (name, 6, a1, a2, a3, a4, a5, a6)
+#define __SYSCALL7(name, a1, a2, a3, a4, a5, a6, a7) \
+  INLINE_SYSCALL (name, 7, a1, a2, a3, a4, a5, a6, a7)
+
+#define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
 #define __SYSCALL_NARGS(...) \
-  __SYSCALL_NARGS_X (__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0,)
+  __SYSCALL_NARGS_X (__VA_ARGS__,7,6,5,4,3,2,1,0,)
+#define __SYSCALL_CONCAT_X(a,b)     a##b
+#define __SYSCALL_CONCAT(a,b)       __SYSCALL_CONCAT_X (a, b)
+#define __SYSCALL_DISP(b,...) \
+  __SYSCALL_CONCAT (b,__SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__)
+
+#define __SYSCALL_CALL(...) __SYSCALL_DISP (__SYSCALL, __VA_ARGS__)
 
-#define SYSCALL_CANCEL(name, ...) \
+#define SYSCALL_CANCEL(...) \
   ({									     \
     long int sc_ret;							     \
     if (SINGLE_THREAD_P) 						     \
-      sc_ret = INLINE_SYSCALL (name, __SYSCALL_NARGS(__VA_ARGS__),	     \
-			       __VA_ARGS__);				     \
+      sc_ret = __SYSCALL_CALL (__VA_ARGS__);   				     \
     else								     \
       {									     \
 	int sc_cancel_oldtype = LIBC_CANCEL_ASYNC ();			     \
-	sc_ret = INLINE_SYSCALL (name, __SYSCALL_NARGS (__VA_ARGS__),	     \
-				 __VA_ARGS__);				     \
+	sc_ret = __SYSCALL_CALL (__VA_ARGS__);				     \
         LIBC_CANCEL_RESET (sc_cancel_oldtype);				     \
       }									     \
     sc_ret;								     \

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

Summary of changes:
 ChangeLog             |   17 +++++++++++++++++
 sysdeps/unix/sysdep.h |   36 ++++++++++++++++++++++++++++--------
 2 files changed, 45 insertions(+), 8 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]