bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrii Nakryiko <andrii.nakryiko@gmail.com>
To: Quentin Monnet <quentin@isovalent.com>, Yucong Sun <fallentree@fb.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>,
	Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH bpf-next 6/9] bpf: iterators: install libbpf headers when building
Date: Fri, 1 Oct 2021 15:43:46 -0700	[thread overview]
Message-ID: <CAEf4BzYeTQjYAQo+RqtU-z56GQ0DnWO0pzfvr23qn3A8hEfrQA@mail.gmail.com> (raw)
In-Reply-To: <37d25d01-c6ad-4ff9-46e2-236c60369171@isovalent.com>

On Fri, Oct 1, 2021 at 4:06 AM Quentin Monnet <quentin@isovalent.com> wrote:
>
> 2021-09-30 13:17 UTC+0100 ~ Quentin Monnet <quentin@isovalent.com>
> > 2021-09-30 12:33 UTC+0100 ~ Quentin Monnet <quentin@isovalent.com>
> >> API headers from libbpf should not be accessed directly from the
> >> library's source directory. Instead, they should be exported with "make
> >> install_headers". Let's make sure that bpf/preload/iterators/Makefile
> >> installs the headers properly when building.
> >
> > CI complains when trying to build
> > kernel/bpf/preload/iterators/iterators.o. I'll look more into this.
>
> My error was in fact on the previous patch for kernel/preload/Makefile,
> where iterators.o is handled. The resulting Makefile in my v1 contained:
>
>         bpf_preload_umd-objs := iterators/iterators.o
>         bpf_preload_umd-userldlibs := $(LIBBPF_A) -lelf -lz
>
>         $(obj)/bpf_preload_umd: $(LIBBPF_A)
>
> This declares a dependency on $(LIBBPF_A) for building the final
> bpf_preload_umd target, when iterators/iterators.o is linked against the
> libraries. It does not declare the dependency for iterators/iterators.o
> itself. So when we attempt to build the object file, libbpf has not been
> compiled yet (not an issue per se), and the API headers from libbpf have
> not been installed and made available to iterators.o, causing the build
> to fail.
>
> Before this patch, there was no issue because the headers would be
> included directly from tools/lib/bpf, so they would always be present.
> I'll fix this by adding the relevant dependency, and send a v2.
>
> As a side note, I couldn't reproduce the issue locally or in the VM for
> the selftests, I'm not sure why. I struggled to get helpful logs from
> the kernel CI (kernel build in non-verbose mode), so I ended up copying
> the CI infra (running on kernel-patches/bpf on GitHub) to my own GitHub
> repository to add debug info and do other runs without re-posting every
> time to the mailing list. In case anyone else is interested, I figured I
> might share the steps:
>
> - Clone the linux repo on GitHub, push the bpf-next branch
> - Copy all files and directories from the kernel-patches/vmtest GitHub
> repo (including the .github directory) to the root of my linux repo, on
> my development branch.
> - Update the checks on "kernel-patches/bpf" repository name in
> .github/workflows/test.yaml, to avoid pulling new Linux sources and
> overwriting the files on my branch.
> - (Add as much build debug info as necessary.)
> - Push the branch to GitHub and open a PR against my own bpf-next
> branch. This should trigger the Action.
>
> Or was there a simpler way to test my set on the CI, that I ignore?

Don't know, I never tried :) But maybe Yucong (cc'ed) knows some tips
and tricks?

>
> Quentin

  reply	other threads:[~2021-10-01 22:44 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-30 11:32 [PATCH bpf-next 0/9] install libbpf headers when using the library Quentin Monnet
2021-09-30 11:32 ` [PATCH bpf-next 1/9] tools: bpftool: remove unused includes to <bpf/bpf_gen_internal.h> Quentin Monnet
2021-09-30 11:32 ` [PATCH bpf-next 2/9] tools: bpftool: install libbpf headers instead of including the dir Quentin Monnet
2021-09-30 11:33 ` [PATCH bpf-next 3/9] tools: resolve_btfids: install libbpf headers when building Quentin Monnet
2021-09-30 11:33 ` [PATCH bpf-next 4/9] tools: runqslower: " Quentin Monnet
2021-09-30 11:33 ` [PATCH bpf-next 5/9] bpf: preload: " Quentin Monnet
2021-09-30 11:33 ` [PATCH bpf-next 6/9] bpf: iterators: " Quentin Monnet
2021-09-30 12:17   ` Quentin Monnet
2021-10-01 11:06     ` Quentin Monnet
2021-10-01 22:43       ` Andrii Nakryiko [this message]
2021-09-30 11:33 ` [PATCH bpf-next 7/9] samples/bpf: " Quentin Monnet
2021-09-30 11:33 ` [PATCH bpf-next 8/9] samples/bpf: update .gitignore Quentin Monnet
2021-09-30 11:33 ` [PATCH bpf-next 9/9] selftests/bpf: better clean up for runqslower in test_bpftool_build.sh Quentin Monnet

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=CAEf4BzYeTQjYAQo+RqtU-z56GQ0DnWO0pzfvr23qn3A8hEfrQA@mail.gmail.com \
    --to=andrii.nakryiko@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=fallentree@fb.com \
    --cc=netdev@vger.kernel.org \
    --cc=quentin@isovalent.com \
    --subject='Re: [PATCH bpf-next 6/9] bpf: iterators: install libbpf headers when building' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).