kbuild: do not automatically add -w option to modpost

When there is a missing input file (vmlinux.o or Module.symvers), you
are likely to get a ton of unresolved symbols.

Currently, Kbuild automatically adds the -w option to allow module builds
to continue with warnings instead of errors.

This may not be what the user expects because it is generally more useful
to catch all possible issues at build time instead of at run time.

Let's not do what the user did not ask.

If you still want to build modules anyway, you can proceed by explicitly
setting KBUILD_MODPOST_WARN=1. Since you may miss a real issue, you need
to be aware of what you are doing.

Suggested-by: William McVicker <willmcvicker@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Tested-by: Will McVicker <willmcvicker@google.com>
This commit is contained in:
Masahiro Yamada 2023-01-26 11:26:43 +09:00
parent 4e3feaad6f
commit 5573b4daa2

View File

@ -121,16 +121,14 @@ modpost-args += -e $(addprefix -i , $(KBUILD_EXTRA_SYMBOLS))
endif # ($(KBUILD_EXTMOD),)
ifneq ($(missing-input),)
modpost-args += -w
endif
quiet_cmd_modpost = MODPOST $@
cmd_modpost = \
$(if $(missing-input), \
echo >&2 "WARNING: $(missing-input) is missing."; \
echo >&2 " Modules may not have dependencies or modversions."; \
echo >&2 " You may get many unresolved symbol warnings.";) \
echo >&2 " You may get many unresolved symbol errors."; \
echo >&2 " You can set KBUILD_MODPOST_WARN=1 to turn errors into warning"; \
echo >&2 " if you want to proceed at your own risk.";) \
$(MODPOST) $(modpost-args)
targets += $(output-symdump)