[OE-core] [PATCH] perf: pass STAGING_INCDIR(sysroot) to perf

Bruce Ashfield bruce.ashfield at windriver.com
Tue Aug 7 15:26:33 UTC 2012


On 12-08-07 10:44 AM, Richard Purdie wrote:
> On Tue, 2012-08-07 at 10:29 -0400, Bruce Ashfield wrote:
>> On 12-08-07 10:22 AM, Richard Purdie wrote:
>>> On Tue, 2012-08-07 at 10:07 -0400, Bruce Ashfield wrote:
>>>> On 12-08-07 10:02 AM, Richard Purdie wrote:
>>>>> On Fri, 2012-08-03 at 23:43 +0800, Liang Li wrote:
>>>>>> Via EXTRA_CFLAGS, we can pass the sysroot include directory to perf to
>>>>>> provide slang.h rather than hardcoded host dir in perf's Makefile.
>>>>>>
>>>>>> Pass WERROR=0 to perf's Makefile to avoid warnings being treated
>>>>>> as errors. Warnings are not fatal, and while they will be fixed in the
>>>>>> future, there's no need for them to break the build.
>>>>>
>>>>> No mention of the additional slang dependency is made here?
>>>>>
>>>>>> Signed-off-by: Liang Li<liang.li at windriver.com>
>>>>>> ---
>>>>>>     meta/recipes-kernel/perf/perf_3.4.bb | 3 +++
>>>>>>     1 file changed, 3 insertions(+)
>>>>>>
>>>>>> diff --git a/meta/recipes-kernel/perf/perf_3.4.bb b/meta/recipes-kernel/perf/perf_3.4.bb
>>>>>> index 505c7b8..537e926 100644
>>>>>> --- a/meta/recipes-kernel/perf/perf_3.4.bb
>>>>>> +++ b/meta/recipes-kernel/perf/perf_3.4.bb
>>>>>> @@ -24,6 +24,7 @@ DEPENDS = "virtual/kernel \
>>>>>>                ${MLPREFIX}binutils \
>>>>>>                ${TUI_DEPENDS} \
>>>>>>                ${SCRIPTING_DEPENDS} \
>>>>>> +           slang \
>>>>>>               "
>>>>>>
>>>>>>     SCRIPTING_RDEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl perl-modules python', '',d)}"
>>>>>> @@ -63,6 +64,8 @@ EXTRA_OEMAKE = \
>>>>>>     		AR="${AR}" \
>>>>>>     		prefix=/usr \
>>>>>>     		NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${SCRIPTING_DEFINES} \
>>>>>> +		WERROR=0 \
>>>>>> +		EXTRA_CFLAGS=-I${STAGING_INCDIR} \
>>>>>>     		'
>>>>>
>>>>> This is is not acceptable since the include directory /usr/include/slang
>>>>> is still being looked at and this just "hides" the error. STAGING_INCDIR
>>>>> is on the compilers default search path anyway.
>>>>
>>>> But this makes it first, which is what we were going for. For
>>>> an external toolchain, this also might not be true.
>>>
>>> You have an external toolchain which does not search the sysroot
>>> usr/include directory? Really? ;-)
>>
>> I do. Trust me on this. I'm not talking about Wind River, I'm
>> not talking about oe-core or yocto here.
>
> Well, for such a toolchain, you need to pass STAGING_INCDIR into the
> CFLAGS anyway and are likely doing so at a different higher level. I
> don't see how this patch changes anything.

I wasn't clear, I'm building the tree (and tools) standalone using
both a hand generated cross toolchain and the native toolchain. Neither
uses a sysroot, so if I merged that patch into the tree, then they
wouldn't find slang and the build breaks.

>
>>> I accept we won't search usr/include/slang but we don't install slang in
>>> that directory anyway so its irrelevant and that isn't the path you're
>>> adding.
>>>
>>>>> So this patch is wrong in several different ways :(
>>>>>
>>>>> I've merged a temporary fix until we get this resolved properly.
>>>>
>>>> I think this is a point of view thing, since from here, this is a
>>>> better temporary fix than commenting out the path in the perf
>>>> Makefile, which will break standalone tree cases if I merge the patch
>>>> into the tree, and I don't want to go to a milestone freeze with
>>>> an out of tree patch.
>>>
>>> I doubt it will actually break anything.
>>
>> It will, and does if I merge the patch to the kernel tree where
>> it belongs. That is my point.
>
> Can you please explain how it breaks? Previously all you've said it "it
> might break". Now you say it does break but not how.
>
> As I've explained, I can't see how it would do that as we should never
> be looking in /usr/include/slang/.
>
> I'm going to guess that this isn't an external toolchain problem and is
> if you build the kernel standalone against your native system with no
> cross compilation involved? Its likely a fedora system rather than
> ubuntu/debian derived?
>
> It would be nice to not have to guess at what the problem is though...

Sorry about that, 400 unread email have me moving quickly this morning
and not taking enough time to put all the detail into what I am
writing. I added that above. And yes, it is some older RHEL/Suse boxes
and other ones that are derived from non debian systems that give me
pain.

>
>>>> So I'd ask again that we reconsider this patch, since what's in tree
>>>> has issues with other use cases.
>>>
>>> No, I'm flatly refusing it, sorry.
>>
>> That's your prerogative, but I dislike the kernel patch that you
>> did with the same flatness.
>>
>> I'm not trying to raise a fuss here, but you have to see the
>> other point of view on this and acknowledge that the existing change
>> is just as unpalatable to me, as the recipe space one is to you.
>
> Well, I'm trying to illustrate how and why its a bad idea, you were just
> talking about hypothetical issues with no details. If it does break
> something, fine but at least please give some indication of what/how/why
> and then we can discuss it.
>
>> In the end, I don't really care, but I just don't like the optics
>> of an unsigned, out of tree patch, that I'm not going to merge
>> to the kernel, and one that will have to sit where it is for M3.
>
> We had the autobuilder showing read for 5 days with radio silence and
> admittedly some confusion over a patch status. What am I meant to do
> given I'd really like to take the vacation I have planned this week?

Sorry, I thought when Liang sent the patch the issue was resolved :(
We at least did. That's how it goes sometimes.

>
> Anyhow, lets see if we can resolve this. Can you answer my previous
> question about whether changing this to -I=/usr/include/slang would
> work?

It should, but there's a distinct lack of precedent for sysroot style
include paths in the kernel tools (behind the times), but in the end,
if it fixes the oe-core case, and doesn't break standalone builds
(the toolchain just has to no error on the syntax), it should be fine.

I've already asked that a full kernel fix be generated, but I don't think
it will make the deadline for your vacation, or M3, so merging a sysroot
based include is probably the reasonable middle ground that I'll end
on.

Cheers,

Bruce

>
> Cheers,
>
> Richard
>
>
>
>





More information about the Openembedded-core mailing list