summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Polatel <alip@exherbo.org>2013-09-24 20:04:32 +0300
committerDmitry V. Levin <ldv@altlinux.org>2013-09-26 13:08:43 +0000
commit0b4060f61f1bb101b5d8d084714b7d2feacdb199 (patch)
treeec58178b66603ab10c1bf6df1ea75715f5b0e1bc
parent7daacbbbe7349677476a3d2fbf174dcf86f171be (diff)
downloadstrace-0b4060f61f1bb101b5d8d084714b7d2feacdb199.tar.gz
strace-0b4060f61f1bb101b5d8d084714b7d2feacdb199.tar.bz2
strace-0b4060f61f1bb101b5d8d084714b7d2feacdb199.tar.xz
Work around conflict between <sys/ptrace.h> and <linux/ptrace.h>
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>
-rw-r--r--configure.ac2
-rw-r--r--process.c4
-rw-r--r--signal.c4
-rw-r--r--syscall.c4
-rw-r--r--util.c4
5 files changed, 17 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index f19e4f2..aa4923a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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>])
diff --git a/process.c b/process.c
index 1a2181b..59428a4 100644
--- a/process.c
+++ b/process.c
@@ -63,7 +63,11 @@
# 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/signal.c b/signal.c
index 7fb9abf..3411ddd 100644
--- a/signal.c
+++ b/signal.c
@@ -51,7 +51,11 @@
# 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/syscall.c b/syscall.c
index 83a95bd..3477dcd 100644
--- a/syscall.c
+++ b/syscall.c
@@ -48,7 +48,11 @@
# 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 0dab902..30a7f19 100644
--- a/util.c
+++ b/util.c
@@ -55,7 +55,11 @@
# 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