[OE-core] [PATCH] linux-yocto-3.0: Fix compile failure in perf

Saul Wold sgw at linux.intel.com
Fri Jan 6 17:04:09 UTC 2012


On 01/06/2012 07:41 AM, Bruce Ashfield wrote:
> On Thu, Jan 5, 2012 at 4:20 PM, Khem Raj<raj.khem at gmail.com>  wrote:
>> On Thu, Jan 5, 2012 at 12:59 PM, Bruce Ashfield
>> <bruce.ashfield at gmail.com>  wrote:
>>> On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj<raj.khem at gmail.com>  wrote:
>>>> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
>>>> <bruce.ashfield at gmail.com>  wrote:
>>>>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj<raj.khem at gmail.com>  wrote:
>>>>>> Signed-off-by: Khem Raj<raj.khem at gmail.com>
>>>>>> ---
>>>>>>   ...Undef-before-redefining-__attribute_const.patch |   33 ++++++++++++++++++++
>>>>>>   meta/recipes-kernel/linux/linux-yocto_3.0.bb       |    4 ++-
>>>>>>   2 files changed, 36 insertions(+), 1 deletions(-)
>>>>>>   create mode 100644 meta/recipes-kernel/linux/linux-yocto/0001-compiler.h-Undef-before-redefining-__attribute_const.patch
>>>>>
>>>>> Khem,
>>>>>
>>>>> I just built multiple linux-yocto kernels, for all the qemu targets
>>>>> and haven't seen this
>>>>> error at all. Do you have any special configuration that would be
>>>>> triggering this ?
>>>>
>>>> yes I am building with eglibc 2.15 ( recipes I have not posted yet)
>>>> and this defines is reported to be defined in usr/include/sys/cdefs.h
>>>> which is a header from libc.
>>>
>>> Aha. Perfect. This explains it completely.
>>>
>>>>
>>>>>
>>>>> The change itself looks sane, and in fact makes sense, since the rest
>>>>> of the file
>>>>> has the same protection for the new defines. Nothing has changed that
>>>>> should have triggered
>>>>> this to become an issue. I'm just trying to figure out why it has
>>>>> popped up now.
>>>>>
>>>>> I also checked and the 3.2 kernel still has the same issue, so pushing
>>>>> it upstream makes
>>>>> sense as well.
>>
>> btw. I made the change thinking that perf utils want it that way to I undefine
>> the previous definitions before redefining. But if it was a placeholder where
>> it was defined because something needed it and there was no definitions from
>> standard include headers then I think right fix would be to check if its defined
>> before redefining it. In both cases the warning will go away
>>
>> However with current patch the behaviour remains same as it was but if we check
>> for definition before redefining then that may change.
>
> Agreed. Let's keep the behaviour just as it was (just without warnings
> for now), and
> if it needs to change in the future, that's easy enough to do as well.
>
> I'm grabbing this change now.
>
Just to confirm, with Bruce and Khem:

If this change comes in from Bruce before we grab the 2.15 eglibc, we 
won't need the patch, correct?

I am going to hold off pulling this patch for now.

Sau!

> Cheers,
>
> Bruce
>
>>
>>>>>
>>>>> And I see you asked on IRC, so I'll answer here. Submit a patch to the
>>>>> kernel like
>>>>> any upstream kernel change. Simply send the patch right from your
>>>>> linux working tree,
>>>>
>>>> You mean send to oe-core ml here right ?
>>>
>>> Yep!
>>>
>>>>
>>>>> and I'll pickup the change, merge it into the tree, push it out and
>>>>> send a pull request
>>>>> with updated SRCREVs that collect all the queued changes.
>>>>>
>>>>
>>>> Will you be able to bean this patch out from the one I sent or should
>>>> I resend it ?
>>>> the patch itself should be git am'able
>>>
>>> I'll grab it, no need to resend. I'm doing 3.0.16 merging right now,
>>> so I can collect
>>> it with that set of changes.
>>>
>>> Cheers,
>>>
>>> Bruce
>>>
>>>>
>>>>> Cheers,
>>>>>
>>>>> Bruce
>>>>>
>>>>>>
>>>>>> diff --git a/meta/recipes-kernel/linux/linux-yocto/0001-compiler.h-Undef-before-redefining-__attribute_const.patch b/meta/recipes-kernel/linux/linux-yocto/0001-compiler.h-Undef-before-redefining-__attribute_const.patch
>>>>>> new file mode 100644
>>>>>> index 0000000..b85cc97
>>>>>> --- /dev/null
>>>>>> +++ b/meta/recipes-kernel/linux/linux-yocto/0001-compiler.h-Undef-before-redefining-__attribute_const.patch
>>>>>> @@ -0,0 +1,33 @@
>>>>>> +From 6f92ab6de9d8daeb575949bbbcbc7bcdcebc60af Mon Sep 17 00:00:00 2001
>>>>>> +From: Khem Raj<raj.khem at gmail.com>
>>>>>> +Date: Thu, 5 Jan 2012 11:42:35 -0800
>>>>>> +Subject: [PATCH] compiler.h: Undef before redefining __attribute_const__
>>>>>> +
>>>>>> +This is required to avoid warnings like
>>>>>> +util/include/linux/compiler.h:8:0: error: "__attribute_const__" redefined [-Werror]
>>>>>> +
>>>>>> +Signed-off-by: Khem Raj<raj.khem at gmail.com>
>>>>>> +---
>>>>>> + tools/perf/util/include/linux/compiler.h |    4 +++-
>>>>>> + 1 files changed, 3 insertions(+), 1 deletions(-)
>>>>>> +
>>>>>> +diff --git a/tools/perf/util/include/linux/compiler.h b/tools/perf/util/include/linux/compiler.h
>>>>>> +index 791f9dd..f17ecef 100644
>>>>>> +--- a/tools/perf/util/include/linux/compiler.h
>>>>>> ++++ b/tools/perf/util/include/linux/compiler.h
>>>>>> +@@ -4,9 +4,11 @@
>>>>>> + #ifndef __always_inline
>>>>>> + #define __always_inline       inline
>>>>>> + #endif
>>>>>> ++#undef __user
>>>>>> + #define __user
>>>>>> ++#undef __attribute_const__
>>>>>> + #define __attribute_const__
>>>>>> +-
>>>>>> ++#undef __used
>>>>>> + #define __used                __attribute__((__unused__))
>>>>>> +
>>>>>> + #endif
>>>>>> +--
>>>>>> +1.7.5.4
>>>>>> +
>>>>>> diff --git a/meta/recipes-kernel/linux/linux-yocto_3.0.bb b/meta/recipes-kernel/linux/linux-yocto_3.0.bb
>>>>>> index b650c84..2e87f7f 100644
>>>>>> --- a/meta/recipes-kernel/linux/linux-yocto_3.0.bb
>>>>>> +++ b/meta/recipes-kernel/linux/linux-yocto_3.0.bb
>>>>>> @@ -23,7 +23,9 @@ SRCREV_meta ?= "c979f1365b1eb74e882b2cbbc8407ec536ab6eb8"
>>>>>>   PR = "r2"
>>>>>>   PV = "${LINUX_VERSION}+git${SRCPV}"
>>>>>>
>>>>>> -SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"
>>>>>> +SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta \
>>>>>> +           file://0001-compiler.h-Undef-before-redefining-__attribute_const.patch \
>>>>>> +           "
>>>>>>
>>>>>>   COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
>>>>>>
>>>>>> --
>>>>>> 1.7.5.4
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Openembedded-core mailing list
>>>>>> Openembedded-core at lists.openembedded.org
>>>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> "Thou shalt not follow the NULL pointer, for chaos and madness await
>>>>> thee at its end"
>>>>>
>>>>> _______________________________________________
>>>>> Openembedded-core mailing list
>>>>> Openembedded-core at lists.openembedded.org
>>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>>
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core at lists.openembedded.org
>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>
>>>
>>>
>>> --
>>> "Thou shalt not follow the NULL pointer, for chaos and madness await
>>> thee at its end"
>>>
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core at lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
>




More information about the Openembedded-core mailing list