Patchwork powerpc: fix overly aggressive TUNE_PKGARCH set

login
register
mail settings
Submitter McClintock Matthew-B29882
Date March 22, 2012, 3:21 p.m.
Message ID <CAEsOVNcFM35wUOMz+mHnCbDnWe1VAoUA-G79Wvco8MYaa=XF3Q@mail.gmail.com>
Download mbox | patch
Permalink /patch/24157/
State New
Headers show

Comments

McClintock Matthew-B29882 - March 22, 2012, 3:21 p.m.
On Thu, Mar 22, 2012 at 10:08 AM, Chris Larson <kergoth@gmail.com> wrote:
> On Thu, Mar 22, 2012 at 8:00 AM, Christopher Larson <kergoth@gmail.com> wrote:
>> From: Christopher Larson <chris_larson@mentor.com>
>>
>> There's a problem in arch-powerpc.inc today, wherein it directly sets
>> TUNE_PKGARCH, rather than setting TUNE_PKGARCH_tune-<tuning>. As a result,
>> more specific tuning files (e.g. ppce500mc) then see their
>> TUNE_PKGARCH_tune-<tuning> variable definitions no longer obeyed. As
>> a consequence, the TUNE_PKGARCH ends up as 'powerpc' or 'powerpc-nf' rather
>> than 'ppce500mc', which in turn causes a 'TUNE_PKGARCH not in PACKAGE_ARCHS'
>> failure in the build.
>>
>> To fix, the .inc now sets TUNE_PKGARCH_tune-powerpc and
>> TUNE_PKGARCH_tune-powerpc-nf rather than TUNE_PKGARCH.
>>
>> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
>> ---
>>  meta/conf/machine/include/powerpc/arch-powerpc.inc |    5 +++--
>>  1 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/conf/machine/include/powerpc/arch-powerpc.inc b/meta/conf/machine/include/powerpc/arch-powerpc.inc
>> index c9b2829..f811a3e 100644
>> --- a/meta/conf/machine/include/powerpc/arch-powerpc.inc
>> +++ b/meta/conf/machine/include/powerpc/arch-powerpc.inc
>> @@ -21,13 +21,14 @@ ABIEXTENSION = "${@['','spe'][d.getVar('TARGET_FPU', True) in ['ppc-efd', 'ppc-e
>>  PPCPKGSFX_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard" , "", "-nf", d)}"
>>
>>  PPCPKGARCH = "${TUNE_ARCH}${PPCPKGSFX_FPU}"
>> -TUNE_PKGARCH ?= "${PPCPKGARCH}"
>>
>>  # Basic tune definitions
>> -AVAILTUNES += "powerpc powerpc-nf"
>> +AVAILTUNES += "powerpc powerpc-nf"
>>  TUNE_FEATURES_tune-powerpc-nf ?= "m32 fpu-soft"
>> +TUNE_PKGARCH_tune-powerpc-nf = "${PPCPKGARCH}"
>>  BASE_LIB_tune-powerpc-nf = "lib"
>>  PACKAGE_EXTRA_ARCHS_tune-powerpc-nf = "powerpc-nf"
>>  TUNE_FEATURES_tune-powerpc ?= "m32 fpu-hard"
>> +TUNE_PKGARCH_tune-powerpc = "${PPCPKGARCH}"
>>  BASE_LIB_tune-powerpc = "lib"
>>  PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc
>
> Hmm, actually, there's no reason these can't just set
> TUNE_PKGARCH_tune-powerpc = "powerpc", etc rather than using the
> PPCPKGARCH indirection. Anyone more familiar with the tuning code have
> an opinion here?

I thought this was already fixed in my patch. Seems like it was not applied?

-M

commit 216b54e23a995aea79499b88a99f606bb65579af
Author: Matthew McClintock <msm@freescale.com>
Date:   Mon Feb 27 10:58:45 2012 -0600

    arch-powerpc.inc: use default value of TUNE_PKGARCH

    We can use the default value for TUNE_PKGARCH, and now we just
    append "-nf" if TARGET_FPU is fpu-soft

    Signed-off-by: Matthew McClintock <msm@freescale.com>


 # Basic tune definitions
 AVAILTUNES += "powerpc powerpc-nf"
Chris Larson - March 22, 2012, 3:27 p.m.
On Thu, Mar 22, 2012 at 8:21 AM, McClintock Matthew-B29882
<B29882@freescale.com> wrote:
> On Thu, Mar 22, 2012 at 10:08 AM, Chris Larson <kergoth@gmail.com> wrote:
>> On Thu, Mar 22, 2012 at 8:00 AM, Christopher Larson <kergoth@gmail.com> wrote:
>>> From: Christopher Larson <chris_larson@mentor.com>
>>>
>>> There's a problem in arch-powerpc.inc today, wherein it directly sets
>>> TUNE_PKGARCH, rather than setting TUNE_PKGARCH_tune-<tuning>. As a result,
>>> more specific tuning files (e.g. ppce500mc) then see their
>>> TUNE_PKGARCH_tune-<tuning> variable definitions no longer obeyed. As
>>> a consequence, the TUNE_PKGARCH ends up as 'powerpc' or 'powerpc-nf' rather
>>> than 'ppce500mc', which in turn causes a 'TUNE_PKGARCH not in PACKAGE_ARCHS'
>>> failure in the build.
>>>
>>> To fix, the .inc now sets TUNE_PKGARCH_tune-powerpc and
>>> TUNE_PKGARCH_tune-powerpc-nf rather than TUNE_PKGARCH.
>>>
>>> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
>>> ---
>>>  meta/conf/machine/include/powerpc/arch-powerpc.inc |    5 +++--
>>>  1 files changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/meta/conf/machine/include/powerpc/arch-powerpc.inc b/meta/conf/machine/include/powerpc/arch-powerpc.inc
>>> index c9b2829..f811a3e 100644
>>> --- a/meta/conf/machine/include/powerpc/arch-powerpc.inc
>>> +++ b/meta/conf/machine/include/powerpc/arch-powerpc.inc
>>> @@ -21,13 +21,14 @@ ABIEXTENSION = "${@['','spe'][d.getVar('TARGET_FPU', True) in ['ppc-efd', 'ppc-e
>>>  PPCPKGSFX_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard" , "", "-nf", d)}"
>>>
>>>  PPCPKGARCH = "${TUNE_ARCH}${PPCPKGSFX_FPU}"
>>> -TUNE_PKGARCH ?= "${PPCPKGARCH}"
>>>
>>>  # Basic tune definitions
>>> -AVAILTUNES += "powerpc powerpc-nf"
>>> +AVAILTUNES += "powerpc powerpc-nf"
>>>  TUNE_FEATURES_tune-powerpc-nf ?= "m32 fpu-soft"
>>> +TUNE_PKGARCH_tune-powerpc-nf = "${PPCPKGARCH}"
>>>  BASE_LIB_tune-powerpc-nf = "lib"
>>>  PACKAGE_EXTRA_ARCHS_tune-powerpc-nf = "powerpc-nf"
>>>  TUNE_FEATURES_tune-powerpc ?= "m32 fpu-hard"
>>> +TUNE_PKGARCH_tune-powerpc = "${PPCPKGARCH}"
>>>  BASE_LIB_tune-powerpc = "lib"
>>>  PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc
>>
>> Hmm, actually, there's no reason these can't just set
>> TUNE_PKGARCH_tune-powerpc = "powerpc", etc rather than using the
>> PPCPKGARCH indirection. Anyone more familiar with the tuning code have
>> an opinion here?
>
> I thought this was already fixed in my patch. Seems like it was not applied?
>
> -M
>
> commit 216b54e23a995aea79499b88a99f606bb65579af
> Author: Matthew McClintock <msm@freescale.com>
> Date:   Mon Feb 27 10:58:45 2012 -0600
>
>    arch-powerpc.inc: use default value of TUNE_PKGARCH
>
>    We can use the default value for TUNE_PKGARCH, and now we just
>    append "-nf" if TARGET_FPU is fpu-soft
>
>    Signed-off-by: Matthew McClintock <msm@freescale.com>

Ah, indeed, apparently it was not. That said, it looks like your
version will end up with TUNE_PKGARCH like ppce500mc-nf, is that
correct? You know this stuff better than I do.

Patch

diff --git a/meta/conf/machine/include/powerpc/arch-powerpc.inc
b/meta/conf/machine/include/powerpc/arch-powerp
index c9b2829..9f588e8 100644
--- a/meta/conf/machine/include/powerpc/arch-powerpc.inc
+++ b/meta/conf/machine/include/powerpc/arch-powerpc.inc
@@ -18,10 +18,8 @@  TARGET_FPU .=
"${@bb.utils.contains("TUNE_FEATURES", "fpu-soft", "soft", "", d)}

 ABIEXTENSION = "${@['','spe'][d.getVar('TARGET_FPU', True) in
['ppc-efd', 'ppc-efs']]}"

-PPCPKGSFX_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard" ,
"", "-nf", d)}"
-
-PPCPKGARCH = "${TUNE_ARCH}${PPCPKGSFX_FPU}"
-TUNE_PKGARCH ?= "${PPCPKGARCH}"
+PPCPKGSFX_FPU = "${@['', '-nf'][d.getVar('TARGET_FPU',d,1) in ['fpu-soft']]}"
+TUNE_PKGARCH_append = "${PPCPKGSFX_FPU}"