Patchwork strace: apply ptrace.h conflict workaround

login
register
mail settings
Submitter Yasir Khan
Date Aug. 12, 2014, 12:40 p.m.
Message ID <1407847258-46064-1-git-send-email-yasir_khan@mentor.com>
Download mbox | patch
Permalink /patch/78011/
State Accepted
Commit f21f385228e6d09553ae3c438f2c6f9f868d0b58
Headers show

Comments

Yasir Khan - Aug. 12, 2014, 12:40 p.m.
From: Yasir-Khan <yasir_khan@mentor.com>

Apply patch from strace upstream to workaround ptrace.h
header file conflict. This patch is not available in
strace-4.8 tarball pulled in by recipe.

* patch from strace upstream
 - Work around conflict between <sys/ptrace.h> and
   <linux/ptrace.h>

Signed-off-by: Yasir-Khan <yasir_khan@mentor.com>
---
 ...-conflict-between-sys-ptrace.h-and-linux-.patch |  108 ++++++++++++++++++++
 meta/recipes-devtools/strace/strace_4.8.bb         |    1 +
 2 files changed, 109 insertions(+)
 create mode 100644 meta/recipes-devtools/strace/strace-4.8/0001-Work-around-conflict-between-sys-ptrace.h-and-linux-.patch

Patch

diff --git a/meta/recipes-devtools/strace/strace-4.8/0001-Work-around-conflict-between-sys-ptrace.h-and-linux-.patch b/meta/recipes-devtools/strace/strace-4.8/0001-Work-around-conflict-between-sys-ptrace.h-and-linux-.patch
new file mode 100644
index 0000000..5a0090e
--- /dev/null
+++ b/meta/recipes-devtools/strace/strace-4.8/0001-Work-around-conflict-between-sys-ptrace.h-and-linux-.patch
@@ -0,0 +1,108 @@ 
+Upstream-Status: Backport
+
+From 0b4060f61f1bb101b5d8d084714b7d2feacdb199 Mon Sep 17 00:00:00 2001
+From: Ali Polatel <alip@exherbo.org>
+Date: Tue, 24 Sep 2013 20:04:32 +0300
+Subject: [PATCH] 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>
+---
+ configure.ac | 2 +-
+ process.c    | 4 ++++
+ signal.c     | 4 ++++
+ syscall.c    | 4 ++++
+ util.c       | 4 ++++
+ 5 files changed, 17 insertions(+), 1 deletion(-)
+
+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
+-- 
+1.8.2.1
+
diff --git a/meta/recipes-devtools/strace/strace_4.8.bb b/meta/recipes-devtools/strace/strace_4.8.bb
index d954c37..ed738ea 100644
--- a/meta/recipes-devtools/strace/strace_4.8.bb
+++ b/meta/recipes-devtools/strace/strace_4.8.bb
@@ -10,6 +10,7 @@  SRC_URI = "${SOURCEFORGE_MIRROR}/strace/strace-${PV}.tar.xz \
            file://Makefile-ptest.patch \
            file://strace-fix-64-bit-process-detection.patch \
            file://run-ptest \
+           file://0001-Work-around-conflict-between-sys-ptrace.h-and-linux-.patch \
           "
 
 SRC_URI[md5sum] = "c575ef43829586801f514fd91bfe7575"