Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
@ 2015-08-17  7:10 Noé Rubinstein
  2015-08-17 14:30 ` Thomas Petazzoni
  0 siblings, 1 reply; 7+ messages in thread
From: Noé Rubinstein @ 2015-08-17  7:10 UTC (permalink / raw)
  To: buildroot

Test the config of the kernel to see if loadable module support is
enabled, and error out otherwise. This makes the build failure less
confusing.

Signed-off-by: No? Rubinstein <nrubinstein@aldebaran.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/pkg-kernel-module.mk | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/pkg-kernel-module.mk b/package/pkg-kernel-module.mk
index 5fb19be..6fb7704 100644
--- a/package/pkg-kernel-module.mk
+++ b/package/pkg-kernel-module.mk
@@ -60,6 +60,10 @@ $(2)_MODULE_SUBDIRS ?= .
 # includes and other support files (Booo!)
 define $(2)_KERNEL_MODULES_BUILD
 	@$$(call MESSAGE,"Building kernel module(s)")
+	@if ! grep -Fqx 'CONFIG_MODULES=y' $(LINUX_DIR)/.config; then \
+		echo "ERROR: Kernel does not support loadable modules"; \
+		exit 1; \
+	fi
 	$$(foreach d,$$($(2)_MODULE_SUBDIRS), \
 		$$(LINUX_MAKE_ENV) $$($$(PKG)_MAKE) \
 			-C $$(LINUX_DIR) \
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
  2015-08-17  7:10 [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled Noé Rubinstein
@ 2015-08-17 14:30 ` Thomas Petazzoni
  2015-08-18  5:41   ` Peter Korsgaard
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2015-08-17 14:30 UTC (permalink / raw)
  To: buildroot

Dear No? Rubinstein,

On Mon, 17 Aug 2015 09:10:44 +0200, No? Rubinstein wrote:
> Test the config of the kernel to see if loadable module support is
> enabled, and error out otherwise. This makes the build failure less
> confusing.
> 
> Signed-off-by: No? Rubinstein <nrubinstein@aldebaran.com>
> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
>  package/pkg-kernel-module.mk | 4 ++++
>  1 file changed, 4 insertions(+)

Applied after tweaking the commit log, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
  2015-08-17 14:30 ` Thomas Petazzoni
@ 2015-08-18  5:41   ` Peter Korsgaard
  2015-08-18  7:58     ` Thomas Petazzoni
  2015-08-18  9:47     ` Yann E. MORIN
  0 siblings, 2 replies; 7+ messages in thread
From: Peter Korsgaard @ 2015-08-18  5:41 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Dear No? Rubinstein,
 > On Mon, 17 Aug 2015 09:10:44 +0200, No? Rubinstein wrote:
 >> Test the config of the kernel to see if loadable module support is
 >> enabled, and error out otherwise. This makes the build failure less
 >> confusing.
 >> 
 >> Signed-off-by: No? Rubinstein <nrubinstein@aldebaran.com>
 >> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
 >> ---
 >> package/pkg-kernel-module.mk | 4 ++++
 >> 1 file changed, 4 insertions(+)

 > Applied after tweaking the commit log, thanks.

Couldn't we instead just force modules support on in the kernel if the
pkg-kernel-module infrastructure is used?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
  2015-08-18  5:41   ` Peter Korsgaard
@ 2015-08-18  7:58     ` Thomas Petazzoni
  2015-08-18  9:47     ` Yann E. MORIN
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2015-08-18  7:58 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 18 Aug 2015 07:41:11 +0200, Peter Korsgaard wrote:
> >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
> 
>  > Dear No? Rubinstein,
>  > On Mon, 17 Aug 2015 09:10:44 +0200, No? Rubinstein wrote:
>  >> Test the config of the kernel to see if loadable module support is
>  >> enabled, and error out otherwise. This makes the build failure less
>  >> confusing.
>  >> 
>  >> Signed-off-by: No? Rubinstein <nrubinstein@aldebaran.com>
>  >> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
>  >> ---
>  >> package/pkg-kernel-module.mk | 4 ++++
>  >> 1 file changed, 4 insertions(+)
> 
>  > Applied after tweaking the commit log, thanks.
> 
> Couldn't we instead just force modules support on in the kernel if the
> pkg-kernel-module infrastructure is used?

That's another option, yes. No??

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
  2015-08-18  5:41   ` Peter Korsgaard
  2015-08-18  7:58     ` Thomas Petazzoni
@ 2015-08-18  9:47     ` Yann E. MORIN
  2015-08-18 10:41       ` Peter Korsgaard
  1 sibling, 1 reply; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-18  9:47 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2015-08-18 07:41 +0200, Peter Korsgaard spake thusly:
> >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
> 
>  > Dear No? Rubinstein,
>  > On Mon, 17 Aug 2015 09:10:44 +0200, No? Rubinstein wrote:
>  >> Test the config of the kernel to see if loadable module support is
>  >> enabled, and error out otherwise. This makes the build failure less
>  >> confusing.
>  >> 
>  >> Signed-off-by: No? Rubinstein <nrubinstein@aldebaran.com>
>  >> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
>  >> ---
>  >> package/pkg-kernel-module.mk | 4 ++++
>  >> 1 file changed, 4 insertions(+)
> 
>  > Applied after tweaking the commit log, thanks.
> 
> Couldn't we instead just force modules support on in the kernel if the
> pkg-kernel-module infrastructure is used?

And how do you suggest we test whether the kernel-module infra is used?

    1) it *is* used already: we do have packages that do call
        $(eval $(kernel-module)) , but I guess that's not what
        you meant. ;-)

    2) so you probably meant: if we actually need to build a kernel
       module.

But that's not so easy:

  - we need to know whether to enable moduls when parsing linux/linux.mk

  - external packages may call kernel-module

  - external packages are parsed after linux.mk

So, too late...

We can't enable kernel modules just from the .mk, we can only check for
them.

Unless we add an hidden kconfig knob BR2)LINUX_NEEDS_MODULES that
packages may select if they want to build modules. Of a visible knob
(user-selectable) that packages can depend on if they need to build
kernel modules...

Needless to say, for 2015.08, No?'s patch is good to go in, while the
alternatives are not; they can however be done post-2015.08.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
  2015-08-18  9:47     ` Yann E. MORIN
@ 2015-08-18 10:41       ` Peter Korsgaard
  2015-08-21 22:16         ` Yann E. MORIN
  0 siblings, 1 reply; 7+ messages in thread
From: Peter Korsgaard @ 2015-08-18 10:41 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

Hi,

>> Couldn't we instead just force modules support on in the kernel if the
 >> pkg-kernel-module infrastructure is used?

 > And how do you suggest we test whether the kernel-module infra is used?

 >     1) it *is* used already: we do have packages that do call
 >         $(eval $(kernel-module)) , but I guess that's not what
 >         you meant. ;-)

 >     2) so you probably meant: if we actually need to build a kernel
 >        module.

 > But that's not so easy:

 >   - we need to know whether to enable moduls when parsing linux/linux.mk

 >   - external packages may call kernel-module

 >   - external packages are parsed after linux.mk

 > So, too late...

If we can come up with a solution that only works for internal packages
then that is imho still better than what we have today. We can still
leave the check in the pkg-kernel-module infrastructure to atleast warn
BR2_EXTERNAL users.

 > We can't enable kernel modules just from the .mk, we can only check for
 > them.

 > Unless we add an hidden kconfig knob BR2)LINUX_NEEDS_MODULES that
 > packages may select if they want to build modules. Of a visible knob
 > (user-selectable) that packages can depend on if they need to build
 > kernel modules...

Or the pkg-kernel-module infrastructure can just set a variable that
gets checked by LINUX_KCONFIG_FIXUP_CMDS, E.G. something like:

diff --git a/package/pkg-kernel-module.mk b/package/pkg-kernel-module.mk
index 6fb7704..436a721 100644
--- a/package/pkg-kernel-module.mk
+++ b/package/pkg-kernel-module.mk
@@ -91,6 +91,10 @@ define $(2)_KERNEL_MODULES_INSTALL
 endef
 $(2)_POST_INSTALL_TARGET_HOOKS += $(2)_KERNEL_MODULES_INSTALL
 
+ifeq ($(BR2_PACKAGE_$(2)),y)
+LINUX_NEEDS_MODULES = YES
+endif
+
 endef
 
 ################################################################################


And then:

diff --git a/linux/linux.mk b/linux/linux.mk
index d91dbb2..eb7ce7e 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -219,6 +219,8 @@ define LINUX_KCONFIG_FIXUP_CMDS
                $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK_MARK,$(@D)/.config))
        $(if $(BR2_LINUX_KERNEL_APPENDED_DTB),
                $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB,$(@D)/.config))
+       $(if $(LINUX_NEEDS_MODULES),
+               $(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config))
 endef
 
 ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)

 > Needless to say, for 2015.08, No?'s patch is good to go in, while the
 > alternatives are not; they can however be done post-2015.08.

Agreed, this is not a new regression.

-- 
Venlig hilsen,
Peter Korsgaard 

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled
  2015-08-18 10:41       ` Peter Korsgaard
@ 2015-08-21 22:16         ` Yann E. MORIN
  0 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2015-08-21 22:16 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2015-08-18 12:41 +0200, Peter Korsgaard spake thusly:
> >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
[--SNIP--]
>  > Unless we add an hidden kconfig knob BR2)LINUX_NEEDS_MODULES that
>  > packages may select if they want to build modules. Of a visible knob
>  > (user-selectable) that packages can depend on if they need to build
>  > kernel modules...
> 
> Or the pkg-kernel-module infrastructure can just set a variable that
> gets checked by LINUX_KCONFIG_FIXUP_CMDS, E.G. something like:

OK, I don;t know why I missed that mail of yours (except it is not in
the same thread we were "battling" in).

> diff --git a/package/pkg-kernel-module.mk b/package/pkg-kernel-module.mk
> index 6fb7704..436a721 100644
> --- a/package/pkg-kernel-module.mk
> +++ b/package/pkg-kernel-module.mk
> @@ -91,6 +91,10 @@ define $(2)_KERNEL_MODULES_INSTALL
>  endef
>  $(2)_POST_INSTALL_TARGET_HOOKS += $(2)_KERNEL_MODULES_INSTALL
>  
> +ifeq ($(BR2_PACKAGE_$(2)),y)
> +LINUX_NEEDS_MODULES = YES
> +endif
> +
>  endef
>  
>  ################################################################################
> 
> 
> And then:
> 
> diff --git a/linux/linux.mk b/linux/linux.mk
> index d91dbb2..eb7ce7e 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -219,6 +219,8 @@ define LINUX_KCONFIG_FIXUP_CMDS
>                 $(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK_MARK,$(@D)/.config))
>         $(if $(BR2_LINUX_KERNEL_APPENDED_DTB),
>                 $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB,$(@D)/.config))
> +       $(if $(LINUX_NEEDS_MODULES),
> +               $(call KCONFIG_ENABLE_OPT,CONFIG_MODULES,$(@D)/.config))
>  endef
>  
>  ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)

Yes, that should work.

Of course, you are right, we'd only use that variable after all .mk are
parsed, being in the kconfig-fixup commands.

I'll see to implement and test that.

Thanks! :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-08-21 22:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-17  7:10 [Buildroot] [PATCH v2] pkg-kernel-module: Die when kernel module are disabled Noé Rubinstein
2015-08-17 14:30 ` Thomas Petazzoni
2015-08-18  5:41   ` Peter Korsgaard
2015-08-18  7:58     ` Thomas Petazzoni
2015-08-18  9:47     ` Yann E. MORIN
2015-08-18 10:41       ` Peter Korsgaard
2015-08-21 22:16         ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox