Makefile | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
vmlinux-deps is unneeded because the dependency can directly list
$(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)
Do not cancel the rule; building an individual vmlinux.lds, built-in.a,
or lib.a is working now, but the warning "overriding recipe for target"
is shown.
Without this patch:
$ make arch/x86/kernel/vmlinux.lds
Makefile:1798: warning: overriding recipe for target 'arch/x86/kernel/vmlinux.lds'
Makefile:1162: warning: ignoring old recipe for target 'arch/x86/kernel/vmlinux.lds'
[ snip ]
LDS arch/x86/kernel/vmlinux.lds
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
Makefile | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 244c07f1cc70..3e6974b4ebf2 100644
--- a/Makefile
+++ b/Makefile
@@ -1118,7 +1118,8 @@ endif
export KBUILD_VMLINUX_OBJS KBUILD_VMLINUX_LIBS
export KBUILD_LDS := arch/$(SRCARCH)/kernel/vmlinux.lds
-vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)
+# The actual objects are generated when descending.
+$(sort $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)): .
# Recurse until adjust_autoksyms.sh is satisfied
PHONY += autoksyms_recursive
@@ -1157,10 +1158,6 @@ vmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE
targets := vmlinux
-# The actual objects are generated when descending,
-# make sure no implicit rule kicks in
-$(sort $(vmlinux-deps)): . ;
-
filechk_kernel.release = \
echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
--
2.34.1
On Mon, Sep 26, 2022 at 10:27 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > vmlinux-deps is unneeded because the dependency can directly list > $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS) > > Do not cancel the rule; building an individual vmlinux.lds, built-in.a, > or lib.a is working now, but the warning "overriding recipe for target" > is shown. > > Without this patch: > > $ make arch/x86/kernel/vmlinux.lds > Makefile:1798: warning: overriding recipe for target 'arch/x86/kernel/vmlinux.lds' > Makefile:1162: warning: ignoring old recipe for target 'arch/x86/kernel/vmlinux.lds' > [ snip ] > LDS arch/x86/kernel/vmlinux.lds > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > --- I take this back. After testing this, I noticed vmlinux was not correctly rebuilt. > > Makefile | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/Makefile b/Makefile > index 244c07f1cc70..3e6974b4ebf2 100644 > --- a/Makefile > +++ b/Makefile > @@ -1118,7 +1118,8 @@ endif > export KBUILD_VMLINUX_OBJS KBUILD_VMLINUX_LIBS > export KBUILD_LDS := arch/$(SRCARCH)/kernel/vmlinux.lds > > -vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS) > +# The actual objects are generated when descending. > +$(sort $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)): . > > # Recurse until adjust_autoksyms.sh is satisfied > PHONY += autoksyms_recursive > @@ -1157,10 +1158,6 @@ vmlinux: scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE > > targets := vmlinux > > -# The actual objects are generated when descending, > -# make sure no implicit rule kicks in > -$(sort $(vmlinux-deps)): . ; > - > filechk_kernel.release = \ > echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" > > -- > 2.34.1 > -- Best Regards Masahiro Yamada
© 2016 - 2026 Red Hat, Inc.