Re: [PATCH bpf-next] perf build: Install libbpf headers locally when building
From: Arnaldo Carvalho de Melo <acme@kernel.org>
Date: 2021-11-06 20:12:57
Also in:
bpf, lkml
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:quoted
On Thu, Nov 4, 2021 at 7:02 PM Quentin Monnet [off-list ref] wrote:quoted
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 <redacted> --- 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 it breaks: ⬢[acme@toolbox perf]$ make -C tools clean > /dev/null 2>&1 ⬢[acme@toolbox perf]$ make JOBS=1 -C tools/perf make: Entering directory '/var/home/acme/git/perf/tools/perf' BUILD: Doing 'make -j1' parallel build HOSTCC fixdep.o HOSTLD fixdep-in.o LINK fixdep <SNIP ABI sync warnings> Auto-detecting system features: ... dwarf: [ on ] ... dwarf_getlocations: [ on ] ... glibc: [ on ] ... libbfd: [ on ] ... libbfd-buildid: [ on ] ... libcap: [ on ] ... libelf: [ on ] ... libnuma: [ on ] ... numa_num_possible_cpus: [ on ] ... libperl: [ on ] ... libpython: [ on ] ... libcrypto: [ on ] ... libunwind: [ on ] ... libdw-dwarf-unwind: [ on ] ... zlib: [ on ] ... lzma: [ on ] ... get_cpuid: [ on ] ... bpf: [ on ] ... libaio: [ on ] ... libzstd: [ on ] ... disassembler-four-args: [ on ] CC fd/array.o LD fd/libapi-in.o CC fs/fs.o CC fs/tracing_path.o CC fs/cgroup.o LD fs/libapi-in.o CC cpu.o CC debug.o CC str_error_r.o LD libapi-in.o AR libapi.a CC exec-cmd.o CC help.o CC pager.o CC parse-options.o CC run-command.o CC sigchain.o CC subcmd-config.o LD libsubcmd-in.o AR libsubcmd.a CC core.o CC cpumap.o CC threadmap.o CC evsel.o CC evlist.o CC mmap.o CC zalloc.o CC xyarray.o CC lib.o LD libperf-in.o AR libperf.a make[2]: *** No rule to make target 'libbpf', needed by 'libbpf/libbpf.a'. Stop. make[1]: *** [Makefile.perf:240: sub-make] Error 2 make: *** [Makefile:70: all] Error 2 make: Leaving directory '/var/home/acme/git/perf/tools/perf' ⬢[acme@toolbox perf]$ Trying to fix... - Arnaldo