Patchwork runstrip() in package.bbclass fails when run against a kernel module

login
register
mail settings
Submitter Tomas Frydrych
Date Aug. 31, 2012, 11:53 a.m.
Message ID <5040A5BB.7040601@r-finger.com>
Download mbox | patch
Permalink /patch/35603/
State New
Headers show

Comments

Tomas Frydrych - Aug. 31, 2012, 11:53 a.m.
runstrip() in package.bbclass fails when run against a kernel module,
because it tries to do a bitwise & with a 'None' argument. This throws:
TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'.

(This bug triggers, for example, when building ti-linuxutils from
meta-ti (v2012.05-yocto1.2 tag) against Denzil.)

Patch attached.

Tomas
Martin Jansa - Sept. 3, 2012, 7:08 a.m.
On Fri, Aug 31, 2012 at 12:53:31PM +0100, Tomas Frydrych wrote:
> 
> runstrip() in package.bbclass fails when run against a kernel module,
> because it tries to do a bitwise & with a 'None' argument. This throws:
> TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'.
> 
> (This bug triggers, for example, when building ti-linuxutils from
> meta-ti (v2012.05-yocto1.2 tag) against Denzil.)
> 
> Patch attached.

Was this for denzil?

In master it was fixed a month ago by:
http://git.openembedded.org/openembedded-core/commit/meta/classes/package.bbclass?id=a834ab8a6d53cae504fa112a89bab93d726539ec

Don't know why they merged your patch to master too now..

Cheers,

> 
> Tomas
> 

> From 6abe978d8e0acdb35c1abfed83e775b276b1231f Mon Sep 17 00:00:00 2001
> From: Tomas Frydrych <tomas@sleepfive.com>
> Date: Fri, 31 Aug 2012 12:02:18 +0100
> Subject: [PATCH] package.bbclass: fix stripping for kernel modules
> 
> runstrip(path, elftype, d) does bitwise & on the elftype parameter, so it has
> to be passed an integer. Passing None fails with: TypeError: unsupported
> operand type(s) for &: 'NoneType' and 'int'.
> 
> Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
> ---
>  meta/classes/package.bbclass |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 44e551f..f046fbb 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -877,7 +877,7 @@ python split_and_strip_files () {
>  			for f in files:
>  				if not f.endswith(".ko"):
>  					continue
> -				runstrip(os.path.join(root, f), None, d)
> +				runstrip(os.path.join(root, f), 0, d)
>  	#
>  	# End of strip
>  	#
> -- 
> 1.7.10.4
> 
> 

> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Tomas Frydrych - Sept. 4, 2012, 9:12 a.m.
Hi,

On 03/09/12 08:08, Martin Jansa wrote:
> On Fri, Aug 31, 2012 at 12:53:31PM +0100, Tomas Frydrych wrote:
>>
>> runstrip() in package.bbclass fails when run against a kernel module,
>> because it tries to do a bitwise & with a 'None' argument. This throws:
>> TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'.
> 
> Was this for denzil?
> 
> In master it was fixed a month ago by:
> http://git.openembedded.org/openembedded-core/commit/meta/classes/package.bbclass?id=a834ab8a6d53cae504fa112a89bab93d726539ec
> 
> Don't know why they merged your patch to master too now..

Yes, I run into the bug on Denzil and did not see the alternative fix in
master; either one of those fixes the problem, of course.

Tomas


> 
> Cheers,
> 
>>
>> Tomas
>>
> 
>> From 6abe978d8e0acdb35c1abfed83e775b276b1231f Mon Sep 17 00:00:00 2001
>> From: Tomas Frydrych <tomas@sleepfive.com>
>> Date: Fri, 31 Aug 2012 12:02:18 +0100
>> Subject: [PATCH] package.bbclass: fix stripping for kernel modules
>>
>> runstrip(path, elftype, d) does bitwise & on the elftype parameter, so it has
>> to be passed an integer. Passing None fails with: TypeError: unsupported
>> operand type(s) for &: 'NoneType' and 'int'.
>>
>> Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
>> ---
>>  meta/classes/package.bbclass |    2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
>> index 44e551f..f046fbb 100644
>> --- a/meta/classes/package.bbclass
>> +++ b/meta/classes/package.bbclass
>> @@ -877,7 +877,7 @@ python split_and_strip_files () {
>>  			for f in files:
>>  				if not f.endswith(".ko"):
>>  					continue
>> -				runstrip(os.path.join(root, f), None, d)
>> +				runstrip(os.path.join(root, f), 0, d)
>>  	#
>>  	# End of strip
>>  	#
>> -- 
>> 1.7.10.4
>>
>>
> 
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> 
>
Martin Jansa - Sept. 4, 2012, 9:23 a.m.
On Tue, Sep 04, 2012 at 10:12:43AM +0100, Tomas Frydrych wrote:
> Hi,
> 
> On 03/09/12 08:08, Martin Jansa wrote:
> > On Fri, Aug 31, 2012 at 12:53:31PM +0100, Tomas Frydrych wrote:
> >>
> >> runstrip() in package.bbclass fails when run against a kernel module,
> >> because it tries to do a bitwise & with a 'None' argument. This throws:
> >> TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'.
> > 
> > Was this for denzil?
> > 
> > In master it was fixed a month ago by:
> > http://git.openembedded.org/openembedded-core/commit/meta/classes/package.bbclass?id=a834ab8a6d53cae504fa112a89bab93d726539ec
> > 
> > Don't know why they merged your patch to master too now..
> 
> Yes, I run into the bug on Denzil and did not see the alternative fix in
> master; either one of those fixes the problem, of course.

Yes but having both in master doesn't make much sense, and someone
already asked the older fix to be merged to denzil.

> 
> Tomas
> 
> 
> > 
> > Cheers,
> > 
> >>
> >> Tomas
> >>
> > 
> >> From 6abe978d8e0acdb35c1abfed83e775b276b1231f Mon Sep 17 00:00:00 2001
> >> From: Tomas Frydrych <tomas@sleepfive.com>
> >> Date: Fri, 31 Aug 2012 12:02:18 +0100
> >> Subject: [PATCH] package.bbclass: fix stripping for kernel modules
> >>
> >> runstrip(path, elftype, d) does bitwise & on the elftype parameter, so it has
> >> to be passed an integer. Passing None fails with: TypeError: unsupported
> >> operand type(s) for &: 'NoneType' and 'int'.
> >>
> >> Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
> >> ---
> >>  meta/classes/package.bbclass |    2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> >> index 44e551f..f046fbb 100644
> >> --- a/meta/classes/package.bbclass
> >> +++ b/meta/classes/package.bbclass
> >> @@ -877,7 +877,7 @@ python split_and_strip_files () {
> >>  			for f in files:
> >>  				if not f.endswith(".ko"):
> >>  					continue
> >> -				runstrip(os.path.join(root, f), None, d)
> >> +				runstrip(os.path.join(root, f), 0, d)
> >>  	#
> >>  	# End of strip
> >>  	#
> >> -- 
> >> 1.7.10.4
> >>
> >>
> > 
> >> _______________________________________________
> >> 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
Tomas Frydrych - Sept. 4, 2012, 9:53 a.m.
On 04/09/12 10:23, Martin Jansa wrote:
>>> Was this for denzil?
>>>
>>> In master it was fixed a month ago by:
>>> http://git.openembedded.org/openembedded-core/commit/meta/classes/package.bbclass?id=a834ab8a6d53cae504fa112a89bab93d726539ec
>>>
>>> Don't know why they merged your patch to master too now..
>>
>> Yes, I run into the bug on Denzil and did not see the alternative fix in
>> master; either one of those fixes the problem, of course.
> 
> Yes but having both in master doesn't make much sense, and someone
> already asked the older fix to be merged to denzil.

I does not do any harm either, but if you prefer to revert that, I will
not complain. (Though, I personally prefer fixing the way the function
was incorrectly called rather than handling a wrong argument inside it. :) )

Tomas
Scott Garman - Sept. 5, 2012, 4:18 p.m.
On 09/04/2012 02:23 AM, Martin Jansa wrote:
> On Tue, Sep 04, 2012 at 10:12:43AM +0100, Tomas Frydrych wrote:
>> Hi,
>>
>> On 03/09/12 08:08, Martin Jansa wrote:
>>> On Fri, Aug 31, 2012 at 12:53:31PM +0100, Tomas Frydrych wrote:
>>>>
>>>> runstrip() in package.bbclass fails when run against a kernel module,
>>>> because it tries to do a bitwise & with a 'None' argument. This throws:
>>>> TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'.
>>>
>>> Was this for denzil?
>>>
>>> In master it was fixed a month ago by:
>>> http://git.openembedded.org/openembedded-core/commit/meta/classes/package.bbclass?id=a834ab8a6d53cae504fa112a89bab93d726539ec
>>>
>>> Don't know why they merged your patch to master too now..
>>
>> Yes, I run into the bug on Denzil and did not see the alternative fix in
>> master; either one of those fixes the problem, of course.
>
> Yes but having both in master doesn't make much sense, and someone
> already asked the older fix to be merged to denzil.

Yes, Koen included it in his most recent denzil pull request. I have it 
queued in my denzil-next test branch and I'm waiting for autobuilder 
time to validate it before I submit a pull request to move it all into 
oe-core denzil:

http://git.openembedded.org/openembedded-core-contrib/log/?h=sgarman/denzil-next

Scott

Patch

From 6abe978d8e0acdb35c1abfed83e775b276b1231f Mon Sep 17 00:00:00 2001
From: Tomas Frydrych <tomas@sleepfive.com>
Date: Fri, 31 Aug 2012 12:02:18 +0100
Subject: [PATCH] package.bbclass: fix stripping for kernel modules

runstrip(path, elftype, d) does bitwise & on the elftype parameter, so it has
to be passed an integer. Passing None fails with: TypeError: unsupported
operand type(s) for &: 'NoneType' and 'int'.

Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
---
 meta/classes/package.bbclass |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 44e551f..f046fbb 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -877,7 +877,7 @@  python split_and_strip_files () {
 			for f in files:
 				if not f.endswith(".ko"):
 					continue
-				runstrip(os.path.join(root, f), None, d)
+				runstrip(os.path.join(root, f), 0, d)
 	#
 	# End of strip
 	#
-- 
1.7.10.4