This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.22-613-gfc48bfb
- From: azanella at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 17 Dec 2015 20:18:11 -0000
- Subject: 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