Patchwork [02/11] multilib.bbclass: add class-multilib to override

login
register
mail settings
Submitter Robert Yang
Date Oct. 30, 2012, 9:33 a.m.
Message ID <8757dbc0cba44d712d24bea43a3ed78c37b0f991.1351496696.git.liezhi.yang@windriver.com>
Download mbox | patch
Permalink /patch/38683/
State New
Headers show

Comments

Robert Yang - Oct. 30, 2012, 9:33 a.m.
Add the new override way CLASSOVERRIDE = "class-multilib" to
multilib.bbclass, and add the check code to sanity.bbclass, we keep both
the old and new way, which means, both of the following are supported:

virtclass-multilib
class-multilib

[YOCTO #3297]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 meta/classes/multilib.bbclass | 2 ++
 meta/classes/sanity.bbclass   | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
Richard Purdie - Oct. 30, 2012, 9:54 a.m.
On Tue, 2012-10-30 at 17:33 +0800, Robert Yang wrote:
> Add the new override way CLASSOVERRIDE = "class-multilib" to
> multilib.bbclass, and add the check code to sanity.bbclass, we keep both
> the old and new way, which means, both of the following are supported:
> 
> virtclass-multilib
> class-multilib
> 
> [YOCTO #3297]
> 
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>  meta/classes/multilib.bbclass | 2 ++
>  meta/classes/sanity.bbclass   | 3 ++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
> index 77ccce4..2dd2f85 100644
> --- a/meta/classes/multilib.bbclass
> +++ b/meta/classes/multilib.bbclass
> @@ -1,3 +1,5 @@
> +CLASSOVERRIDE = "class-multilib"
> +
>  python multilib_virtclass_handler () {
>      if not isinstance(e, bb.event.RecipePreFinalise):
>          return
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index 3806bc5..ba1cd6d 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -122,7 +122,8 @@ def check_toolchain(data):
>                  tune_error_set.append("The multilib '%s' appears more than once." % lib)
>              else:
>                  seen_libs.append(lib)
> -            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib, True)
> +            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib, True) or \
> +                   data.getVar("DEFAULTTUNE_class-multilib-%s" % lib, True)
>              if tune in seen_tunes:
>                  tune_error_set.append("The tuning '%s' appears in more than one multilib." % tune)
>              else:

Sorry but this isn't right. The multilib case is special since it sets
"class-multilib-xxx", not "class-multilib" without the suffix. The above
changes are just going to confuse people and depending on what you do in
other patches, may or may not work.

Can you resend the patch set just changing the native/nativesdk values
please? We can then look at multilib specifically as a follow up.

Cheers,

Richard
Robert Yang - Oct. 30, 2012, 2:04 p.m.
Hi Richard,

I've pushed the new patches again (removed the old branch, and create
a new one):

git://git.pokylinux.org/poky-contrib robert/virtclass

Now only change the native/nativesdk values. I think that the virtclass-cross
should be changed to class-cross, too, but I didn't do it in these patches,
I will send another pull request for the virtclass-cross if it is fine.

// Robert

On 10/30/2012 05:54 PM, Richard Purdie wrote:
> On Tue, 2012-10-30 at 17:33 +0800, Robert Yang wrote:
>> Add the new override way CLASSOVERRIDE = "class-multilib" to
>> multilib.bbclass, and add the check code to sanity.bbclass, we keep both
>> the old and new way, which means, both of the following are supported:
>>
>> virtclass-multilib
>> class-multilib
>>
>> [YOCTO #3297]
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>>   meta/classes/multilib.bbclass | 2 ++
>>   meta/classes/sanity.bbclass   | 3 ++-
>>   2 files changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
>> index 77ccce4..2dd2f85 100644
>> --- a/meta/classes/multilib.bbclass
>> +++ b/meta/classes/multilib.bbclass
>> @@ -1,3 +1,5 @@
>> +CLASSOVERRIDE = "class-multilib"
>> +
>>   python multilib_virtclass_handler () {
>>       if not isinstance(e, bb.event.RecipePreFinalise):
>>           return
>> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
>> index 3806bc5..ba1cd6d 100644
>> --- a/meta/classes/sanity.bbclass
>> +++ b/meta/classes/sanity.bbclass
>> @@ -122,7 +122,8 @@ def check_toolchain(data):
>>                   tune_error_set.append("The multilib '%s' appears more than once." % lib)
>>               else:
>>                   seen_libs.append(lib)
>> -            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib, True)
>> +            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib, True) or \
>> +                   data.getVar("DEFAULTTUNE_class-multilib-%s" % lib, True)
>>               if tune in seen_tunes:
>>                   tune_error_set.append("The tuning '%s' appears in more than one multilib." % tune)
>>               else:
>
> Sorry but this isn't right. The multilib case is special since it sets
> "class-multilib-xxx", not "class-multilib" without the suffix. The above
> changes are just going to confuse people and depending on what you do in
> other patches, may or may not work.
>
> Can you resend the patch set just changing the native/nativesdk values
> please? We can then look at multilib specifically as a follow up.
>
> Cheers,
>
> Richard
>
>
>

Patch

diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 77ccce4..2dd2f85 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -1,3 +1,5 @@ 
+CLASSOVERRIDE = "class-multilib"
+
 python multilib_virtclass_handler () {
     if not isinstance(e, bb.event.RecipePreFinalise):
         return
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 3806bc5..ba1cd6d 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -122,7 +122,8 @@  def check_toolchain(data):
                 tune_error_set.append("The multilib '%s' appears more than once." % lib)
             else:
                 seen_libs.append(lib)
-            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib, True)
+            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib, True) or \
+                   data.getVar("DEFAULTTUNE_class-multilib-%s" % lib, True)
             if tune in seen_tunes:
                 tune_error_set.append("The tuning '%s' appears in more than one multilib." % tune)
             else: