Skip to contentSkip to conversation

kbuild: Leave objtool binary around with 'make clean'

PATCH In review Nathan Chancellor 6 participants 9 messages Feb 28 – Mar 5

Subsystems (4)
lore
Share & tools
lore

Nathan Chancellor

author maintainer
#0 lore raw

PATCH 1/1 kbuild: Leave objtool binary around with 'make clean'

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

---
I realize that this will technically decend into tools/objtool twice during cleaning when running mrproper but I don't think it is the end of the world for a much simpler implementation.

I can take this via kbuild-fixes with a proper Ack or it can go through -tip, does not matter to me.

---
 Makefile               | 8 ++++----
 tools/objtool/Makefile | 6 ++++--
 2 files changed, 8 insertions(+), 6 deletions(-)
Makefile +4 -4
index e944c6e71e81..d76d706a5580 100644
@@ -1497,13 +1497,13 @@ ifneq ($(wildcard $(resolve_btfids_O)),)
 	$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
 endif
 
-PHONY += objtool_clean
+PHONY += objtool_clean objtool_mrproper
 
 objtool_O = $(abspath $(objtree))/tools/objtool
 
-objtool_clean:
+objtool_clean objtool_mrproper:
 ifneq ($(wildcard $(objtool_O)),)
-	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) clean
+	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) $(patsubst objtool_%,%,$@)
 endif
 
 tools/: FORCE
@@ -1686,7 +1686,7 @@ PHONY += $(mrproper-dirs) mrproper
 $(mrproper-dirs):
 	$(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
 
-mrproper: clean $(mrproper-dirs)
+mrproper: clean objtool_mrproper $(mrproper-dirs)
 	$(call cmd,rmfiles)
 	@find . $(RCS_FIND_IGNORE) \
 		\( -name '*.rmeta' \) \
tools/objtool/Makefile +4 -2
index 6964175abdfd..50d3e38e6137 100644
@@ -142,13 +142,15 @@ $(LIBSUBCMD)-clean:
 	$(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT)
 
 clean: $(LIBSUBCMD)-clean
-	$(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL)
 	$(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/cpu-feature-names.c $(OUTPUT)fixdep
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep
 	$(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.objtool
 	$(Q)$(RM) -r -- $(OUTPUT)feature
 
+mrproper: clean
+	$(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL)
+
 FORCE:
 
-.PHONY: clean FORCE
+.PHONY: clean mrproper FORCE

---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260227-avoid-objtool-binary-removal-clean-83ce7fbcc8a1

Best regards,

Signature · 1 line
Nathan Chancellor <[email protected]>
maintainer Reviewed-by Tested-by on v1 1/1
#1 lore raw
Quoted 30 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

Quoted 4 lines

---
I realize that this will technically decend into tools/objtool twice during cleaning when running mrproper but I don't think it is the end of the world for a much simpler implementation.

Yes, I think that should be ok.

Signature · 1 line
Nicolas
maintainer Acked-by on v1 1/1
#2 lore raw
In reply to Nathan Chancellor
Quoted 30 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

Quoted 7 lines

---
I realize that this will technically decend into tools/objtool twice during cleaning when running mrproper but I don't think it is the end of the world for a much simpler implementation.

I can take this via kbuild-fixes with a proper Ack or it can go through -tip, does not matter to me.

Feel free to take though kbuild-fixes:

maintainer Acked-by on v1 1/1
#3 lore raw
In reply to Nathan Chancellor
Quoted 30 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

Quoted 7 lines

---
I realize that this will technically decend into tools/objtool twice during cleaning when running mrproper but I don't think it is the end of the world for a much simpler implementation.

I can take this via kbuild-fixes with a proper Ack or it can go through -tip, does not matter to me.

Thanks for fixing it!

Signature · 1 line
Josh
#4 lore raw

-next build error due to "kbuild: Leave objtool binary around with 'make clean'"

In reply to Nathan Chancellor
Quoted 17 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory
Quoted 5 lines

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

Thx for fixing this regression, sadly this caused my daily -next rpm builds for Fedora to fail on x86_64 during a "make mrproper":

""
kernel.spec:2485: InitBuildVars: Copy files
+ /usr/bin/make -s 'HOSTCFLAGS=-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' -j32 mrproper
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.check.o.cmd’: No such file or directory
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.elf.o.cmd’: No such file or directory [and many more like these]
""
For the full build log, see:
https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-42-x86_64/10183736-next-next-all/builder-live.log.gz

This is almost exactly the rpm spec file that is used in Fedora rawhide. The sections that causes this looks like this:

"""

    %{log_msg "InitBuildVars: Copy files"}
    %{make} %{?_smp_mflags} mrproper
    cp configs/$Config .config

"""

So it could be something strange in there that causes this, but from a quick look I did not see what. And reverting this patch makes things work again:
https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-42-x86_64/10184184-kernel/builder-live.log.gz

Ciao, Thorsten

Quoted 81 lines

---
I realize that this will technically decend into tools/objtool twice during cleaning when running mrproper but I don't think it is the end of the world for a much simpler implementation.

I can take this via kbuild-fixes with a proper Ack or it can go through

(quoted diff) +0 -2
-tip, does not matter to me.
---
 Makefile               | 8 ++++----
 tools/objtool/Makefile | 6 ++++--
 2 files changed, 8 insertions(+), 6 deletions(-)
Makefile +4 -4
index e944c6e71e81..d76d706a5580 100644
@@ -1497,13 +1497,13 @@ ifneq ($(wildcard $(resolve_btfids_O)),)
 	$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
 endif
 
-PHONY += objtool_clean
+PHONY += objtool_clean objtool_mrproper
 
 objtool_O = $(abspath $(objtree))/tools/objtool
 
-objtool_clean:
+objtool_clean objtool_mrproper:
 ifneq ($(wildcard $(objtool_O)),)
-	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) clean
+	$(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) $(patsubst objtool_%,%,$@)
 endif
 
 tools/: FORCE
@@ -1686,7 +1686,7 @@ PHONY += $(mrproper-dirs) mrproper
 $(mrproper-dirs):
 	$(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
 
-mrproper: clean $(mrproper-dirs)
+mrproper: clean objtool_mrproper $(mrproper-dirs)
 	$(call cmd,rmfiles)
 	@find . $(RCS_FIND_IGNORE) \
 		\( -name '*.rmeta' \) \
tools/objtool/Makefile +4 -3
index 6964175abdfd..50d3e38e6137 100644
@@ -142,13 +142,15 @@ $(LIBSUBCMD)-clean:
 	$(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT)
 
 clean: $(LIBSUBCMD)-clean
-	$(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL)
 	$(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/cpu-feature-names.c $(OUTPUT)fixdep
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep
 	$(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.objtool
 	$(Q)$(RM) -r -- $(OUTPUT)feature
 
+mrproper: clean
+	$(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL)
+
 FORCE:
 
-.PHONY: clean FORCE
+.PHONY: clean mrproper FORCE
 
---

base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260227-avoid-objtool-binary-removal-clean-83ce7fbcc8a1

Best regards,

Signature · 1 line
Nathan Chancellor <[email protected]>
#5 lore raw

Re: -next build error due to "kbuild: Leave objtool binary around with 'make clean'"

Quoted 37 lines · Thorsten Leemhuis
Quoted 17 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory
Quoted 5 lines

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

Thx for fixing this regression, sadly this caused my daily -next rpm builds for Fedora to fail on x86_64 during a "make mrproper":

""
kernel.spec:2485: InitBuildVars: Copy files
+ /usr/bin/make -s 'HOSTCFLAGS=-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' -j32 mrproper
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.check.o.cmd’: No such file or directory
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.elf.o.cmd’: No such file or directory [and many more like these]
""
For the full build log, see:
https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-42-x86_64/10183736-next-next-all/builder-live.log.gz

Quoted 6 lines

This is almost exactly the rpm spec file that is used in Fedora rawhide. The sections that causes this looks like this:

"""

    %{log_msg "InitBuildVars: Copy files"}
    %{make} %{?_smp_mflags} mrproper

And how would find -delete fail?

Does that mean that the files in question are broken links?

Does that mean in the clean phase these erren't broken?

When did they break?

Or does the objtool_clean run multiple times in parallel, once through the clean target, and once as dependency of the mrproper target?

Thanks

Michal

author maintainer
#6 lore raw

Re: -next build error due to "kbuild: Leave objtool binary around with 'make clean'"

Quoted 44 lines · Michal Suchánek
Quoted 43 lines · Thorsten Leemhuis
Quoted 17 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

After commit 68b4fe32d737 ("kbuild: Add objtool to top-level clean target"), running 'make clean' then attempting to build an external module with the resulting build directory fails with

  $ make ARCH=x86_64 O=build clean
  $ make -C build M=... MO=...
  ...
  /bin/sh: line 1: .../build/tools/objtool/objtool: No such file or directory
Quoted 5 lines

as 'make clean' removes the objtool binary.

Split the objtool clean target into mrproper and clean like Kbuild does and remove all generated artifacts with 'make clean' except for the objtool binary, which is removed with 'make mrproper'.

Thx for fixing this regression, sadly this caused my daily -next rpm builds for Fedora to fail on x86_64 during a "make mrproper":

""
kernel.spec:2485: InitBuildVars: Copy files
+ /usr/bin/make -s 'HOSTCFLAGS=-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' -j32 mrproper
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.check.o.cmd’: No such file or directory
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.elf.o.cmd’: No such file or directory [and many more like these]
""
For the full build log, see:
https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-42-x86_64/10183736-next-next-all/builder-live.log.gz

This is almost exactly the rpm spec file that is used in Fedora rawhide. The sections that causes this looks like this:

"""

    %{log_msg "InitBuildVars: Copy files"}
    %{make} %{?_smp_mflags} mrproper

...

Quoted 2 lines

Or does the objtool_clean run multiple times in parallel, once through the clean target, and once as dependency of the mrproper target?

More than likely this based on my reading of the submake processes from the build log. For what it's worth, I cannot reproduce this error on either a really fast or really slow build machine but it should not be hard to avoid by using 'xargs rm -f' like the rest of Kbuild does for removing things, which should suppress the error if the file does not exist. Thorsten, could you see if this diff makes a difference for you? If so, I'll squash it in with a note.

tools/objtool/Makefile +1 -1
index 50d3e38e6137..76bcd4e85de3 100644
@@ -142,7 +142,7 @@ $(LIBSUBCMD)-clean:
 	$(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT)
 
 clean: $(LIBSUBCMD)-clean
-	$(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
+	$(Q)find $(OUTPUT) \( -name '*.o' -o -name '\.*.cmd' -o -name '\.*.d' \) -type f -print | xargs $(RM)
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/cpu-feature-names.c $(OUTPUT)fixdep
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep
 	$(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.objtool
#7 lore raw

Re: -next build error due to "kbuild: Leave objtool binary around with 'make clean'"

Quoted 22 lines · Nathan Chancellor
Quoted 17 lines · Michal Suchánek
Quoted 16 lines · Thorsten Leemhuis
Quoted 2 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

[...]
Thx for fixing this regression, sadly this caused my daily -next rpm builds for Fedora to fail on x86_64 during a "make mrproper":

""
kernel.spec:2485: InitBuildVars: Copy files
+ /usr/bin/make -s 'HOSTCFLAGS=-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' -j32 mrproper
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.check.o.cmd’: No such file or directory
find: cannot delete ‘/builddir/build/BUILD/kernel-7.0.0-build/kernel-next-20260302/linux-7.0.0-0.0.next.20260302.121.vanilla.fc42.x86_64/tools/objtool/.elf.o.cmd’: No such file or directory [and many more like these]
""
For the full build log, see:
https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-42-x86_64/10183736-next-next-all/builder-live.log.gz

[...]

Quoted 2 lines

Or does the objtool_clean run multiple times in parallel, once through the clean target, and once as dependency of the mrproper target?

Quoted 6 lines

More than likely this based on my reading of the submake processes from the build log. For what it's worth, I cannot reproduce this error on either a really fast or really slow build machine but it should not be hard to avoid by using 'xargs rm -f' like the rest of Kbuild does for removing things, which should suppress the error if the file does not exist. Thorsten, could you see if this diff makes a difference for you?

Yeah, that makes things work again, thx!

Quoted 1 line

If so, I'll squash it in with a note.

Great, thx!

Ciao, Thorsten

Quoted 13 lines
tools/objtool/Makefile +1 -1
index 50d3e38e6137..76bcd4e85de3 100644
@@ -142,7 +142,7 @@ $(LIBSUBCMD)-clean:
 	$(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT)
 
 clean: $(LIBSUBCMD)-clean
-	$(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
+	$(Q)find $(OUTPUT) \( -name '*.o' -o -name '\.*.cmd' -o -name '\.*.d' \) -type f -print | xargs $(RM)
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/cpu-feature-names.c $(OUTPUT)fixdep
 	$(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep
 	$(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.objtool
author maintainer
#8 lore raw
In reply to Nathan Chancellor
Quoted 8 lines · Nathan Chancellor

The difference between 'make clean' and 'make mrproper' is documented in 'make help' as:

clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git kbuild-fixes

Thanks!

[1/1] kbuild: Leave objtool binary around with 'make clean'

      https://git.kernel.org/kbuild/c/fdb12c8a24a45

Please look out for regression or issue reports or other follow up comments, as they may result in the patch/series getting dropped or reverted. Patches applied to an "unstable" branch are accepted pending wider testing in -next and any post-commit review; they will generally be moved to the main branch in a week if no issues are found.

Best regards,

Signature · 1 line
Nathan Chancellor <[email protected]>