kbuild problem: ERROR: modpost: missing MODULE_LICENSE() in drivers/iio/afe/iio-rescale.o

862 views
Skip to first unread message

Randy Dunlap

unread,
May 20, 2022, 10:40:42 PM5/20/22
to Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Hi,

In March I reported that a randconfig build complained:

ERROR: modpost: missing MODULE_LICENSE() in drivers/iio/afe/iio-rescale.o

(https://lore.kernel.org/all/16509fb6-e40c-e31b...@infradead.org/)

I am still seeing this problem so I tried to dig into it a bit.
However, I don't see why get_next_modinfo() and friends don't find the
MODULE_LICENSE() since it is in the iio-rescale.o file.

(BTW, I see this build error on many different $ARCH [around 15 tested]
and with 2 different versions of GCC.)

Q1: Is modpost checking both vmlinux and iio-rescale.o for modinfo license
strings?

It looks like it is, because it appears (?) that modpost is looking at
drivers/iio/test/iio-test-rescale.o (<<<<< a kunit test, which is builtin
in my .config) and at drivers/iio/afe/iio-rescale.o (which is built as a
loadable module).

Is this confusing modpost?
I renamed drivers/iio/afe/iio-rescale.c to afe-rescale.c and changed its
Makefile entry accordingly and the MODULE_LICENSE error goes away.

Is this a modpost error or is kunit messing things up?

thanks for looking.
--
~Randy

Randy Dunlap

unread,
May 20, 2022, 11:08:56 PM5/20/22
to Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Oh well. This rename causes drivers/iio/test/iio-test-rescale.c to have
build errors, so that's not a solution, just some info...

Randy Dunlap

unread,
May 20, 2022, 11:17:30 PM5/20/22
to Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
and that was due to not updating drivers/iio/test/Makefile.
When that is done, the missing MODULE_LICENSE() is back in afe-rescale.o.

Randy Dunlap

unread,
May 20, 2022, 11:51:19 PM5/20/22
to Linux Kbuild mailing list, Masahiro Yamada, Liam Beguin, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Ok, one more.
[also adding Liam here]
Does this look OK? It allows afe/iio-rescale.o to build XOR
test/iio-rescale.o (not both of them).

--- a/drivers/iio/test/Kconfig
+++ b/drivers/iio/test/Kconfig
@@ -6,7 +6,7 @@
# Keep in alphabetical order
config IIO_RESCALE_KUNIT_TEST
bool "Test IIO rescale conversion functions"
- depends on KUNIT=y && !IIO_RESCALE
+ depends on KUNIT=y && IIO_RESCALE=n
default KUNIT_ALL_TESTS
help
If you want to run tests on the iio-rescale code say Y here.


--
~Randy

Masahiro Yamada

unread,
May 21, 2022, 12:13:49 AM5/21/22
to Randy Dunlap, Linux Kbuild mailing list, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
On Sat, May 21, 2022 at 11:40 AM Randy Dunlap <rdu...@infradead.org> wrote:
>
> Hi,
>
> In March I reported that a randconfig build complained:
>
> ERROR: modpost: missing MODULE_LICENSE() in drivers/iio/afe/iio-rescale.o
>
> (https://lore.kernel.org/all/16509fb6-e40c-e31b...@infradead.org/)
>
> I am still seeing this problem so I tried to dig into it a bit.
> However, I don't see why get_next_modinfo() and friends don't find the
> MODULE_LICENSE() since it is in the iio-rescale.o file.
>
> (BTW, I see this build error on many different $ARCH [around 15 tested]
> and with 2 different versions of GCC.)
>
> Q1: Is modpost checking both vmlinux and iio-rescale.o for modinfo license
> strings?


MODULE_LICENSE() is no-op for vmlinux.

modpost checks this only for modules.



>
> It looks like it is, because it appears (?) that modpost is looking at
> drivers/iio/test/iio-test-rescale.o (<<<<< a kunit test, which is builtin
> in my .config) and at drivers/iio/afe/iio-rescale.o (which is built as a
> loadable module).
>
> Is this confusing modpost?
> I renamed drivers/iio/afe/iio-rescale.c to afe-rescale.c and changed its
> Makefile entry accordingly and the MODULE_LICENSE error goes away.
>
> Is this a modpost error or is kunit messing things up?
>
> thanks for looking.
> --
> ~Randy



--
Best Regards
Masahiro Yamada

Masahiro Yamada

unread,
May 21, 2022, 12:15:54 AM5/21/22
to Randy Dunlap, Linux Kbuild mailing list, Liam Beguin, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
As you may have already noticed,
the root cause is drivers/iio/test/Makefile

obj-$(CONFIG_IIO_RESCALE_KUNIT_TEST) += iio-test-rescale.o ../afe/iio-rescale.o



For the combination of
CONFIG_IIO_RESCALE=m
CONFIG_IIO_RESCALE_KUNIT_TEST=y,

drivers/iio/afe/iio-rescale.o is built twice;
as modular by drivers/iio/afe/Makefile, and
as built-in by drivers/iio/test/Makefile.

That's why MODULE_LICENSE() is lost.


I think your solution will work
although this Makefile is not recommended.

Randy Dunlap

unread,
May 21, 2022, 1:39:45 AM5/21/22
to Masahiro Yamada, Linux Kbuild mailing list, Liam Beguin, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Yeah, I don't care for how that is done either.

--
~Randy

Randy Dunlap

unread,
May 26, 2022, 11:36:55 AM5/26/22
to Linux Kbuild mailing list, Masahiro Yamada, Liam Beguin, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Liam:

Any comment on this?
Otherwise I'll just send a formal patch like this (below).

Thanks.

Liam Beguin

unread,
May 26, 2022, 12:04:49 PM5/26/22
to Randy Dunlap, Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Hi Randy,

On Thu, May 26, 2022 at 08:36:34AM -0700, Randy Dunlap wrote:
> Liam:
>
> Any comment on this?
> Otherwise I'll just send a formal patch like this (below).

Apologies for not answering earlier.

I wanted to look more into Masahiro's comment and try to fix the
Makefile, but that can be done after.

IMO your patch improves the current Kconfig, so I'd recommend sending
the patch. If it can wait a bit, I can look at the Makefile over the
weekend.

Cheers,
Liam

Randy Dunlap

unread,
May 26, 2022, 4:04:56 PM5/26/22
to Liam Beguin, Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development


On 5/26/22 09:04, Liam Beguin wrote:
> Hi Randy,
>
> On Thu, May 26, 2022 at 08:36:34AM -0700, Randy Dunlap wrote:
>> Liam:
>>
>> Any comment on this?
>> Otherwise I'll just send a formal patch like this (below).
>
> Apologies for not answering earlier.
>
> I wanted to look more into Masahiro's comment and try to fix the
> Makefile, but that can be done after.
>
> IMO your patch improves the current Kconfig, so I'd recommend sending
> the patch. If it can wait a bit, I can look at the Makefile over the
> weekend.
>

Liam,

I'll wait until next week to see if you come up with anything.

Thanks.
--
~Randy

Liam Beguin

unread,
May 29, 2022, 5:20:43 PM5/29/22
to Randy Dunlap, Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Hi Randy,

On Thu, May 26, 2022 at 01:04:41PM -0700, Randy Dunlap wrote:
>
>
> On 5/26/22 09:04, Liam Beguin wrote:
> > Hi Randy,
> >
> > On Thu, May 26, 2022 at 08:36:34AM -0700, Randy Dunlap wrote:
> >> Liam:
> >>
> >> Any comment on this?
> >> Otherwise I'll just send a formal patch like this (below).
> >
> > Apologies for not answering earlier.
> >
> > I wanted to look more into Masahiro's comment and try to fix the
> > Makefile, but that can be done after.
> >
> > IMO your patch improves the current Kconfig, so I'd recommend sending
> > the patch. If it can wait a bit, I can look at the Makefile over the
> > weekend.
> >
>
> Liam,
>
> I'll wait until next week to see if you come up with anything.
>

The following patch fixes the issue while addressing Masahiro's comment.
I also considered `select IIO_RESCALE`, but I'm not sure what's usually
preferred.

diff --git a/drivers/iio/test/Kconfig b/drivers/iio/test/Kconfig
index 56ca0ad7e77a..4c66c3f18c34 100644
--- a/drivers/iio/test/Kconfig
+++ b/drivers/iio/test/Kconfig
@@ -6,7 +6,7 @@
# Keep in alphabetical order
config IIO_RESCALE_KUNIT_TEST
bool "Test IIO rescale conversion functions"
- depends on KUNIT=y && !IIO_RESCALE
+ depends on KUNIT=y && IIO_RESCALE=y
default KUNIT_ALL_TESTS
help
If you want to run tests on the iio-rescale code say Y here.
diff --git a/drivers/iio/test/Makefile b/drivers/iio/test/Makefile
index f15ae0a6394f..880360f8d02c 100644
--- a/drivers/iio/test/Makefile
+++ b/drivers/iio/test/Makefile
@@ -4,6 +4,6 @@
#

# Keep in alphabetical order
-obj-$(CONFIG_IIO_RESCALE_KUNIT_TEST) += iio-test-rescale.o ../afe/iio-rescale.o
+obj-$(CONFIG_IIO_RESCALE_KUNIT_TEST) += iio-test-rescale.o
obj-$(CONFIG_IIO_TEST_FORMAT) += iio-test-format.o
CFLAGS_iio-test-format.o += $(DISABLE_STRUCTLEAK_PLUGIN)

I'll send a patch as soon as you confirm this works for you too.

Cheers,
Liam

Randy Dunlap

unread,
May 29, 2022, 8:17:37 PM5/29/22
to Liam Beguin, Linux Kbuild mailing list, Masahiro Yamada, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Looks good. Thanks.

Acked-by: Randy Dunlap <rdu...@infradead.org>
Tested-by: Randy Dunlap <rdu...@infradead.org>

--
~Randy

Masahiro Yamada

unread,
May 29, 2022, 10:39:04 PM5/29/22
to Randy Dunlap, Liam Beguin, Linux Kbuild mailing list, linux-...@vger.kernel.org, linu...@vger.kernel.org, Peter Rosin, open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
Reviewed-by: Masahiro Yamada <masa...@kernel.org>
Reply all
Reply to author
Forward
0 new messages