[OE-core] [PATCH 4/7] eglibc: ptrace: protect ptrace_peeksiginfo_args from redefintion

Bruce Ashfield bruce.ashfield at windriver.com
Sun Aug 25 05:16:36 UTC 2013


linux kernel commit 84c751bd [ptrace: add ability to retrieve signals without removing from a queue (v4)]
added ptrace_peeksiginfo_args to the exported kernel user api.

This leads to build errors such as:

| In file included from /poky-master/build/tmp/work/i586-poky-linux/strace/4.8-r0/strace-4.8/process.c:66:0:
| /poky-master/build/tmp/sysroots/qemux86/usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args'
|  struct ptrace_peeksiginfo_args {
|         ^
| In file included from /poky-master/build/tmp/work/i586-poky-linux/strace/4.8-r0/strace-4.8/defs.h:159:0,
|                  from /poky-master/build/tmp/work/i586-poky-linux/strace/4.8-r0/strace-4.8/process.c:37:
| /poky-master/build/tmp/sysroots/qemux86/usr/include/sys/ptrace.h:191:8: note: originally defined here
|  struct ptrace_peeksiginfo_args
|         ^
| make[2]: *** [process.o] Error 1

In files that include both the eglibc sys/ptrace.h and the linux kernel exported
one.

We can avoid this by making the eglibc variant only declare its structure if PTRACE_PEEKSIGINFO
has not been defined.

Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
---
 ...ect-ptrace_peeksiginfo_args-from-redefint.patch |   55 ++++++++++++++++++++
 meta/recipes-core/eglibc/eglibc_2.18.bb            |    1 +
 2 files changed, 56 insertions(+)
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.18/0001-ptrace-protect-ptrace_peeksiginfo_args-from-redefint.patch

diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-ptrace-protect-ptrace_peeksiginfo_args-from-redefint.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-ptrace-protect-ptrace_peeksiginfo_args-from-redefint.patch
new file mode 100644
index 0000000..edf10fb
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.18/0001-ptrace-protect-ptrace_peeksiginfo_args-from-redefint.patch
@@ -0,0 +1,55 @@
+From b5fe604678ffc7e0d6c2704a73d22f99b24a6d25 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield at windriver.com>
+Date: Sat, 24 Aug 2013 23:51:06 -0400
+Subject: [PATCH] ptrace: protect ptrace_peeksiginfo_args from redefintion
+
+linux kernel commit 84c751bd [ptrace: add ability to retrieve signals without removing from a queue (v4)]
+added ptrace_peeksiginfo_args to the exported kernel user api.
+
+This leads to build errors such as:
+
+| In file included from /poky-master/build/tmp/work/i586-poky-linux/strace/4.8-r0/strace-4.8/process.c:66:0:
+| /poky-master/build/tmp/sysroots/qemux86/usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args'
+|  struct ptrace_peeksiginfo_args {
+|         ^
+| In file included from /poky-master/build/tmp/work/i586-poky-linux/strace/4.8-r0/strace-4.8/defs.h:159:0,
+|                  from /poky-master/build/tmp/work/i586-poky-linux/strace/4.8-r0/strace-4.8/process.c:37:
+| /poky-master/build/tmp/sysroots/qemux86/usr/include/sys/ptrace.h:191:8: note: originally defined here
+|  struct ptrace_peeksiginfo_args
+|         ^
+| make[2]: *** [process.o] Error 1
+
+In files that include both the eglibc sys/ptrace.h and the linux kernel exported
+one.
+
+We can avoid this by making the eglibc variant only declare its structure if PTRACE_PEEKSIGINFO
+has not been defined.
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
+---
+ libc/sysdeps/unix/sysv/linux/sys/ptrace.h |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
+index 2b78565..7800d9a 100644
+--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
+@@ -187,6 +187,7 @@ enum __ptrace_eventcodes
+   PTRAVE_EVENT_SECCOMP  = 7
+ };
+ 
++#ifndef PTRACE_PEEKSIGINFO
+ /* Arguments for PTRACE_PEEKSIGINFO.  */
+ struct ptrace_peeksiginfo_args
+ {
+@@ -194,6 +195,7 @@ struct ptrace_peeksiginfo_args
+   __uint32_t flags;	/* Flags for peeksiginfo.  */
+   __int32_t nr;		/* How many siginfos to take.  */
+ };
++#endif
+ 
+ enum __ptrace_peeksiginfo_flags
+ {
+-- 
+1.7.10.4
+
diff --git a/meta/recipes-core/eglibc/eglibc_2.18.bb b/meta/recipes-core/eglibc/eglibc_2.18.bb
index 17b651f..2257c21 100644
--- a/meta/recipes-core/eglibc/eglibc_2.18.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.18.bb
@@ -26,6 +26,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr23
            file://tzselect-awk.patch \
            file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
            file://fix-tibetian-locales.patch \
+           file://0001-ptrace-protect-ptrace_peeksiginfo_args-from-redefint.patch \
           "
 SRC_URI[md5sum] = "b395b021422a027d89884992e91734fc"
 SRC_URI[sha256sum] = "15f564b45dc5dd65faf0875579e3447961ae61e876933384ae05d19328539ad4"
-- 
1.7.10.4




More information about the Openembedded-core mailing list