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

From: Alexei Starovoitov
Date: Wed Jan 15 2020 - 16:19:07 EST


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.