From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com ([192.55.52.93]) by linuxtogo.org with esmtp (Exim 4.72) (envelope-from ) id 1RjDKI-0004A0-Vo for openembedded-core@lists.openembedded.org; Fri, 06 Jan 2012 18:11:35 +0100 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP; 06 Jan 2012 09:04:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.71,315,1320652800"; d="scan'208";a="104284796" Received: from unknown (HELO [10.255.13.127]) ([10.255.13.127]) by fmsmga001.fm.intel.com with ESMTP; 06 Jan 2012 09:04:10 -0800 Message-ID: <4F072989.8060808@linux.intel.com> Date: Fri, 06 Jan 2012 09:04:09 -0800 From: Saul Wold User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110927 Thunderbird/7.0 MIME-Version: 1.0 To: Patches and discussions about the oe-core layer References: <1325793967-13002-1-git-send-email-raj.khem@gmail.com> In-Reply-To: Subject: Re: [PATCH] linux-yocto-3.0: Fix compile failure in perf X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Patches and discussions about the oe-core layer List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jan 2012 17:11:35 -0000 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 01/06/2012 07:41 AM, Bruce Ashfield wrote: > On Thu, Jan 5, 2012 at 4:20 PM, Khem Raj wrote: >> On Thu, Jan 5, 2012 at 12:59 PM, Bruce Ashfield >> wrote: >>> On Thu, Jan 5, 2012 at 3:55 PM, Khem Raj wrote: >>>> On Thu, Jan 5, 2012 at 12:13 PM, Bruce Ashfield >>>> wrote: >>>>> On Thu, Jan 5, 2012 at 3:06 PM, Khem Raj wrote: >>>>>> Signed-off-by: Khem Raj >>>>>> --- >>>>>> ...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 >>>>>> +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 >>>>>> +--- >>>>>> + 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 > > >