public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [PATCH] module.bbclass: check whether CONFIG_MODULES set
@ 2026-02-04  2:09 kai.kang
  2026-02-04 13:46 ` [OE-core] " Bruce Ashfield
  0 siblings, 1 reply; 11+ messages in thread
From: kai.kang @ 2026-02-04  2:09 UTC (permalink / raw)
  To: openembedded-core

From: Kai Kang <kai.kang@windriver.com>

Check whether kernel config CONFIG_MODULES set or not before do_compile
and do_install in module.bbclass. If not set, it cannot build and
install external modules.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 meta/classes-recipe/module.bbclass | 60 +++++++++++++++++-------------
 1 file changed, 34 insertions(+), 26 deletions(-)

diff --git a/meta/classes-recipe/module.bbclass b/meta/classes-recipe/module.bbclass
index 4948e995c5..d2b90e9c2c 100644
--- a/meta/classes-recipe/module.bbclass
+++ b/meta/classes-recipe/module.bbclass
@@ -47,37 +47,45 @@ python do_devshell:prepend () {
 }
 
 module_do_compile() {
-	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
-	oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
-		   KERNEL_VERSION=${KERNEL_VERSION}    \
-		   CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
-		   AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
-		   STRIP="${KERNEL_STRIP}" \
-	           O=${STAGING_KERNEL_BUILDDIR} \
-		   KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
-		   ${MAKE_TARGETS}
+	if grep -q -i '^CONFIG_MODULES=y$' ${STAGING_KERNEL_BUILDDIR}/.config ; then
+		unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+		oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
+			KERNEL_VERSION=${KERNEL_VERSION}    \
+			CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
+			AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
+			STRIP="${KERNEL_STRIP}" \
+				O=${STAGING_KERNEL_BUILDDIR} \
+			KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
+			${MAKE_TARGETS}
+	else
+		bbnote "The present kernel disabled CONFIG_MODULES that cannot build or install external modules."
+	fi
 }
 
 module_do_install() {
-	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
-	oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
-	           INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
-	           CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" \
-	           STRIP="${KERNEL_STRIP}" \
-	           O=${STAGING_KERNEL_BUILDDIR} \
-		   KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
-	           ${MODULES_INSTALL_TARGET}
+	if grep -q -i '^CONFIG_MODULES=y$' ${STAGING_KERNEL_BUILDDIR}/.config; then
+		unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+		oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
+				INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
+				CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" \
+				STRIP="${KERNEL_STRIP}" \
+				O=${STAGING_KERNEL_BUILDDIR} \
+			KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
+				${MODULES_INSTALL_TARGET}
 
-	if [ ! -e "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers" ] ; then
-		bbwarn "Module.symvers not found in ${B}/${MODULES_MODULE_SYMVERS_LOCATION}"
-		bbwarn "Please consider setting MODULES_MODULE_SYMVERS_LOCATION to a"
-		bbwarn "directory below B to get correct inter-module dependencies"
+		if [ ! -e "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers" ] ; then
+			bbwarn "Module.symvers not found in ${B}/${MODULES_MODULE_SYMVERS_LOCATION}"
+			bbwarn "Please consider setting MODULES_MODULE_SYMVERS_LOCATION to a"
+			bbwarn "directory below B to get correct inter-module dependencies"
+		else
+			install -Dm0644 "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers ${D}${includedir}/${BPN}/Module.symvers
+			# Module.symvers contains absolute path to the build directory.
+			# While it doesn't actually seem to matter which path is specified,
+			# clear them out to avoid confusion
+			sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers
+		fi
 	else
-		install -Dm0644 "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers ${D}${includedir}/${BPN}/Module.symvers
-		# Module.symvers contains absolute path to the build directory.
-		# While it doesn't actually seem to matter which path is specified,
-		# clear them out to avoid confusion
-		sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers
+		bbnote "The present kernel disabled CONFIG_MODULES that cannot build or install external modules."
 	fi
 }
 
-- 
2.34.1



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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04  2:09 [PATCH] module.bbclass: check whether CONFIG_MODULES set kai.kang
@ 2026-02-04 13:46 ` Bruce Ashfield
  2026-02-04 13:58   ` Richard Purdie
  0 siblings, 1 reply; 11+ messages in thread
From: Bruce Ashfield @ 2026-02-04 13:46 UTC (permalink / raw)
  To: kai.kang; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 6115 bytes --]

On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via lists.openembedded.org
<kai.kang=windriver.com@lists.openembedded.org> wrote:

> From: Kai Kang <kai.kang@windriver.com>
>
> Check whether kernel config CONFIG_MODULES set or not before do_compile
> and do_install in module.bbclass. If not set, it cannot build and
> install external modules.
>

This isn't the place to do that check.

If modules are disabled get modules_do_compile out of the tasks.

Bruce



>
> Signed-off-by: Kai Kang <kai.kang@windriver.com>
> ---
>  meta/classes-recipe/module.bbclass | 60 +++++++++++++++++-------------
>  1 file changed, 34 insertions(+), 26 deletions(-)
>
> diff --git a/meta/classes-recipe/module.bbclass
> b/meta/classes-recipe/module.bbclass
> index 4948e995c5..d2b90e9c2c 100644
> --- a/meta/classes-recipe/module.bbclass
> +++ b/meta/classes-recipe/module.bbclass
> @@ -47,37 +47,45 @@ python do_devshell:prepend () {
>  }
>
>  module_do_compile() {
> -       unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> -       oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
> -                  KERNEL_VERSION=${KERNEL_VERSION}    \
> -                  CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
> -                  AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
> -                  STRIP="${KERNEL_STRIP}" \
> -                  O=${STAGING_KERNEL_BUILDDIR} \
> -                  KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
> -                  ${MAKE_TARGETS}
> +       if grep -q -i '^CONFIG_MODULES=y$'
> ${STAGING_KERNEL_BUILDDIR}/.config ; then
> +               unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> +               oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
> +                       KERNEL_VERSION=${KERNEL_VERSION}    \
> +                       CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
> +                       AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
> +                       STRIP="${KERNEL_STRIP}" \
> +                               O=${STAGING_KERNEL_BUILDDIR} \
> +                       KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
> +                       ${MAKE_TARGETS}
> +       else
> +               bbnote "The present kernel disabled CONFIG_MODULES that
> cannot build or install external modules."
> +       fi
>  }
>
>  module_do_install() {
> -       unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> -       oe_runmake DEPMOD=echo
> MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
> -                  INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
> -                  CC="${KERNEL_CC}" LD="${KERNEL_LD}"
> OBJCOPY="${KERNEL_OBJCOPY}" \
> -                  STRIP="${KERNEL_STRIP}" \
> -                  O=${STAGING_KERNEL_BUILDDIR} \
> -                  KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
> -                  ${MODULES_INSTALL_TARGET}
> +       if grep -q -i '^CONFIG_MODULES=y$'
> ${STAGING_KERNEL_BUILDDIR}/.config; then
> +               unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> +               oe_runmake DEPMOD=echo
> MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
> +
>  INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
> +                               CC="${KERNEL_CC}" LD="${KERNEL_LD}"
> OBJCOPY="${KERNEL_OBJCOPY}" \
> +                               STRIP="${KERNEL_STRIP}" \
> +                               O=${STAGING_KERNEL_BUILDDIR} \
> +                       KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
> +                               ${MODULES_INSTALL_TARGET}
>
> -       if [ ! -e "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers"
> ] ; then
> -               bbwarn "Module.symvers not found in
> ${B}/${MODULES_MODULE_SYMVERS_LOCATION}"
> -               bbwarn "Please consider setting
> MODULES_MODULE_SYMVERS_LOCATION to a"
> -               bbwarn "directory below B to get correct inter-module
> dependencies"
> +               if [ ! -e
> "${B}/${MODULES_MODULE_SYMVERS_LOCATION}/Module.symvers" ] ; then
> +                       bbwarn "Module.symvers not found in
> ${B}/${MODULES_MODULE_SYMVERS_LOCATION}"
> +                       bbwarn "Please consider setting
> MODULES_MODULE_SYMVERS_LOCATION to a"
> +                       bbwarn "directory below B to get correct
> inter-module dependencies"
> +               else
> +                       install -Dm0644
> "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers
> ${D}${includedir}/${BPN}/Module.symvers
> +                       # Module.symvers contains absolute path to the
> build directory.
> +                       # While it doesn't actually seem to matter which
> path is specified,
> +                       # clear them out to avoid confusion
> +                       sed -e 's:${B}/::g' -i
> ${D}${includedir}/${BPN}/Module.symvers
> +               fi
>         else
> -               install -Dm0644
> "${B}/${MODULES_MODULE_SYMVERS_LOCATION}"/Module.symvers
> ${D}${includedir}/${BPN}/Module.symvers
> -               # Module.symvers contains absolute path to the build
> directory.
> -               # While it doesn't actually seem to matter which path is
> specified,
> -               # clear them out to avoid confusion
> -               sed -e 's:${B}/::g' -i
> ${D}${includedir}/${BPN}/Module.symvers
> +               bbnote "The present kernel disabled CONFIG_MODULES that
> cannot build or install external modules."
>         fi
>  }
>
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#230492):
> https://lists.openembedded.org/g/openembedded-core/message/230492
> Mute This Topic: https://lists.openembedded.org/mt/117627823/1050810
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> bruce.ashfield@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #2: Type: text/html, Size: 8907 bytes --]

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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04 13:46 ` [OE-core] " Bruce Ashfield
@ 2026-02-04 13:58   ` Richard Purdie
  2026-02-04 14:02     ` Bruce Ashfield
  0 siblings, 1 reply; 11+ messages in thread
From: Richard Purdie @ 2026-02-04 13:58 UTC (permalink / raw)
  To: bruce.ashfield, kai.kang; +Cc: openembedded-core

On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield via lists.openembedded.org wrote:
> 
> 
> On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via lists.openembedded.org <kai.kang=windriver.com@lists.openembedded.org> wrote:
> > From: Kai Kang <kai.kang@windriver.com>
> > 
> > Check whether kernel config CONFIG_MODULES set or not before do_compile
> > and do_install in module.bbclass. If not set, it cannot build and
> > install external modules.
> > 
> 
> 
> This isn't the place to do that check.
> 
> If modules are disabled get modules_do_compile out of the tasks.

Does it make sense to have something including module.bbclass which
doesn't have CONFIG_MODULES set?

Cheers,

Richard


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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04 13:58   ` Richard Purdie
@ 2026-02-04 14:02     ` Bruce Ashfield
  2026-02-04 14:05       ` Richard Purdie
  0 siblings, 1 reply; 11+ messages in thread
From: Bruce Ashfield @ 2026-02-04 14:02 UTC (permalink / raw)
  To: Richard Purdie; +Cc: kai.kang, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1189 bytes --]

On Wed, Feb 4, 2026 at 8:58 AM Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield via
> lists.openembedded.org wrote:
> >
> >
> > On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via lists.openembedded.org
> <kai.kang=windriver.com@lists.openembedded.org> wrote:
> > > From: Kai Kang <kai.kang@windriver.com>
> > >
> > > Check whether kernel config CONFIG_MODULES set or not before do_compile
> > > and do_install in module.bbclass. If not set, it cannot build and
> > > install external modules.
> > >
> >
> >
> > This isn't the place to do that check.
> >
> > If modules are disabled get modules_do_compile out of the tasks.
>
> Does it make sense to have something including module.bbclass which
> doesn't have CONFIG_MODULES set?
>

Yes, that's what I'm trying to say.

Don't even include it if you can't build modules. That puts
the conditional in a single place, and keeps the code cleaner
in the class.

Bruce



>
> Cheers,
>
> Richard
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #2: Type: text/html, Size: 2719 bytes --]

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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04 14:02     ` Bruce Ashfield
@ 2026-02-04 14:05       ` Richard Purdie
  2026-02-04 14:10         ` Bruce Ashfield
  0 siblings, 1 reply; 11+ messages in thread
From: Richard Purdie @ 2026-02-04 14:05 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: kai.kang, openembedded-core

On Wed, 2026-02-04 at 09:02 -0500, Bruce Ashfield wrote:
> On Wed, Feb 4, 2026 at 8:58 AM Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
> > On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield via lists.openembedded.org wrote:
> > > On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via lists.openembedded.org <kai.kang=windriver.com@lists.openembedded.org> wrote:
> > > > From: Kai Kang <kai.kang@windriver.com>
> > > > 
> > > > Check whether kernel config CONFIG_MODULES set or not before do_compile
> > > > and do_install in module.bbclass. If not set, it cannot build and
> > > > install external modules.
> > > > 
> > > 
> > > 
> > > This isn't the place to do that check.
> > > 
> > > If modules are disabled get modules_do_compile out of the tasks.
> > 
> > Does it make sense to have something including module.bbclass which
> > doesn't have CONFIG_MODULES set?
> 
> Yes, that's what I'm trying to say.
> 
> Don't even include it if you can't build modules. That puts
> the conditional in a single place, and keeps the code cleaner
> in the class.

I think we're talking cross purposes a bit.

The issue is that if you ever reach do_compile in something using
module.bbclass which does not have CONFIG_MODULES set, that is a
problem and a hard error.

So I'd argue that:

* we only need the check in do_compile
* it should be a fatal exit hard error, not a warning

which means the patch needs tweaking but not as you're suggesting.

I'm not sure skipping the tasks makes sense, I think what we're needing
is a sanity check for a configuration which stops the build if it ever
happens.

The rust check would then be similar. Stop and error if the
configuration would never work/doesn't make sense.

Cheers,

Richard





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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04 14:05       ` Richard Purdie
@ 2026-02-04 14:10         ` Bruce Ashfield
  2026-02-04 15:53           ` Richard Purdie
  0 siblings, 1 reply; 11+ messages in thread
From: Bruce Ashfield @ 2026-02-04 14:10 UTC (permalink / raw)
  To: Richard Purdie; +Cc: kai.kang, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 2331 bytes --]

On Wed, Feb 4, 2026 at 9:05 AM Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> On Wed, 2026-02-04 at 09:02 -0500, Bruce Ashfield wrote:
> > On Wed, Feb 4, 2026 at 8:58 AM Richard Purdie <
> richard.purdie@linuxfoundation.org> wrote:
> > > On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield via
> lists.openembedded.org wrote:
> > > > On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via lists.openembedded.org
> <kai.kang=windriver.com@lists.openembedded.org> wrote:
> > > > > From: Kai Kang <kai.kang@windriver.com>
> > > > >
> > > > > Check whether kernel config CONFIG_MODULES set or not before
> do_compile
> > > > > and do_install in module.bbclass. If not set, it cannot build and
> > > > > install external modules.
> > > > >
> > > >
> > > >
> > > > This isn't the place to do that check.
> > > >
> > > > If modules are disabled get modules_do_compile out of the tasks.
> > >
> > > Does it make sense to have something including module.bbclass which
> > > doesn't have CONFIG_MODULES set?
> >
> > Yes, that's what I'm trying to say.
> >
> > Don't even include it if you can't build modules. That puts
> > the conditional in a single place, and keeps the code cleaner
> > in the class.
>
> I think we're talking cross purposes a bit.
>
> The issue is that if you ever reach do_compile in something using
> module.bbclass which does not have CONFIG_MODULES set, that is a
> problem and a hard error.
>
> So I'd argue that:
>
> * we only need the check in do_compile
> * it should be a fatal exit hard error, not a warning
>
> which means the patch needs tweaking but not as you're suggesting.
>
>
I don't have a strong opinion, so won't object.

I just don't think adding any conditionals for module support in
moduldes.bbclass makes sense. So one versus two checks
is a wash for me.

Bruce



> I'm not sure skipping the tasks makes sense, I think what we're needing
> is a sanity check for a configuration which stops the build if it ever
> happens.
>
> The rust check would then be similar. Stop and error if the
> configuration would never work/doesn't make sense.
>
> Cheers,
>
> Richard
>
>
>
>

-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #2: Type: text/html, Size: 4151 bytes --]

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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04 14:10         ` Bruce Ashfield
@ 2026-02-04 15:53           ` Richard Purdie
  2026-02-05  9:08             ` Kai
  0 siblings, 1 reply; 11+ messages in thread
From: Richard Purdie @ 2026-02-04 15:53 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: kai.kang, openembedded-core

On Wed, 2026-02-04 at 09:10 -0500, Bruce Ashfield wrote:
> 
> 
> On Wed, Feb 4, 2026 at 9:05 AM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > On Wed, 2026-02-04 at 09:02 -0500, Bruce Ashfield wrote:
> > > On Wed, Feb 4, 2026 at 8:58 AM Richard Purdie
> > > <richard.purdie@linuxfoundation.org> wrote:
> > > > On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield via
> > > > lists.openembedded.org wrote:
> > > > > On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via
> > > > > lists.openembedded.org
> > > > > <kai.kang=windriver.com@lists.openembedded.org> wrote:
> > > > > > From: Kai Kang <kai.kang@windriver.com>
> > > > > > 
> > > > > > Check whether kernel config CONFIG_MODULES set or not
> > > > > > before do_compile
> > > > > > and do_install in module.bbclass. If not set, it cannot
> > > > > > build and
> > > > > > install external modules.
> > > > > > 
> > > > > 
> > > > > 
> > > > > This isn't the place to do that check.
> > > > > 
> > > > > If modules are disabled get modules_do_compile out of the
> > > > > tasks.
> > > > 
> > > > Does it make sense to have something including module.bbclass
> > > > which
> > > > doesn't have CONFIG_MODULES set?
> > > 
> > > Yes, that's what I'm trying to say.
> > > 
> > > Don't even include it if you can't build modules. That puts
> > > the conditional in a single place, and keeps the code cleaner
> > > in the class.
> > 
> > I think we're talking cross purposes a bit.
> > 
> > The issue is that if you ever reach do_compile in something using
> > module.bbclass which does not have CONFIG_MODULES set, that is a
> > problem and a hard error.
> > 
> > So I'd argue that:
> > 
> > * we only need the check in do_compile
> > * it should be a fatal exit hard error, not a warning
> > 
> > which means the patch needs tweaking but not as you're suggesting.
> > 
> > 
> 
> 
> I don't have a strong opinion, so won't object.
> 
> I just don't think adding any conditionals for module support in
> moduldes.bbclass makes sense. So one versus two checks
> is a wash for me.

I agree the warn conditional isn't quite right. I think it should be:

if [ CONFIG_MODULES not set in config ];
    bberror Broken config, CONFIG_MODULES not set
    exit 1
fi

so it is basically a sanity test that the config is valid.

I'm a bit worried about what I'm missing though :/

Cheers,

Richard





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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-04 15:53           ` Richard Purdie
@ 2026-02-05  9:08             ` Kai
  2026-02-05 12:58               ` Bruce Ashfield
  2026-02-05 14:49               ` Richard Purdie
  0 siblings, 2 replies; 11+ messages in thread
From: Kai @ 2026-02-05  9:08 UTC (permalink / raw)
  To: Richard Purdie, Bruce Ashfield; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 2957 bytes --]

On 2/4/26 23:53, Richard Purdie wrote:
> On Wed, 2026-02-04 at 09:10 -0500, Bruce Ashfield wrote:
>>
>> On Wed, Feb 4, 2026 at 9:05 AM Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>> On Wed, 2026-02-04 at 09:02 -0500, Bruce Ashfield wrote:
>>>> On Wed, Feb 4, 2026 at 8:58 AM Richard Purdie
>>>> <richard.purdie@linuxfoundation.org> wrote:
>>>>> On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield via
>>>>> lists.openembedded.org wrote:
>>>>>> On Tue, Feb 3, 2026 at 9:09 PM Kai Kang via
>>>>>> lists.openembedded.org
>>>>>> <kai.kang=windriver.com@lists.openembedded.org> wrote:
>>>>>>> From: Kai Kang<kai.kang@windriver.com>
>>>>>>>
>>>>>>> Check whether kernel config CONFIG_MODULES set or not
>>>>>>> before do_compile
>>>>>>> and do_install in module.bbclass. If not set, it cannot
>>>>>>> build and
>>>>>>> install external modules.
>>>>>>>
>>>>>>
>>>>>> This isn't the place to do that check.
>>>>>>
>>>>>> If modules are disabled get modules_do_compile out of the
>>>>>> tasks.
>>>>> Does it make sense to have something including module.bbclass
>>>>> which
>>>>> doesn't have CONFIG_MODULES set?
>>>> Yes, that's what I'm trying to say.
>>>>
>>>> Don't even include it if you can't build modules. That puts
>>>> the conditional in a single place, and keeps the code cleaner
>>>> in the class.
>>> I think we're talking cross purposes a bit.
>>>
>>> The issue is that if you ever reach do_compile in something using
>>> module.bbclass which does not have CONFIG_MODULES set, that is a
>>> problem and a hard error.
>>>
>>> So I'd argue that:
>>>
>>> * we only need the check in do_compile
>>> * it should be a fatal exit hard error, not a warning
>>>
>>> which means the patch needs tweaking but not as you're suggesting.
>>>
>>>
>>
>> I don't have a strong opinion, so won't object.
>>
>> I just don't think adding any conditionals for module support in
>> moduldes.bbclass makes sense. So one versus two checks
>> is a wash for me.
> I agree the warn conditional isn't quite right. I think it should be:
>
> if [ CONFIG_MODULES not set in config ];
>      bberror Broken config, CONFIG_MODULES not set
>      exit 1
> fi
>
> so it is basically a sanity test that the config is valid.
>
> I'm a bit worried about what I'm missing though :/
The original problem is kernel config_modules is disabled, then external 
modules such as lttng-modules can't be built.

Recipe lttng-tools RRECOMMENDS on lttng-modules. If install lttng-tools 
into image, it fails to build lttng-modules.

Kernel config CONFIG_MODULES couldn't be checked whether enabled or 
disabled after bitbake parse. Then there is no chance to remove 
lttng-module from the dependencies. That why I check the config during 
the do_compile and do_install with bbnote and generate empty rpm package.

Regards,
Kai

>
> Cheers,
>
> Richard
>
>
>

-- 
Kai Kang
Wind River Linux

[-- Attachment #2: Type: text/html, Size: 4792 bytes --]

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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-05  9:08             ` Kai
@ 2026-02-05 12:58               ` Bruce Ashfield
  2026-02-05 14:49               ` Richard Purdie
  1 sibling, 0 replies; 11+ messages in thread
From: Bruce Ashfield @ 2026-02-05 12:58 UTC (permalink / raw)
  To: Kai; +Cc: Richard Purdie, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3355 bytes --]

On Thu, Feb 5, 2026 at 4:08 AM Kai <kai.kang@windriver.com> wrote:

> On 2/4/26 23:53, Richard Purdie wrote:
>
> On Wed, 2026-02-04 at 09:10 -0500, Bruce Ashfield wrote:
>
> On Wed, Feb 4, 2026 at 9:05 AM Richard Purdie<richard.purdie@linuxfoundation.org> <richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2026-02-04 at 09:02 -0500, Bruce Ashfield wrote:
>
> On Wed, Feb 4, 2026 at 8:58 AM Richard Purdie<richard.purdie@linuxfoundation.org> <richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2026-02-04 at 08:46 -0500, Bruce Ashfield vialists.openembedded.org wrote:
>
> On Tue, Feb 3, 2026 at 9:09 PM Kai Kang vialists.openembedded.org<kai.kang=windriver.com@lists.openembedded.org> <kai.kang=windriver.com@lists.openembedded.org> wrote:
>
> From: Kai Kang <kai.kang@windriver.com> <kai.kang@windriver.com>
>
> Check whether kernel config CONFIG_MODULES set or not
> before do_compile
> and do_install in module.bbclass. If not set, it cannot
> build and
> install external modules.
>
>
> This isn't the place to do that check.
>
> If modules are disabled get modules_do_compile out of the
> tasks.
>
> Does it make sense to have something including module.bbclass
> which
> doesn't have CONFIG_MODULES set?
>
> Yes, that's what I'm trying to say.
>
> Don't even include it if you can't build modules. That puts
> the conditional in a single place, and keeps the code cleaner
> in the class.
>
> I think we're talking cross purposes a bit.
>
> The issue is that if you ever reach do_compile in something using
> module.bbclass which does not have CONFIG_MODULES set, that is a
> problem and a hard error.
>
> So I'd argue that:
>
> * we only need the check in do_compile
> * it should be a fatal exit hard error, not a warning
>
> which means the patch needs tweaking but not as you're suggesting.
>
>
>
> I don't have a strong opinion, so won't object.
>
> I just don't think adding any conditionals for module support in
> moduldes.bbclass makes sense. So one versus two checks
> is a wash for me.
>
> I agree the warn conditional isn't quite right. I think it should be:
>
> if [ CONFIG_MODULES not set in config ];
>     bberror Broken config, CONFIG_MODULES not set
>     exit 1
> fi
>
> so it is basically a sanity test that the config is valid.
>
> I'm a bit worried about what I'm missing though :/
>
> The original problem is kernel config_modules is disabled, then external
> modules such as lttng-modules can't be built.
>
> Recipe lttng-tools RRECOMMENDS on lttng-modules. If install lttng-tools
> into image, it fails to build lttng-modules.
>
> Kernel config CONFIG_MODULES couldn't be checked whether enabled or
> disabled after bitbake parse. Then there is no chance to remove
> lttng-module from the dependencies. That why I check the config during the
> do_compile and do_install with bbnote and generate empty rpm package.
>

That's exactly why we had a patch to the lttng source code.

Someone updated that patch recently, so it has probably caused a regression.

Bruce



> Regards,
> Kai
>
> Cheers,
>
> Richard
>
>
>
>
>
> --
> Kai Kang
> Wind River Linux
>
>

-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #2: Type: text/html, Size: 5545 bytes --]

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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-05  9:08             ` Kai
  2026-02-05 12:58               ` Bruce Ashfield
@ 2026-02-05 14:49               ` Richard Purdie
  2026-02-12  6:48                 ` Kai
  1 sibling, 1 reply; 11+ messages in thread
From: Richard Purdie @ 2026-02-05 14:49 UTC (permalink / raw)
  To: Kai, Bruce Ashfield; +Cc: openembedded-core

On Thu, 2026-02-05 at 17:08 +0800, Kai wrote:
>  On 2/4/26 23:53, Richard Purdie wrote:
>  I agree the warn conditional isn't quite right. I think it should
> > be:
> > 
> > if [ CONFIG_MODULES not set in config ];
> >     bberror Broken config, CONFIG_MODULES not set
> >     exit 1
> > fi
> > 
> > so it is basically a sanity test that the config is valid.
> > 
> > I'm a bit worried about what I'm missing though :/
> >  
>  The original problem is kernel config_modules is disabled, then
> external modules such as lttng-modules can't be built.
>  
> Recipe lttng-tools RRECOMMENDS on lttng-modules. If install lttng-
> tools into image, it fails to build lttng-modules.
>  
> Kernel config CONFIG_MODULES couldn't be checked whether enabled or
> disabled after bitbake parse. Then there is no
> chance to remove lttng-module from the dependencies. That why I check
> the config during the do_compile and do_install
> with bbnote and generate empty rpm package.

That is a bit different to the problem I thought this was addressing (I
was coming from the rust patches angle).

In that case we probably need to have something like "kernel-modules"
in KERNEL_FEATURES and we check in the lttng-tools recipes if kernel-
modules are in KERNEL_FEATURES. The kernel itself can then error if the
feature is selected but not configured and lttng-modules can fail to
parse with an error if it isn't set?

lttng-tools is not useful without the module support.

Cheers,

Richard






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

* Re: [OE-core] [PATCH] module.bbclass: check whether CONFIG_MODULES set
  2026-02-05 14:49               ` Richard Purdie
@ 2026-02-12  6:48                 ` Kai
  0 siblings, 0 replies; 11+ messages in thread
From: Kai @ 2026-02-12  6:48 UTC (permalink / raw)
  To: Richard Purdie, Bruce Ashfield; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1901 bytes --]

On 2/5/26 22:49, Richard Purdie wrote:
> On Thu, 2026-02-05 at 17:08 +0800, Kai wrote:
>>   On 2/4/26 23:53, Richard Purdie wrote:
>>   I agree the warn conditional isn't quite right. I think it should
>>> be:
>>>
>>> if [ CONFIG_MODULES not set in config ];
>>>      bberror Broken config, CONFIG_MODULES not set
>>>      exit 1
>>> fi
>>>
>>> so it is basically a sanity test that the config is valid.
>>>
>>> I'm a bit worried about what I'm missing though :/
>>>   
>>   The original problem is kernel config_modules is disabled, then
>> external modules such as lttng-modules can't be built.
>>   
>> Recipe lttng-tools RRECOMMENDS on lttng-modules. If install lttng-
>> tools into image, it fails to build lttng-modules.
>>   
>> Kernel config CONFIG_MODULES couldn't be checked whether enabled or
>> disabled after bitbake parse. Then there is no
>> chance to remove lttng-module from the dependencies. That why I check
>> the config during the do_compile and do_install
>> with bbnote and generate empty rpm package.
> That is a bit different to the problem I thought this was addressing (I
> was coming from the rust patches angle).
>
> In that case we probably need to have something like "kernel-modules"
> in KERNEL_FEATURES and we check in the lttng-tools recipes if kernel-
> modules are in KERNEL_FEATURES. The kernel itself can then error if the
> feature is selected but not configured and lttng-modules can fail to
> parse with an error if it isn't set?
I sent a patch to preset LTTNGMODULES with '?='. Then it could be 
overridden from conf files to clear it. It should be the one who disable 
kernel modules support to break the dependency betweenlttng-modules and 
lttng-tools.

Thanks, Kai

>
> lttng-tools is not useful without the module support.
>
> Cheers,
>
> Richard
>
>
>
>

-- 
Kai Kang
Wind River Linux

[-- Attachment #2: Type: text/html, Size: 2847 bytes --]

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

end of thread, other threads:[~2026-02-12  6:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-04  2:09 [PATCH] module.bbclass: check whether CONFIG_MODULES set kai.kang
2026-02-04 13:46 ` [OE-core] " Bruce Ashfield
2026-02-04 13:58   ` Richard Purdie
2026-02-04 14:02     ` Bruce Ashfield
2026-02-04 14:05       ` Richard Purdie
2026-02-04 14:10         ` Bruce Ashfield
2026-02-04 15:53           ` Richard Purdie
2026-02-05  9:08             ` Kai
2026-02-05 12:58               ` Bruce Ashfield
2026-02-05 14:49               ` Richard Purdie
2026-02-12  6:48                 ` Kai

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