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

Bruce Ashfield bruce.ashfield at gmail.com
Mon Aug 26 02:39:23 UTC 2013


On Sun, Aug 25, 2013 at 10:14 PM, Bruce Ashfield
<bruce.ashfield at windriver.com> wrote:
> On 13-08-25 8:54 PM, Bruce Ashfield wrote:
>>
>> On 13-08-25 8:46 PM, Khem Raj wrote:
>>>
>>> Hi Bruce
>>>
>>> On Sat, Aug 24, 2013 at 10:16 PM, Bruce Ashfield
>>> <bruce.ashfield at windriver.com> 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.
>>>
>>>
>>> The problem is there however we need not fix it in eglibc thats wrong
>>> place to fix it. The right place to fix it is affected application
>>> which seems so mix glibc and kernel interfaces. It should try to not
>>> mix kernel and glibc interfaces. This patch as such is not
>>> appropriate.
>>
>>
>> My insistence is that this go in in the mean time, otherwise the 3.10
>
>
> s/insistence/suggestion/
>
> That came out a bit to strong! :)


... and I should point out that the fix I have in this patch also
requires a particular
include order. So by all definitions .. it is temporary!

Bruce

>
> Bruce
>
>
>> kernel headers miss the M4 cutoff and basically the whole release.
>>
>> I'm certainly not going to have the time and cycles to fix individual
>> applications, so our choices boil down to taking this change, rolling
>> back to the 3.8 headers, or waiting for individual package maintainers
>> to update their packages to work with the 3.10 headers.
>>
>> I personally don't see the harm in this change, since these applications
>> have always had this mix of both sys/ptrace.h and linux/ptrace.h in the
>> past, now doesn't seem like the time to fix them.
>>
>> Cheers,
>>
>> Bruce
>>
>>
>>>
>>>
>>>>
>>>> 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
>>>>
>>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"



More information about the Openembedded-core mailing list