On Tue, Apr 02, 2024 at 09:41:16AM +1100, Stephen Rothwell wrote: > Hi all, > > After merging the perf tree, today's linux-next build (native i.e. ppc64le > perf) failed like this: > > make[3]: *** No rule to make target '/home/sfr/next/next/tools/include/uapi/linux/stat.h', needed by '/home/sfr/next/perf/libbpf/staticobjs/libbpf.o'. Stop. How is this built? Using O=/home/sfr/next/perf? > Maybe caused by commit > > f122b3d6d179 ("perf beauty: Introduce scrape script for the 'statx' syscall 'mask' argument") > > or > > a672af9139a8 ("tools headers: Remove almost unused copy of uapi/stat.h, add few conditional defines") > > or a combination of them? > > This is an incremental build but doing 'make -C tools/perf clean' and then > rebuilding works, so maybe there is a dependency missing? So I'm trying to revisit this, I did: ⬢[acme@toolbox perf-tools-next]$ rm -rf /tmp/build/$(basename $PWD)/ ; mkdir -p /tmp/build/$(basename $PWD)/ ⬢[acme@toolbox perf-tools-next]$ alias m='rm -rf ~/libexec/perf-core/ ; make -k CORESIGHT=1 O=/tmp/build/$(basename $PWD)/ -C tools/perf install-bin && perf test python' ⬢[acme@toolbox perf-tools-next]$ git remote update torvalds Fetching torvalds ⬢[acme@toolbox perf-tools-next]$ m <SNIP> LD /tmp/build/perf-tools-next/perf-in.o CC /tmp/build/perf-tools-next/pmu-events/pmu-events.o LD /tmp/build/perf-tools-next/pmu-events/pmu-events-in.o LINK /tmp/build/perf-tools-next/perf INSTALL binaries INSTALL tests INSTALL libperf-jvmti.so INSTALL libexec INSTALL perf-archive INSTALL perf-iostat INSTALL strace/groups INSTALL perl-scripts INSTALL python-scripts INSTALL dlfilters INSTALL perf_completion-script INSTALL perf-tip make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf' 17: 'import perf' in python : Ok ⬢[acme@toolbox perf-tools-next]$ Then left this there and merged perf-tools-next: ⬢[acme@toolbox perf-tools-next]$ git merge perf-tools-next Auto-merging MAINTAINERS Merge made by the 'ort' strategy. MAINTAINERS | 1 + tools/include/uapi/asm-generic/fcntl.h | 221 ----------- tools/include/uapi/linux/openat2.h | 43 --- tools/lib/perf/cpumap.c | 33 +- tools/lib/perf/include/perf/cpumap.h | 16 + tools/lib/perf/libperf.map | 4 + <SNIP> tools/perf/util/vdso.c | 48 +-- 186 files changed, 7217 insertions(+), 3829 deletions(-) delete mode 100644 tools/include/uapi/asm-generic/fcntl.h delete mode 100644 tools/include/uapi/linux/openat2.h rename tools/{ => perf/trace/beauty}/arch/x86/include/asm/irq_vectors.h (100%) rename tools/{ => perf/trace/beauty}/arch/x86/include/uapi/asm/prctl.h (100%) create mode 100755 tools/perf/trace/beauty/clone.sh create mode 100644 tools/perf/trace/beauty/fs_at_flags.c create mode 100755 tools/perf/trace/beauty/fs_at_flags.sh rename tools/{ => perf/trace/beauty}/include/uapi/linux/fcntl.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/fs.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/mount.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/prctl.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/sched.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/stat.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/usbdevice_fs.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/linux/vhost.h (100%) rename tools/{ => perf/trace/beauty}/include/uapi/sound/asound.h (100%) create mode 100755 tools/perf/trace/beauty/statx_mask.sh create mode 100644 tools/perf/ui/browsers/annotate-data.c create mode 100644 tools/perf/util/disasm.c create mode 100644 tools/perf/util/disasm.h ⬢[acme@toolbox perf-tools-next]$ And: ⬢[acme@toolbox perf-tools-next]$ m rm: cannot remove '/home/acme/libexec/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace/__pycache__/Core.cpython-312.pyc': Permission denied make: Entering directory '/home/acme/git/perf-tools-next/tools/perf' BUILD: Doing 'make -j28' parallel build Warning: Kernel ABI header differences: <SNIP> 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 ] ... libcapstone: [ on ] ... zlib: [ on ] ... lzma: [ on ] ... get_cpuid: [ on ] ... bpf: [ on ] ... libaio: [ on ] ... libzstd: [ on ] GEN /tmp/build/perf-tools-next/common-cmds.h LINK /tmp/build/perf-tools-next/libperf-jvmti.so INSTALL /tmp/build/perf-tools-next/libsubcmd/include/subcmd/run-command.h <SNIP> INSTALL libbpf_headers LD /tmp/build/perf-tools-next/libperf/libperf-in.o CLANG /tmp/build/perf-tools-next/util/bpf_skel/.tmp/augmented_raw_syscalls.bpf.o AR /tmp/build/perf-tools-next/libperf/libperf.a GENSKEL /tmp/build/perf-tools-next/util/bpf_skel/augmented_raw_syscalls.skel.h GEN /tmp/build/perf-tools-next/python/perf.cpython-312-x86_64-linux-gnu.so GEN /tmp/build/perf-tools-next/pmu-events/pmu-events.c CC /tmp/build/perf-tools-next/builtin-bench.o CC /tmp/build/perf-tools-next/builtin-annotate.o <SNIP> CC /tmp/build/perf-tools-next/util/bpf-event.o CC /tmp/build/perf-tools-next/util/bpf-utils.o CC /tmp/build/perf-tools-next/util/pfm.o LD /tmp/build/perf-tools-next/util/scripting-engines/perf-in.o LD /tmp/build/perf-tools-next/util/perf-in.o LD /tmp/build/perf-tools-next/perf-in.o CC /tmp/build/perf-tools-next/pmu-events/pmu-events.o LD /tmp/build/perf-tools-next/pmu-events/pmu-events-in.o LINK /tmp/build/perf-tools-next/perf INSTALL binaries INSTALL tests INSTALL libperf-jvmti.so INSTALL libexec INSTALL perf-archive INSTALL perf-iostat INSTALL strace/groups INSTALL perl-scripts INSTALL python-scripts INSTALL dlfilters INSTALL perf_completion-script INSTALL perf-tip make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf' 17: 'import perf' in python : Ok ⬢[acme@toolbox perf-tools-next]$ ⬢[acme@toolbox perf-tools-next]$ ls -la tools/include/uapi/linux/stat.h ls: cannot access 'tools/include/uapi/linux/stat.h': No such file or directory ⬢[acme@toolbox perf-tools-next]$ I'm not being able to reproduce that problem, can you see where am I doing some mistake in the above steps? Thanks, - Arnaldo