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

From: Michal Suchánek <[email-masked]>
Date: Mon, 2 Mar 2026 20:43:57 +0100

On Mon, Mar 02, 2026 at 08:18:17PM +0100, Thorsten Leemhuis wrote:
> On 2/28/26 06:40, Nathan Chancellor wrote:
> > 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'.
> 
> 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

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