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

Bruce Ashfield bruce.ashfield at windriver.com
Mon Aug 26 02:14:52 UTC 2013


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! :)

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
>>>
>




More information about the Openembedded-core mailing list