Work around conflict between <sys/ptrace.h> and <linux/ptrace.h>
authorAli Polatel <alip@exherbo.org>
Tue, 24 Sep 2013 17:04:32 +0000 (20:04 +0300)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 26 Sep 2013 13:08:43 +0000 (13:08 +0000)
Since glibc-2.18~39 <sys/ptrace.h> defines ptrace_peeksiginfo_args
which collides with <linux/ptrace.h>.

* configure.ac: Check for `struct ptrace_peeksiginfo_args' in
<sys/ptrace.h>.
* process.c: Work around potential conflict between <sys/ptrace.h>
and <linux/ptrace.h> by redefining ptrace_peeksiginfo_args.
* signal.c: Likewise.
* syscall.c: Likewise.
* util.c: Likewise.

Signed-off-by: Ali Polatel <alip@exherbo.org>
configure.ac
process.c
signal.c
syscall.c
util.c

index f19e4f227d755d595b52d66b9ed5c76e118a06cb..aa4923a68d7d3aaf910fd8a7bd6bfbd1490fd040 100644 (file)
@@ -257,7 +257,7 @@ AC_CHECK_MEMBERS([struct T_conn_res.QUEUE_ptr,
 
 AC_CHECK_TYPES([struct __old_kernel_stat],,, [#include <asm/stat.h>])
 
-AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg],,,
+AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg, struct ptrace_peeksiginfo_args],,,
               [#include <sys/ptrace.h>])
 
 AC_CHECK_TYPES([struct user_desc],,, [#include <asm/ldt.h>])
index 1a2181bd8d3a425ee7cd556e3879a497e06226f1..59428a4de93e54bc57e947055cde2c94a4d8699a 100644 (file)
--- a/process.c
+++ b/process.c
 # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
 #  define pt_all_user_regs XXX_pt_all_user_regs
 # endif
+# ifdef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS
+#  define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
+# endif
 # include <linux/ptrace.h>
+# undef ptrace_peeksiginfo_args
 # undef ia64_fpreg
 # undef pt_all_user_regs
 #endif
index 7fb9abfe18769f049705c6c6530d494fb4736287..3411ddd6ca8429bb3c340f94fde80517e64706ef 100644 (file)
--- a/signal.c
+++ b/signal.c
 # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
 #  define pt_all_user_regs XXX_pt_all_user_regs
 # endif
+# ifdef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS
+#  define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
+# endif
 # include <linux/ptrace.h>
+# undef ptrace_peeksiginfo_args
 # undef ia64_fpreg
 # undef pt_all_user_regs
 #endif
index 83a95bded3bd3cf2d6426732d3a62ee10dedcbb0..3477dcdad7dd3c8f68320ff241459869ad8c4a78 100644 (file)
--- a/syscall.c
+++ b/syscall.c
 # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
 #  define pt_all_user_regs XXX_pt_all_user_regs
 # endif
+# ifdef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS
+#  define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
+# endif
 # include <linux/ptrace.h>
+# undef ptrace_peeksiginfo_args
 # undef ia64_fpreg
 # undef pt_all_user_regs
 #endif
diff --git a/util.c b/util.c
index 0dab902f9e6838131bfe053b01d23a2332549c41..30a7f1950694d2088b5f07afe293b1089da0bc49 100644 (file)
--- a/util.c
+++ b/util.c
 # ifdef HAVE_STRUCT_PT_ALL_USER_REGS
 #  define pt_all_user_regs XXX_pt_all_user_regs
 # endif
+# ifdef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS
+#  define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
+# endif
 # include <linux/ptrace.h>
+# undef ptrace_peeksiginfo_args
 # undef ia64_fpreg
 # undef pt_all_user_regs
 #endif