Re: [PATCH bpf-next 4/4] kbuild: Add resolve_btfids clean to root clean target
From: Jiri Olsa <hidden>
Date: 2021-02-11 12:21:51
Also in:
bpf, linux-kbuild
On Wed, Feb 10, 2021 at 11:26:28AM -0800, Andrii Nakryiko wrote: SNIP
quoted
quoted
quoted
Can't reproduce it. It works in all kinds of variants (relative and absolute O=, clean and not clean trees, etc). Jiri, please check as well.Odd, this reproduces for me on a completely clean checkout of bpf-next: $ git clone --depth=1 https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/ $ cd bpf-next $ make -s O=build distclean ../../scripts/Makefile.include:4: *** O=/tmp/bpf-next/build/tools/bpf/resolve_btfids does not exist. Stop. I do not really see how this could be environment related. It seems like this comes from tools/scripts/Makefile.include, where there is no guarantee that $(O) is created before being used like in the main Makefile?right, we need to handle the case where tools/bpf/resolve_btfids does not exist, patch below fixes it for me jirkaLooks good to me, please send it as a proper patch to bpf-next. But I'm curious, why is objtool not doing something like that? Is it not doing clean at all? Or does it do it in some different way?
yes, it's not connected to global make clean
quoted
---diff --git a/Makefile b/Makefile index 159d9592b587..ce9685961abe 100644 --- a/Makefile +++ b/Makefile@@ -1088,8 +1088,14 @@ endif PHONY += resolve_btfids_clean +resolve_btfids_O = $(abspath $(objtree))/tools/bpf/resolve_btfids + +# tools/bpf/resolve_btfids directory might not exist +# in output directory, skip its clean in that case resolve_btfids_clean: - $(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(abspath $(objtree))/tools/bpf/resolve_btfids clean +ifneq (,$(wildcard $(resolve_btfids_O)))nit: kind of backwards, usually it's in a `ifneq($var,)` form
ok thanks, jirka