Patchwork kernel.bbclass: restore kernel-abiversion file

login
register
mail settings
Submitter Koen Kooi
Date June 22, 2011, 3:41 p.m.
Message ID <1308757294-21106-1-git-send-email-koen@dominion.thruhere.net>
Download mbox | patch
Permalink /patch/6245/
State New, archived
Headers show

Comments

Koen Kooi - June 22, 2011, 3:41 p.m.
This fixes external module recipes that need $KERNEL_VERSION. It got removed by

    commit a9d41062e24a6b99661b3a5256f369b557433607
    Author: Darren Hart <dvhart@linux.intel.com>
    Date:   Tue Mar 8 17:09:10 2011 -0800

        kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules

seemingly as an oversight.

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 meta/classes/kernel.bbclass |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
Darren Hart - June 22, 2011, 6:13 p.m.
On 06/22/2011 08:41 AM, Koen Kooi wrote:
> This fixes external module recipes that need $KERNEL_VERSION. It got removed by
> 
>     commit a9d41062e24a6b99661b3a5256f369b557433607
>     Author: Darren Hart <dvhart@linux.intel.com>
>     Date:   Tue Mar 8 17:09:10 2011 -0800
> 
>         kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules
> 
> seemingly as an oversight.
> 
> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> ---
>  meta/classes/kernel.bbclass |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 1bb69f5..8f9f108 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -123,6 +123,12 @@ kernel_do_install() {
>  	install -d $kerneldir
>  
>  	#
> +	# Store the kernel version in sysroots for module-base.bbclass
> +	#
> +
> +	echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion

From everything I can see this is an openembedded construct - which
external modules need this? An example recipe I can review?

I'd like to understand this better as I don't like the idea of depending
on an arbitrary file that isn't part of the kernel build system to build
modules.

It seems to me that these modules should be able to DEPEND on something
provided by the kernel recipes, rather than checking the contents of a
file stuck in the build tree.

--
Darren

> +
> +	#
>  	# Copy the entire source tree. In case an external build directory is
>  	# used, copy the build directory over first, then copy over the source
>  	# dir. This ensures the original Makefiles are used and not the
Koen Kooi - June 22, 2011, 6:18 p.m.
Op 22 jun 2011, om 20:13 heeft Darren Hart het volgende geschreven:

> 
> 
> On 06/22/2011 08:41 AM, Koen Kooi wrote:
>> This fixes external module recipes that need $KERNEL_VERSION. It got removed by
>> 
>>    commit a9d41062e24a6b99661b3a5256f369b557433607
>>    Author: Darren Hart <dvhart@linux.intel.com>
>>    Date:   Tue Mar 8 17:09:10 2011 -0800
>> 
>>        kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules
>> 
>> seemingly as an oversight.
>> 
>> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
>> ---
>> meta/classes/kernel.bbclass |    6 ++++++
>> 1 files changed, 6 insertions(+), 0 deletions(-)
>> 
>> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
>> index 1bb69f5..8f9f108 100644
>> --- a/meta/classes/kernel.bbclass
>> +++ b/meta/classes/kernel.bbclass
>> @@ -123,6 +123,12 @@ kernel_do_install() {
>> 	install -d $kerneldir
>> 
>> 	#
>> +	# Store the kernel version in sysroots for module-base.bbclass
>> +	#
>> +
>> +	echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion
> 
> From everything I can see this is an openembedded construct - which
> external modules need this? An example recipe I can review?
> 
> I'd like to understand this better as I don't like the idea of depending
> on an arbitrary file that isn't part of the kernel build system to build
> modules.
> 
> It seems to me that these modules should be able to DEPEND on something
> provided by the kernel recipes, rather than checking the contents of a
> file stuck in the build tree.

It's used in the stock module.bbclass thru module-base.bbclass:

https://github.com/openembedded/oe-core/blob/master/meta/classes/module-base.bbclass

An example of a recipe that's using it:

http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-texasinstruments/tree/recipes-bsp/powervr-drivers/omap3-sgx-modules_1.6.16.3977.bb

For various reasons the makefile can't be trusted or patched, so we can't use KBuild to get the version for us.

regards,

Koen
Darren Hart - June 22, 2011, 7:08 p.m.
On 06/22/2011 11:18 AM, Koen Kooi wrote:
> 
> Op 22 jun 2011, om 20:13 heeft Darren Hart het volgende geschreven:
> 
>>
>>
>> On 06/22/2011 08:41 AM, Koen Kooi wrote:
>>> This fixes external module recipes that need $KERNEL_VERSION. It got removed by
>>>
>>>    commit a9d41062e24a6b99661b3a5256f369b557433607
>>>    Author: Darren Hart <dvhart@linux.intel.com>
>>>    Date:   Tue Mar 8 17:09:10 2011 -0800
>>>
>>>        kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules
>>>
>>> seemingly as an oversight.

It was indeed unintentional. There is enough history with this mechanism
that a change here should be intentional and not an oversight as you
pointed out.

>>>
>>> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>

Acked-by: Darren Hart <dvhart@linux.intel.com>

>>> ---
>>> meta/classes/kernel.bbclass |    6 ++++++
>>> 1 files changed, 6 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
>>> index 1bb69f5..8f9f108 100644
>>> --- a/meta/classes/kernel.bbclass
>>> +++ b/meta/classes/kernel.bbclass
>>> @@ -123,6 +123,12 @@ kernel_do_install() {
>>> 	install -d $kerneldir
>>>
>>> 	#
>>> +	# Store the kernel version in sysroots for module-base.bbclass
>>> +	#
>>> +
>>> +	echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion
>>
>> From everything I can see this is an openembedded construct - which
>> external modules need this? An example recipe I can review?
>>
>> I'd like to understand this better as I don't like the idea of depending
>> on an arbitrary file that isn't part of the kernel build system to build
>> modules.
>>
>> It seems to me that these modules should be able to DEPEND on something
>> provided by the kernel recipes, rather than checking the contents of a
>> file stuck in the build tree.
> 
> It's used in the stock module.bbclass thru module-base.bbclass:
> 
> https://github.com/openembedded/oe-core/blob/master/meta/classes/module-base.bbclass
> 
> An example of a recipe that's using it:
> 
> http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-texasinstruments/tree/recipes-bsp/powervr-drivers/omap3-sgx-modules_1.6.16.3977.bb
> 
> For various reasons the makefile can't be trusted or patched, so we can't use KBuild to get the version for us.
> 
> regards,
> 
> Koen
>
Richard Purdie - June 23, 2011, 12:35 p.m.
On Wed, 2011-06-22 at 17:41 +0200, Koen Kooi wrote:
> This fixes external module recipes that need $KERNEL_VERSION. It got removed by
> 
>     commit a9d41062e24a6b99661b3a5256f369b557433607
>     Author: Darren Hart <dvhart@linux.intel.com>
>     Date:   Tue Mar 8 17:09:10 2011 -0800
> 
>         kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules
> 
> seemingly as an oversight.
> 
> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> ---
>  meta/classes/kernel.bbclass |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)

Merged to master, thanks.

Richard

Patch

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 1bb69f5..8f9f108 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -123,6 +123,12 @@  kernel_do_install() {
 	install -d $kerneldir
 
 	#
+	# Store the kernel version in sysroots for module-base.bbclass
+	#
+
+	echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion
+
+	#
 	# Copy the entire source tree. In case an external build directory is
 	# used, copy the build directory over first, then copy over the source
 	# dir. This ensures the original Makefiles are used and not the