Thread (6 messages) 6 messages, 5 authors, 2023-03-05

Re: [PATCH v10 05/13] kbuild: remove MODULE_LICENSE/AUTHOR/DESCRIPTION in non-modules

From: Nick Alcock <hidden>
Date: 2022-12-06 20:03:28
Also in: linux-modules, lkml

On 6 Dec 2022, Geert Uytterhoeven uttered the following:
On Mon, Dec 5, 2022 at 5:34 PM Nick Alcock [off-list ref] wrote:
quoted
Since commit 8b41fc4454e ("kbuild: create modules.builtin without
Makefile.modbuiltin or tristate.conf"), MODULE_LICENSE declarations in
non-modules will cause modprobe to misidentify their containing object
file as a module when it is not, which might cause it to spuriously fail
when trying to load something that is built in to the kernel.  They
also cause misconstruction of modules.builtin.objs, leading to incorrect
output in kallmodsyms (notating things as being in modules when they
actually cannot be built as a module at all).

Automatically identified with the new tristate checker, and purged with
sed and a subsequent make allmodconfig to double-check.

Signed-off-by: Nick Alcock <redacted>
I can (sort of) agree with the MODULE_LICENSE(), as it duplicates the
SPDX-License-Identifier at the top.
However, you don't explain why it is a good thing to remove the
MODULE_{AUTHOR,DESCRIPTION}, too.  This is useful information, in an
easy-to-parse format.
I was concerned about that, but I kinda thought they went together and
it would be neater to take them out in one go -- but I'd be happy to
keep them in and only drop MODULE_LICENSE.
Moreover, many of the affected drivers might be converted into modules
in the near or far future.

If the presence of these causes issues for the tooling, perhaps the
tooling can be fixed instead?
Only MODULE_LICENSE invokes MODULE_FILE and thus ends up introducing a
KBUILD_MODOBJS entry that triggers things going wrong iff not a module:
so only it needs to go out (or be replaced with a variant that doesn't
invoke MODULE_FILE, if you want to keep the license in too -- but if the
thing is no longer a standalone entity at all I'm not sure what meaning
it could possibly have).

-- 
NULL && (void)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help