All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>,
	Jiri Olsa <jolsa@kernel.org>, Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andriin@fb.com>,
	Song Liu <songliubraving@fb.com>,
	Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>,
	Martin KaFai Lau <kafai@fb.com>, Yonghong Song <yhs@fb.com>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@chromium.org>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Michal Marek <michal.lkml@markovi.net>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>
Subject: Re: [PATCH bpf-next 4/4] kbuild: Add resolve_btfids clean to root clean target
Date: Wed, 10 Feb 2021 11:37:20 -0700	[thread overview]
Message-ID: <20210210183720.GA4030070@ubuntu-m3-large-x86> (raw)
In-Reply-To: <YCQmCwBSQuj+bi4q@krava>

On Wed, Feb 10, 2021 at 07:29:31PM +0100, Jiri Olsa wrote:
> On Wed, Feb 10, 2021 at 11:02:15AM -0700, Nathan Chancellor wrote:
> > On Wed, Feb 10, 2021 at 09:52:42AM -0800, Andrii Nakryiko wrote:
> > > On Wed, Feb 10, 2021 at 9:47 AM Nathan Chancellor <nathan@kernel.org> wrote:
> > > >
> > > > On Fri, Feb 05, 2021 at 01:40:20PM +0100, Jiri Olsa wrote:
> > > > > The resolve_btfids tool is used during the kernel build,
> > > > > so we should clean it on kernel's make clean.
> > > > >
> > > > > Invoking the the resolve_btfids clean as part of root
> > > > > 'make clean'.
> > > > >
> > > > > Acked-by: Song Liu <songliubraving@fb.com>
> > > > > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> > > > > ---
> > > > >  Makefile | 7 ++++++-
> > > > >  1 file changed, 6 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/Makefile b/Makefile
> > > > > index b0e4767735dc..159d9592b587 100644
> > > > > --- a/Makefile
> > > > > +++ b/Makefile
> > > > > @@ -1086,6 +1086,11 @@ ifdef CONFIG_STACK_VALIDATION
> > > > >    endif
> > > > >  endif
> > > > >
> > > > > +PHONY += resolve_btfids_clean
> > > > > +
> > > > > +resolve_btfids_clean:
> > > > > +     $(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(abspath $(objtree))/tools/bpf/resolve_btfids clean
> > > > > +
> > > > >  ifdef CONFIG_BPF
> > > > >  ifdef CONFIG_DEBUG_INFO_BTF
> > > > >    ifeq ($(has_libelf),1)
> > > > > @@ -1495,7 +1500,7 @@ vmlinuxclean:
> > > > >       $(Q)$(CONFIG_SHELL) $(srctree)/scripts/link-vmlinux.sh clean
> > > > >       $(Q)$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) clean)
> > > > >
> > > > > -clean: archclean vmlinuxclean
> > > > > +clean: archclean vmlinuxclean resolve_btfids_clean
> > > > >
> > > > >  # mrproper - Delete all generated files, including .config
> > > > >  #
> > > > > --
> > > > > 2.26.2
> > > > >
> > > >
> > > > This breaks running distclean on a clean tree (my script just
> > > > unconditionally runs distclean regardless of the tree state):
> > > >
> > > > $ make -s O=build distclean
> > > > ../../scripts/Makefile.include:4: *** O=/home/nathan/cbl/src/linux-next/build/tools/bpf/resolve_btfids does not exist.  Stop.
> > > >
> > > 
> > > 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
> 
> jirka

Yes, this seems to work fine for me as well.

Tested-by: Nathan Chancellor <nathan@kernel.org>

> ---
> 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)))
> +	$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
> +endif
>  
>  ifdef CONFIG_BPF
>  ifdef CONFIG_DEBUG_INFO_BTF
> 

  reply	other threads:[~2021-02-10 18:40 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-05 12:40 [PATCHv2 bpf-next 0/4] kbuild/resolve_btfids: Invoke resolve_btfids clean in root Makefile Jiri Olsa
2021-02-05 12:40 ` [PATCH bpf-next 1/4] tools/resolve_btfids: Build libbpf and libsubcmd in separate directories Jiri Olsa
2021-02-05 22:24   ` Andrii Nakryiko
2021-03-10 17:27   ` Viktor Jägersküpper
2021-03-10 19:27     ` Andrii Nakryiko
2021-03-10 22:42       ` Jiri Olsa
2021-02-05 12:40 ` [PATCH bpf-next 2/4] tools/resolve_btfids: Check objects before removing Jiri Olsa
2021-02-05 23:19   ` Andrii Nakryiko
2021-02-05 12:40 ` [PATCH bpf-next 3/4] tools/resolve_btfids: Set srctree variable unconditionally Jiri Olsa
2021-02-05 22:25   ` Andrii Nakryiko
2021-02-05 12:40 ` [PATCH bpf-next 4/4] kbuild: Add resolve_btfids clean to root clean target Jiri Olsa
2021-02-06  5:11   ` Amy Parker
2021-02-10 17:44   ` Nathan Chancellor
2021-02-10 17:52     ` Andrii Nakryiko
2021-02-10 18:02       ` Nathan Chancellor
2021-02-10 18:29         ` Jiri Olsa
2021-02-10 18:37           ` Nathan Chancellor [this message]
2021-02-10 19:26           ` Andrii Nakryiko
2021-02-11 12:17             ` Jiri Olsa
2021-02-12  3:30               ` Masahiro Yamada
2021-02-12 13:35                 ` Jiri Olsa
2021-02-10 19:23         ` Andrii Nakryiko
2021-02-10 18:14       ` Jiri Olsa
2021-02-05 22:27 ` [PATCHv2 bpf-next 0/4] kbuild/resolve_btfids: Invoke resolve_btfids clean in root Makefile Andrii Nakryiko
2021-02-05 22:32   ` Jiri Olsa
2021-02-06  0:00     ` Jiri Olsa
2021-02-09  5:36 ` Andrii Nakryiko
2021-02-09  9:30   ` Jiri Olsa
     [not found] <20210129134855.195810-1-jolsa@redhat.com>
2021-02-04 21:18 ` [PATCH " Jiri Olsa
2021-02-04 21:18   ` [PATCH bpf-next 4/4] kbuild: Add resolve_btfids clean to root clean target Jiri Olsa
2021-02-04 23:42     ` Song Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210210183720.GA4030070@ubuntu-m3-large-x86 \
    --to=nathan@kernel.org \
    --cc=andrii.nakryiko@gmail.com \
    --cc=andriin@fb.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=kafai@fb.com \
    --cc=kpsingh@chromium.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=netdev@vger.kernel.org \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.