lkml.org 
[lkml]   [2023]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/4] kbuild: refactor module BTF rule
    On Tue, Oct 17, 2023 at 07:37:42PM +0900, Masahiro Yamada wrote:
    > newer_prereqs_except and if_changed_except are ugly hacks of the
    > newer_prereqs and if_changed in scripts/Kbuild.include.

    newer-prereqs

    >
    > Remove.
    >
    > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    > ---
    >
    > scripts/Makefile.modfinal | 23 +++++------------------
    > 1 file changed, 5 insertions(+), 18 deletions(-)
    >
    > diff --git a/scripts/Makefile.modfinal b/scripts/Makefile.modfinal
    > index 9fd7a26e4fe9..6ab10dba05c7 100644
    > --- a/scripts/Makefile.modfinal
    > +++ b/scripts/Makefile.modfinal
    > @@ -19,6 +19,9 @@ vmlinux :=
    > ifdef CONFIG_DEBUG_INFO_BTF_MODULES
    > ifneq ($(wildcard vmlinux),)
    > vmlinux := vmlinux
    > +cmd_btf = ; \

    while reading, I stumpled over this semicolon, but probably it's a good
    reminder that cmd_btf is only a cmd extension.

    > + LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base vmlinux $@; \
    > + $(RESOLVE_BTFIDS) -b vmlinux $@
    > else
    > $(warning Skipping BTF generation due to unavailability of vmlinux)
    > endif
    > @@ -41,27 +44,11 @@ quiet_cmd_ld_ko_o = LD [M] $@
    > cmd_ld_ko_o += \
    > $(LD) -r $(KBUILD_LDFLAGS) \
    > $(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
    > - -T scripts/module.lds -o $@ $(filter %.o, $^)
    > + -T scripts/module.lds -o $@ $(filter %.o, $^) \
    > + $(cmd_btf)
    >
    > -quiet_cmd_btf_ko = BTF [M] $@
    > - cmd_btf_ko = \
    > - LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base vmlinux $@; \
    > - $(RESOLVE_BTFIDS) -b vmlinux $@
    > -
    > -# Same as newer-prereqs, but allows to exclude specified extra dependencies
    > -newer_prereqs_except = $(filter-out $(PHONY) $(1),$?)
    > -
    > -# Same as if_changed, but allows to exclude specified extra dependencies
    > -if_changed_except = $(if $(call newer_prereqs_except,$(2))$(cmd-check), \
    > - $(cmd); \
    > - printf '%s\n' 'savedcmd_$@ := $(make-cmd)' > $(dot-target).cmd, @:)
    > -
    > -# Re-generate module BTFs if either module's .ko or vmlinux changed
    > %.ko: %.o %.mod.o scripts/module.lds $(vmlinux) FORCE
    > +$(call if_changed_except,ld_ko_o,vmlinux)

    This should probably be:

    +$(call if_changed,ld_ko_o)


    > -ifdef vmlinux
    > - +$(if $(newer-prereqs),$(call cmd,btf_ko))
    > -endif
    >
    > targets += $(modules:%.o=%.ko) $(modules:%.o=%.mod.o)
    >
    > --
    > 2.40.1
    >

    \
     
     \ /
      Last update: 2023-10-17 14:59    [W:4.192 / U:0.368 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site