From: Bruce Ashfield <bruce.ashfield@windriver.com>
To: Liang Li <liang.li@windriver.com>
Cc: darren.hart@intel.com, openembedded-core@lists.openembedded.org
Subject: Re: [discussion] perf: specify SLANG_INC dir for perf
Date: Wed, 22 Aug 2012 01:41:40 -0400 [thread overview]
Message-ID: <50347114.1060501@windriver.com> (raw)
In-Reply-To: <20120822030118.GA384@localhost>
On 12-08-21 11:01 PM, Liang Li wrote:
> On 2012-08-21 21:07, Bruce Ashfield<bruce.ashfield@windriver.com> wrote:
>> On 12-08-21 01:08 AM, Liang Li wrote:
>>> On 2012-08-20 22:48, Bruce Ashfield<bruce.ashfield@windriver.com> wrote:
>>>> On 12-08-17 09:05 AM, Liang Li wrote:
>>>>> On 2012-08-17 21:01, Liang Li<liang.li@windriver.com> wrote:
>>>>>> On 2012-08-17 18:53, Richard Purdie<richard.purdie@linuxfoundation.org> wrote:
>>>>>>> On Fri, 2012-08-17 at 18:00 +0800, Liang Li wrote:
>>>>>>>> I am totally confused, you mentioned 'general kernel do_install', I
>>>>>>>> assume it's oe-core kernel.bbclass concept. Then you mentioned 'get
>>>>>>>> the fix upstream in the mainline kernel', how could that happen?
>>>>>>>>
>>>>>>>> We are discussing about the solution to 'fix the compile warning to
>>>>>>>> error' stuff that triggered by the '-I/usr/include/slang', right?
>>>>>>>
>>>>>>> Yes.
>>>>>>>
>>>>>>>> We do not necessarily have to change recipe to fix it since the issue
>>>>>>>> is not introduced by the recipe, the hard coded '-I/usr/include/slang'
>>>>>>>> in the Makefile cause the issue, we can fix the root cause by kernel
>>>>>>>> patch(other than just comment the line out). I see your previous patch
>>>>>>>> to kernel, by comment out the '-I/usr/include/slang' line in the
>>>>>>>> Makefile, is the same behavior, but we won't have the change(comment
>>>>>>>> out -I.. in Makefile) upstream to mainline, right?
>>>>>>>
>>>>>>> I am suggesting that firstly, someone send a patch to the mainline
>>>>>>> kernel which changes -I/usr/include/slang to -I=/usr/include/slang in
>>>>>>> that Makefile.
>>>>>>>
>>>>>>> Secondly, I'm suggesting that we add a line to kernel_do_install() in
>>>>>>> kernel.bbclass which does a sed on the Makefile as installed into
>>>>>>> $kerneldir which changes -I/usr/include/slang to -I=/usr/include/slang.
>>>>>>>
>>>>>>> We can then drop the patch I added to the linux-yocto kernels.
>>>>>>>
>>>>>>> This is all that should be needed, it should fix all the issues people
>>>>>>> have reported in a way that is acceptable to everyone.
>>>>>>>
>>>>>>
>>>>>> Ah, I see what you mean now. But we have push acceptable kernel patch
>>>>>
>>>>
>>>> One final (I hope) follow up on this.
>>>>
>>>> Liang: were you going to put together (and test) the 'sed fix' for
>>>> kernel.bbclass ?
>>>>
>>>
>>> No problem, the patch for kernel.bbclass:
>>>
>>> commit 60a0b06
>>> Author: Liang Li<liang.li@windriver.com>
>>> Date: Tue Aug 21 11:06:01 2012 +0800
>>>
>>> kernel.bbclass: fix INC directory for SLANG
>>>
>>> The change is intend to fix the hardcoded '-I/usr/include/slang' in
>>> the Makefile to be able to aware of SYSROOT if its specified.
>>>
>>> A planned kernel patch almost did the same change, but the change here
>>> won't conflict with it so this change could work for all kernels.
>>>
>>> Signed-off-by: Liang Li<liang.li@windriver.com>
>>>
>>> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
>>> index 1afb9ab..282194d 100644
>>> --- a/meta/classes/kernel.bbclass
>>> +++ b/meta/classes/kernel.bbclass
>>> @@ -190,6 +190,9 @@ kernel_do_install() {
>>> for entry in $bin_files; do
>>> rm -f $kerneldir/$entry
>>> done
>>> +
>>> + # Fix SLNAG_INC for slang.h
>>
>> s/SLNAG_INC/SLANG_INC/
>>
>>> + sed -i 's#-I/usr/include/slang#-I=/usr/include/slang#g' $kerneldir/tools/perf/Makefile
>>
>> It looks like your baseline for this patch is the denzil branch. We'd
>> want a version for master, which we could backport as required.
>>
>
> Yes, the change for the master branch is almost the same, except line
> number context:
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index f34e632..fdef1be 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -204,6 +204,9 @@ kernel_do_install() {
> for entry in $bin_files; do
> rm -f $kerneldir/$entry
> done
> +
> + # Fix SLANG_INC for slang.h
> + sed -i 's#-I/usr/include/slang#-I=/usr/include/slang#g' $kerneldir/tools/perf/Makefile
> }
>
> sysroot_stage_all_append() {
>
> ---
>
>>> }
>>>
>>> PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
>>>
>>> ---
>>>
>>> The patch for kernel tree:
>>>
>>> commit 6b72896
>>> Author: Liang Li<liang.li@windriver.com>
>>> Date: Wed Aug 1 14:31:24 2012 +0800
>>>
>>> perf: add SLANG_INC for slang.h
>>>
>>> Previously we hard code '-I/usr/include/slang' to CFLAGS to works with
>>> some hosts that has /usr/include/slang/slang.h other than
>>> /usr/include/slang.h like Fedora. This will cause compiling warnings
>>> in some cases.
>>
>> I'd rephrase this slightly as:
>>
>> CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
>> work with hosts that have "/usr/include/slang/slang.h" as well as hosts
>> that have "/usr/include/slang.h". This path can cause compile warnings
>> in some cases:
>>
>> <put the warnings here>
>>
>> .. and indicate that these warnings can actually cause build errors if
>> WERROR is enabled.
>>
>>>
>>> We could downgrade the priority of the default hard coded path, and
>>> provide user a chance to specify correct location of slang.h then user
>>> could specify SLANG_INC to avoid compile warnings like the
>>> '/usr/include/slang' is not exists etc.
>>
>> Another minor rephrase:
>>
>> To fix this issue, we can use -idirafter to downgrade the priority of the
>> default hard coded path. We can also make the slang include directory
>> a variable, to allow the user to specify SLANG_INC and set their own
>> include location.
>>
>
> No problem, rephrased commit message:
>
> Subject: [PATCH] perf: add SLANG_INC for slang.h
>
> CFLAGS was previously hard coded to contain "-I/usr/include/slang" to
> work with hosts that have "/usr/include/slang/slang.h" as well as hosts
> that have "/usr/include/slang.h". This path can cause compile warnings
> like:
>
> cc1: warning: '/usr/include/slang' doesn't exists.
>
> or
>
> cc1: warning: include location "/usr/include/slang" is unsafe for
> cross-compilation [-Wpoison-system-directories]
>
> Then in some cases warnings become errors if WERROR is enabled hence
> build errors.
>
> To fix this issue, we can use -idirafter to downgrade the priority of the
> default hard coded path. We can also make the slang include directory
> a variable, to allow the user to specify SLANG_INC and set their own
> include location. And add a '=' prefix to indicate better
> compatibility with sysroot/cross compile cases.
>
> Signed-off-by: Liang Li<liang.li@windriver.com>
>
>>>
>>> Signed-off-by: Liang Li<liang.li@windriver.com>
>>>
>>> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
>>> index b7a7a87..e403c36 100644
>>> --- a/tools/perf/Makefile
>>> +++ b/tools/perf/Makefile
>>> @@ -496,8 +496,10 @@ else
>>> msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev);
>>> BASIC_CFLAGS += -DNO_NEWT_SUPPORT
>>> else
>>> - # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
>>> - BASIC_CFLAGS += -I/usr/include/slang
>>> + # Some releases like Fedora has /usr/include/slang/slang.h other than /usr/include/slang.h
>>> + SLANG_INC ?= -idirafter =/usr/include/slang
>>
>> One more question, have you confirmed that gcc is fine with this being
>> in sysroot notation ? (I assume it is .. but I need to ask.
>>
>
> Confirmed.
Both look fine to me, if you send me a pull request for the kernel.bbclass
part, and a separate one for the kernel patch, I'll take care
of dropping the old slang patch, and getting all the changes
to Richard in a single pull request.
We can then take the kernel patch upstream to the perf
maintainers for their comments.
Cheers,
Bruce
>
> Thanks,
> Liang Li
>
>> Cheers,
>>
>> Bruce
>>
>>> + BASIC_CFLAGS += $(SLANG_INC)
>>> +
>>> EXTLIBS += -lnewt -lslang
>>> LIB_OBJS += $(OUTPUT)ui/setup.o
>>> LIB_OBJS += $(OUTPUT)ui/browser.o
>>>
>>> ---
>>>
>>> Comments? :)
>>>
>>> Thanks,
>>> Liang Li
>>>
>>>> I have my own set of issues that are consuming my time now, and I want
>>>> to ensure that this doesn't fall through the cracks, since we need a
>>>> full/real fix for this as soon as possible.
>>>>
>>>> Cheers,
>>>>
>>>> Bruce
>>>>
>>>>
>>>>> Sorry, I mean 'we can ...' instead of 'we have ...', just typo.
next prev parent reply other threads:[~2012-08-22 5:53 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-03 15:43 [PATCH] perf: pass STAGING_INCDIR(sysroot) to perf Liang Li
2012-08-07 12:56 ` Bruce Ashfield
2012-08-07 14:12 ` Richard Purdie
2012-08-07 14:19 ` Bruce Ashfield
2012-08-07 14:27 ` Richard Purdie
2012-08-07 14:02 ` Richard Purdie
2012-08-07 14:07 ` Bruce Ashfield
2012-08-07 14:22 ` Richard Purdie
2012-08-07 14:29 ` Bruce Ashfield
2012-08-07 14:44 ` Richard Purdie
2012-08-07 15:26 ` Bruce Ashfield
2012-08-07 15:41 ` Richard Purdie
2012-08-07 15:54 ` Bruce Ashfield
2012-08-07 16:02 ` Richard Purdie
2012-08-08 3:37 ` Liang Li
2012-08-09 0:36 ` Darren Hart
2012-08-09 1:24 ` Liang Li
2012-08-09 1:41 ` Darren Hart
2012-08-09 1:52 ` Liang Li
2012-08-09 3:54 ` Darren Hart
2012-08-09 1:33 ` Bruce Ashfield
2012-08-14 2:17 ` [discussion] perf: specify SLANG_INC dir for perf Liang Li
2012-08-16 15:33 ` Bruce Ashfield
2012-08-16 15:58 ` Richard Purdie
2012-08-16 16:00 ` Bruce Ashfield
2012-08-16 16:12 ` McClintock Matthew-B29882
2012-08-17 3:32 ` Liang Li
2012-08-17 9:35 ` Richard Purdie
2012-08-17 10:00 ` Liang Li
2012-08-17 10:53 ` Richard Purdie
2012-08-17 12:55 ` Bruce Ashfield
2012-08-17 13:01 ` Liang Li
2012-08-17 13:05 ` Liang Li
2012-08-20 14:48 ` Bruce Ashfield
2012-08-21 5:08 ` Liang Li
2012-08-21 8:51 ` Henning Heinold
2012-08-21 9:19 ` Liang Li
2012-08-21 10:40 ` Richard Purdie
2012-08-21 13:07 ` Bruce Ashfield
2012-08-22 3:01 ` Liang Li
2012-08-22 5:41 ` Bruce Ashfield [this message]
2012-08-22 8:17 ` Liang Li
2012-08-17 14:35 ` Darren Hart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50347114.1060501@windriver.com \
--to=bruce.ashfield@windriver.com \
--cc=darren.hart@intel.com \
--cc=liang.li@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox