Re: [PATCH] kbuild: revive single target %.ko

From: Masahiro Yamada
Date: Wed Aug 07 2019 - 11:16:08 EST


On Fri, Aug 2, 2019 at 7:24 PM Masahiro Yamada
<yamada.masahiro@xxxxxxxxxxxxx> wrote:
>
> I removed the single target %.ko in commit ff9b45c55b26 ("kbuild:
> modpost: read modules.order instead of $(MODVERDIR)/*.mod") because
> the modpost stage does not work reliably. For instance, the module
> dependency, modversion, etc. do not work if we lack symbol information
> from the other modules.
>
> Yet, some people still want to build only one module in their interest,
> and it may be still useful if it is used within those limitations.
>
> Fixes: ff9b45c55b26 ("kbuild: modpost: read modules.order instead of $(MODVERDIR)/*.mod")
> Reported-by: Don Brace <don.brace@xxxxxxxxxxxxx>
> Reported-by: Arend Van Spriel <arend.vanspriel@xxxxxxxxxxxx>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> ---

Applied to linux-kbuild/fixes.

>
> Makefile | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 571cf862d7a4..e4c7211f5a3b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -997,6 +997,8 @@ endif
>
> PHONY += prepare0
>
> +export MODORDER := $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)modules.order
> +
> ifeq ($(KBUILD_EXTMOD),)
> core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
>
> @@ -1766,6 +1768,10 @@ build-dir = $(patsubst %/,%,$(dir $(build-target)))
> $(Q)$(MAKE) $(build)=$(build-dir) $(build-target)
> %.symtypes: prepare FORCE
> $(Q)$(MAKE) $(build)=$(build-dir) $(build-target)
> +%.ko: prepare FORCE
> + $(Q)$(MAKE) $(build)=$(build-dir) $(build-target:.ko=.mod)
> + $(Q)echo $(build-target) > $(MODORDER)
> + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost || { rm -f $(MODORDER); false; }
>
> # Modules
> PHONY += /
> --
> 2.17.1
>


--
Best Regards
Masahiro Yamada