Message ID | 20190809002104.18599-2-stancheff@cray.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | kbuild: Support building a tree of modules with -M=<root> | expand |
On Fri, Aug 9, 2019 at 9:21 AM Shaun Tancheff <shaun@tancheff.com> wrote: > > When building a tree of external modules stage 2 fails > silently as the root modules.order is empty. > > Modify the modules.order location to be fixed to the > root when KBUILD_EXTMOD is specified and write all > module paths to the single modules.order file. Could you try v5.3-rc4 please? > Signed-off-by: Shaun Tancheff <stancheff@cray.com> > --- > Makefile | 1 + > scripts/Makefile.build | 8 +++++++- > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 23cdf1f41364..a9964492f47e 100644 > --- a/Makefile > +++ b/Makefile > @@ -1622,6 +1622,7 @@ $(module-dirs): prepare $(objtree)/Module.symvers > > modules: $(module-dirs) > @$(kecho) ' Building modules, stage 2.'; > + $(Q)$rm -f $(KBUILD_EXTMOD)/modules.order > $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost > > PHONY += modules_install > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index 0d434d0afc0b..f9908b3d59e0 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -64,7 +64,13 @@ builtin-target := $(obj)/built-in.a > endif > > ifeq ($(CONFIG_MODULES)$(need-modorder),y1) > +ifneq ($(KBUILD_EXTMOD),) > +modorder-target := $(KBUILD_EXTMOD)/modules.order > +modorder-add := >> > +else > modorder-target := $(obj)/modules.order > +modorder-add := > > +endif > endif > > mod-targets := $(patsubst %.o, %.mod, $(obj-m)) > @@ -423,7 +429,7 @@ endif # builtin-target > $(modorder-target): $(subdir-ym) FORCE > $(Q){ $(foreach m, $(modorder), \ > $(if $(filter %/modules.order, $m), cat $m, echo $m);) :; } \ > - | $(AWK) '!x[$$0]++' - > $@ > + | $(AWK) '!x[$$0]++' - $(modorder-add) $@ > > # > # Rule to compile a set of .o files into one .a file (with symbol table) > -- > 2.20.1 >
On Mon, Aug 12, 2019 at 10:24 AM Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > > On Fri, Aug 9, 2019 at 9:21 AM Shaun Tancheff <shaun@tancheff.com> wrote: > > > > When building a tree of external modules stage 2 fails > > silently as the root modules.order is empty. > > > > Modify the modules.order location to be fixed to the > > root when KBUILD_EXTMOD is specified and write all > > module paths to the single modules.order file. > > Could you try v5.3-rc4 please? So it seems we are using 'subdir-m' but that is now gone? Is there a recommend pattern for backward compatibility? Thanks! > > > Signed-off-by: Shaun Tancheff <stancheff@cray.com> > > --- > > Makefile | 1 + > > scripts/Makefile.build | 8 +++++++- > > 2 files changed, 8 insertions(+), 1 deletion(-) > > > > diff --git a/Makefile b/Makefile > > index 23cdf1f41364..a9964492f47e 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -1622,6 +1622,7 @@ $(module-dirs): prepare $(objtree)/Module.symvers > > > > modules: $(module-dirs) > > @$(kecho) ' Building modules, stage 2.'; > > + $(Q)$rm -f $(KBUILD_EXTMOD)/modules.order > > $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost > > > > PHONY += modules_install > > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > > index 0d434d0afc0b..f9908b3d59e0 100644 > > --- a/scripts/Makefile.build > > +++ b/scripts/Makefile.build > > @@ -64,7 +64,13 @@ builtin-target := $(obj)/built-in.a > > endif > > > > ifeq ($(CONFIG_MODULES)$(need-modorder),y1) > > +ifneq ($(KBUILD_EXTMOD),) > > +modorder-target := $(KBUILD_EXTMOD)/modules.order > > +modorder-add := >> > > +else > > modorder-target := $(obj)/modules.order > > +modorder-add := > > > +endif > > endif > > > > mod-targets := $(patsubst %.o, %.mod, $(obj-m)) > > @@ -423,7 +429,7 @@ endif # builtin-target > > $(modorder-target): $(subdir-ym) FORCE > > $(Q){ $(foreach m, $(modorder), \ > > $(if $(filter %/modules.order, $m), cat $m, echo $m);) :; } \ > > - | $(AWK) '!x[$$0]++' - > $@ > > + | $(AWK) '!x[$$0]++' - $(modorder-add) $@ > > > > # > > # Rule to compile a set of .o files into one .a file (with symbol table) > > -- > > 2.20.1 > > > > > -- > Best Regards > Masahiro Yamada
On Tue, Aug 13, 2019 at 2:34 AM Shaun Tancheff <shaun@tancheff.com> wrote: > > On Mon, Aug 12, 2019 at 10:24 AM Masahiro Yamada > <yamada.masahiro@socionext.com> wrote: > > > > On Fri, Aug 9, 2019 at 9:21 AM Shaun Tancheff <shaun@tancheff.com> wrote: > > > > > > When building a tree of external modules stage 2 fails > > > silently as the root modules.order is empty. > > > > > > Modify the modules.order location to be fixed to the > > > root when KBUILD_EXTMOD is specified and write all > > > module paths to the single modules.order file. > > > > Could you try v5.3-rc4 please? > > So it seems we are using 'subdir-m' but that is now gone? > > Is there a recommend pattern for backward compatibility? > > Thanks! Please convert subdir-m += dir1 subdir-m += dir2 into obj-m += dir1/ obj-m += dir2/ Thanks.
On Mon, Aug 12, 2019 at 8:07 PM Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > > On Tue, Aug 13, 2019 at 2:34 AM Shaun Tancheff <shaun@tancheff.com> wrote: > > > > On Mon, Aug 12, 2019 at 10:24 AM Masahiro Yamada > > <yamada.masahiro@socionext.com> wrote: > > > > > > On Fri, Aug 9, 2019 at 9:21 AM Shaun Tancheff <shaun@tancheff.com> wrote: > > > > > > > > When building a tree of external modules stage 2 fails > > > > silently as the root modules.order is empty. > > > > > > > > Modify the modules.order location to be fixed to the > > > > root when KBUILD_EXTMOD is specified and write all > > > > module paths to the single modules.order file. > > > > > > Could you try v5.3-rc4 please? > > > > So it seems we are using 'subdir-m' but that is now gone? > > > > Is there a recommend pattern for backward compatibility? > > > > Thanks! > > > Please convert > > subdir-m += dir1 > subdir-m += dir2 > > into > > obj-m += dir1/ > obj-m += dir2/ After working through some local quirks everything is working now. Thanks! > > > Thanks. > > -- > Best Regards > Masahiro Yamada
diff --git a/Makefile b/Makefile index 23cdf1f41364..a9964492f47e 100644 --- a/Makefile +++ b/Makefile @@ -1622,6 +1622,7 @@ $(module-dirs): prepare $(objtree)/Module.symvers modules: $(module-dirs) @$(kecho) ' Building modules, stage 2.'; + $(Q)$rm -f $(KBUILD_EXTMOD)/modules.order $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost PHONY += modules_install diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 0d434d0afc0b..f9908b3d59e0 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -64,7 +64,13 @@ builtin-target := $(obj)/built-in.a endif ifeq ($(CONFIG_MODULES)$(need-modorder),y1) +ifneq ($(KBUILD_EXTMOD),) +modorder-target := $(KBUILD_EXTMOD)/modules.order +modorder-add := >> +else modorder-target := $(obj)/modules.order +modorder-add := > +endif endif mod-targets := $(patsubst %.o, %.mod, $(obj-m)) @@ -423,7 +429,7 @@ endif # builtin-target $(modorder-target): $(subdir-ym) FORCE $(Q){ $(foreach m, $(modorder), \ $(if $(filter %/modules.order, $m), cat $m, echo $m);) :; } \ - | $(AWK) '!x[$$0]++' - > $@ + | $(AWK) '!x[$$0]++' - $(modorder-add) $@ # # Rule to compile a set of .o files into one .a file (with symbol table)
When building a tree of external modules stage 2 fails silently as the root modules.order is empty. Modify the modules.order location to be fixed to the root when KBUILD_EXTMOD is specified and write all module paths to the single modules.order file. Signed-off-by: Shaun Tancheff <stancheff@cray.com> --- Makefile | 1 + scripts/Makefile.build | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-)