Patchwork linux-yocto-3.0: Fix compile failure in perf

login
register
mail settings
Submitter Khem Raj
Date Jan. 5, 2012, 8:06 p.m.
Message ID <1325793967-13002-1-git-send-email-raj.khem@gmail.com>
Download mbox | patch
Permalink /patch/18513/
State New
Headers show

Comments

Khem Raj - Jan. 5, 2012, 8:06 p.m.
Signed-off-by: Khem Raj <raj.khem@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
Bruce Ashfield - Jan. 5, 2012, 8:13 p.m.
On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
> Signed-off-by: Khem Raj <raj.khem@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 ?

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.

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

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@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@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@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Khem Raj - Jan. 5, 2012, 8:55 p.m.
On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
<bruce.ashfield@gmail.com> wrote:
> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> Signed-off-by: Khem Raj <raj.khem@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.

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

> 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

> 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@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@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@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@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Bruce Ashfield - Jan. 5, 2012, 8:59 p.m.
On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
> <bruce.ashfield@gmail.com> wrote:
>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>> Signed-off-by: Khem Raj <raj.khem@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.
>>
>> 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@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@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@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@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Khem Raj - Jan. 5, 2012, 9:20 p.m.
On Thu, Jan 5, 2012 at 12:59 PM, Bruce Ashfield
<bruce.ashfield@gmail.com> wrote:
> On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
>> <bruce.ashfield@gmail.com> wrote:
>>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>> Signed-off-by: Khem Raj <raj.khem@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.

>>>
>>> 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@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@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@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@lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@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@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Bruce Ashfield - Jan. 6, 2012, 3:41 p.m.
On Thu, Jan 5, 2012 at 4:20 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On Thu, Jan 5, 2012 at 12:59 PM, Bruce Ashfield
> <bruce.ashfield@gmail.com> wrote:
>> On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
>>> <bruce.ashfield@gmail.com> wrote:
>>>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>>> Signed-off-by: Khem Raj <raj.khem@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.

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@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@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@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@lists.openembedded.org
>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@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@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Saul Wold - Jan. 6, 2012, 5:04 p.m.
On 01/06/2012 07:41 AM, Bruce Ashfield wrote:
> On Thu, Jan 5, 2012 at 4:20 PM, Khem Raj<raj.khem@gmail.com>  wrote:
>> On Thu, Jan 5, 2012 at 12:59 PM, Bruce Ashfield
>> <bruce.ashfield@gmail.com>  wrote:
>>> On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj<raj.khem@gmail.com>  wrote:
>>>> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
>>>> <bruce.ashfield@gmail.com>  wrote:
>>>>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj<raj.khem@gmail.com>  wrote:
>>>>>> Signed-off-by: Khem Raj<raj.khem@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@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@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@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@lists.openembedded.org
>>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>>
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@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@lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
>
Bruce Ashfield - Jan. 6, 2012, 5:37 p.m.
On Fri, Jan 6, 2012 at 12:04 PM, Saul Wold <sgw@linux.intel.com> wrote:
> On 01/06/2012 07:41 AM, Bruce Ashfield wrote:
>>
>> On Thu, Jan 5, 2012 at 4:20 PM, Khem Raj<raj.khem@gmail.com>  wrote:
>>>
>>> On Thu, Jan 5, 2012 at 12:59 PM, Bruce Ashfield
>>> <bruce.ashfield@gmail.com>  wrote:
>>>>
>>>> On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj<raj.khem@gmail.com>  wrote:
>>>>>
>>>>> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield
>>>>> <bruce.ashfield@gmail.com>  wrote:
>>>>>>
>>>>>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj<raj.khem@gmail.com>  wrote:
>>>>>>>
>>>>>>> Signed-off-by: Khem Raj<raj.khem@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'll take the patch now in preparation for any updates to 2.15, and put it in
both the 3.0 and -dev (3.2) kernel trees. We won't technically need
it, but there's
no harm when it is in place, so it's fine to have in the tree ahead of time.

Cheers,

Bruce

>
> 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@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@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@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@lists.openembedded.org
>>>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Openembedded-core mailing list
>>>>> Openembedded-core@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@lists.openembedded.org
>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>
>>>
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>>
>>
>>
>

Patch

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@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@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)"