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

Jonathan Liu net147 at gmail.com
Sun Aug 25 06:35:47 UTC 2013


On 25/08/2013 3:16 PM, Bruce Ashfield wrote:
> 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.
Missing Upstream-Status.

Regards,
Jonathan
> +
> +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"




More information about the Openembedded-core mailing list