diff mbox series

[v2] kbuild: do not automatically add -w option to modpost

Message ID 20230126022643.3664548-1-masahiroy@kernel.org (mailing list archive)
State New, archived
Headers show
Series [v2] kbuild: do not automatically add -w option to modpost | expand

Commit Message

Masahiro Yamada Jan. 26, 2023, 2:26 a.m. UTC
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>
---

Changes in v2:
  - Fix the closing parenthesis

 scripts/Makefile.modpost | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

William McVicker Jan. 27, 2023, 9:56 p.m. UTC | #1
On 01/26/2023, Masahiro Yamada wrote:
> 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>
> ---
> 
> Changes in v2:
>   - Fix the closing parenthesis
> 
>  scripts/Makefile.modpost | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
> index 43343e13c542..0980c58d8afc 100644
> --- a/scripts/Makefile.modpost
> +++ b/scripts/Makefile.modpost
> @@ -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)
> -- 
> 2.34.1
> 

Thanks for putting this together. I verified it's working as expected
for me. Feel free to add:

Tested-by: Will McVicker <willmcvicker@google.com>

Regards,
Will
diff mbox series

Patch

diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
index 43343e13c542..0980c58d8afc 100644
--- a/scripts/Makefile.modpost
+++ b/scripts/Makefile.modpost
@@ -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)