Re: [PATCH v2 2/8] kbuild: Support for Symbols.list creation

From: Miroslav Benes
Date: Wed Mar 20 2019 - 15:08:09 EST


> > diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> > index fd03d60f6c5a..1e28ad21314c 100644
> > --- a/scripts/Makefile.build
> > +++ b/scripts/Makefile.build
> > @@ -247,6 +247,11 @@ cmd_gen_ksymdeps = \
> > $(CONFIG_SHELL) $(srctree)/scripts/gen_ksymdeps.sh $@ >> $(dot-target).cmd
> > endif
> >
> > +ifdef CONFIG_LIVEPATCH
> > +cmd_livepatch = $(if $(LIVEPATCH_$(basetarget).o), \
> > + $(shell touch $(MODVERDIR)/$(basetarget).livepatch))
> > +endif
> > +
> > define rule_cc_o_c
> > $(call cmd,checksrc)
> > $(call cmd_and_fixdep,cc_o_c)
> > @@ -283,6 +288,7 @@ $(single-used-m): $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) F
> > $(call if_changed_rule,cc_o_c)
> > @{ echo $(@:.o=.ko); echo $@; \
> > $(cmd_undef_syms); } > $(MODVERDIR)/$(@F:.o=.mod)
> > + $(call cmd_livepatch)
> >
> > quiet_cmd_cc_lst_c = MKLST $@
> > cmd_cc_lst_c = $(CC) $(c_flags) -g -c -o $*.o $< && \
>
> Since cmd_livepatch is only called for single-used-m, does this mean
> that we can only klp-convert single object file livepatch modules?
>
> I stumbled upon this when trying to create a self-test module that
> incorporated two object files. I tried adding a $(call cmd_livepatch)
> in the recipe for $(obj)/%.o, but that didn't help. My kbuild foo
> wasn't good enough to figure this one out.

I looked at my original code and it is a bit different there. I placed it
under rule_cc_o_c right after objtool command. If I remember correctly
this is the correct recipe for .c->.o. Unfortunately I forgot the details
and there is of course nothing about it in my notes.

Does it help?

Joao, is there a reason you moved it elsewhere?

Miroslav