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)