Subject: Re: [PATCH bpf-next v2 00/10] tools: Use consistent libbpf include paths everywhere

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Wed, 15 Jan 2020 23:09:44 +0100

Alexei Starovoitov <[email-masked]> writes:

> On Wed, Jan 15, 2020 at 03:12:48PM +0100, Toke Høiland-Jørgensen wrote:
>> The recent commit 6910d7d3867a ("selftests/bpf: Ensure bpf_helper_defs.h are
>> taken from selftests dir") broke compilation against libbpf if it is installed
>> on the system, and $INCLUDEDIR/bpf is not in the include path.
>> 
>> Since having the bpf/ subdir of $INCLUDEDIR in the include path has never been a
>> requirement for building against libbpf before, this needs to be fixed. One
>> option is to just revert the offending commit and figure out a different way to
>> achieve what it aims for. However, this series takes a different approach:
>> Changing all in-tree users of libbpf to consistently use a bpf/ prefix in
>> #include directives for header files from libbpf.
>
> I don't think such approach will work in all cases.
> Consider the user installing libbpf headers into /home/somebody/include/bpf/,
> passing that path to -I and trying to build bpf progs
> that do #include "bpf_helpers.h"...
> In the current shape of libbpf everything will compile fine,
> but after patch 8 of this series the compiler will not find bpf/bpf_helper_defs.h.
> So I think we have no choice, but to revert that part of Andrii's patch.
> Note that doing #include "" for additional library headers is a common practice.
> There was nothing wrong about #include "bpf_helper_defs.h" in bpf_helpers.h.

OK, I'll take another look at that bit and see if I can get it to work
with #include "bpf_helper_defs.h" and still function with the read-only
tree (and avoid stale headers).

-Toke