Re: [BUG] Re: [PATCH bpf-next] perf build: Install libbpf headers locally when building

Quentin Monnet
2021-11-07T00:21:31Z

2021-11-06 18:20 UTC-0300 ~ Arnaldo Carvalho de Melo <acme@kernel.org>
> Em Sat, Nov 06, 2021 at 06:05:07PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Sat, Nov 06, 2021 at 05:12:48PM -0300, Arnaldo Carvalho de Melo escreveu:
>>> Em Sat, Nov 06, 2021 at 04:29:16PM -0300, Arnaldo Carvalho de Melo escreveu:
>>>> Em Fri, Nov 05, 2021 at 11:38:50AM -0700, Andrii Nakryiko escreveu:
>>>>> On Thu, Nov 4, 2021 at 7:02 PM Quentin Monnet <quentin@isovalent.com> wrote:
>>>>>>
>>>>>> 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 adjust perf's Makefile to install those headers
>>>>>> locally when building libbpf.
>>>>>>
>>>>>> Signed-off-by: Quentin Monnet <quentin@isovalent.com>
>>>>>> ---
>>>>>> Note: Sending to bpf-next because it's directly related to libbpf, and
>>>>>> to similar patches merged through bpf-next, but maybe Arnaldo prefers to
>>>>>> take it?
>>>>>
>>>>> Arnaldo would know better how to thoroughly test it, so I'd prefer to
>>>>> route this through perf tree. Any objections, Arnaldo?
>>>>
>>>> Preliminary testing passed for 'BUILD_BPF_SKEL=1' with without
>>>> LIBBPF_DYNAMIC=1 (using the system's libbpf-devel to build perf), so far
>>>> so good, so I tentatively applied it, will see with the full set of
>>>> containers.
>>>
>>> Because all the preliminary tests used O= to have that OUTPUT variable
>>> set, when we do simply:
>>>
>>> make -C tools/perf
>>
>> So I'll have to remove it now as my container builds test both O= and
>> in-place builds (make -C tools/perf), I know many people (Jiri for
>> instance) don't use O=.
>>
>> I tried to fix this but run out of time today, visits arriving soon, so
>> I'll try to come back to this tomorrow early morning, to push what I
>> have in to Linus, that is blocked by this now :-\
>
> What I have, with your patch, is at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tmp.perf/core
>
> It has both patches, as its needed for the BUILD_BPF_SKEL=1 mode to
> build correctly with/without LIBBPF_DYNAMIC=1.

Hi Arnaldo, thanks for the review and testing. Apologies, I missed that
the recipe for the $(LIBBPF_OUTPUT) directory was located under the
"ifdef BUILD_BPF_SKEL". I'm sending a v2 that will handle this case better.

Quentin