make -C tools/perf build-test failing on aarch64

Arnaldo Carvalho de Melo posted 1 patch 7 months, 1 week ago
make -C tools/perf build-test failing on aarch64
Posted by Arnaldo Carvalho de Melo 7 months, 1 week ago
Hi,

	I noticed that upstream is failing on aarch64:

acme@raspberrypi:~/git/perf-tools-next $ uname -a
Linux raspberrypi 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux
acme@raspberrypi:~/git/perf-tools-next $ grep -m1 Model /proc/cpuinfo 
Model		: Raspberry Pi 5 Model B Rev 1.1
acme@raspberrypi:~/git/perf-tools-next $ 
acme@raspberrypi:~/git/perf-tools-next $ git log --oneline -1 ; time make -C tools/perf build-test
cd17a9b1a779 (HEAD -> perf-tools-next, number/perf-tools-next, number/HEAD) perf test demangle-ocaml: Switch to using dso__demangle_sym()
make: Entering directory '/home/acme/git/perf-tools-next/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make[1]: *** [tests/make:351: tarpkg] Error 2
make: *** [Makefile:109: build-test] Error 2
make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf'

real	0m12.130s
user	0m12.653s
sys	0m2.091s
acme@raspberrypi:~/git/perf-tools-next $ 

I noticed that it is using some files from outside tools/, i.e. kernel
files, so I tried adding those (and its dependencies) to the
tools/perf/MANIFEST, but stumbled at this point:

acme@raspberrypi:~/git/perf-tools-next $ git diff
diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
index 364b55b00b48..3fe627c4b599 100644
--- a/tools/perf/MANIFEST
+++ b/tools/perf/MANIFEST
@@ -28,3 +28,6 @@ scripts/bpf_doc.py
 tools/bpf/bpftool
 kernel/bpf/disasm.c
 kernel/bpf/disasm.h
+scripts/Kbuild.include
+scripts/Makefile.asm-headers
+include/uapi/asm-generic/Kbuild
acme@raspberrypi:~/git/perf-tools-next $

To test it directly:

acme@raspberrypi:~/git/perf-tools-next $ sh -x tools/perf/tests/perf-targz-src-pkg tools/perf 
+ set -e
+ PERF=tools/perf
+ cd tools/perf/../..
+ make perf-targz-src-pkg
  ARCHIVE perf-6.15.0-rc5.tar.gz
+ ls -rt perf-6.15.0-rc5.tar.gz
+ TARBALL=perf-6.15.0-rc5.tar.gz
+ mktemp -d
+ TMP_DEST=/tmp/tmp.wzVpK2Gmvw
+ tar xf perf-6.15.0-rc5.tar.gz -C /tmp/tmp.wzVpK2Gmvw
+ rm -f perf-6.15.0-rc5.tar.gz
+ cd -
+ make -C /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf
make: Entering directory '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf'
  BUILD:   Doing 'make -j4' parallel build

Auto-detecting system features:
...                                   libdw: [ on  ]
...                                   glibc: [ on  ]
...                                  libelf: [ on  ]
...                                 libnuma: [ on  ]
...                  numa_num_possible_cpus: [ on  ]
...                                 libperl: [ on  ]
...                               libpython: [ on  ]
...                               libcrypto: [ on  ]
...                             libcapstone: [ on  ]
...                               llvm-perf: [ on  ]
...                                    zlib: [ on  ]
...                                    lzma: [ on  ]
...                               get_cpuid: [ OFF ]
...                                     bpf: [ on  ]
...                                  libaio: [ on  ]
...                                 libzstd: [ on  ]

  PERF_VERSION = 6.15.rc5.gcd17a9b1a779
  GEN     common-cmds.h
  GEN     /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/arch/arm64/include/generated/asm/sysreg-defs.h
  CC      jvmti/libjvmti.o
  GEN     perf-archive
  GEN     perf-iostat
  CC      dlfilters/dlfilter-test-api-v0.o
  CC      dlfilters/dlfilter-test-api-v2.o
  CC      dlfilters/dlfilter-show-cycles.o
  CC      jvmti/jvmti_agent.o
  CC      jvmti/libstring.o
  CC      jvmti/libctype.o
  MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/array.o
make[4]: *** No rule to make target '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libperf/arch/arm64/include/generated/uapi/asm/unistd_64.h'.  Stop.
make[3]: *** [Makefile:108: uapi-asm-generic] Error 2
make[2]: *** [Makefile.perf:973: /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libperf/libperf.a] Error 2
make[2]: *** Waiting for unfinished jobs....
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/cpu.h
  MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
  MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/fs.o
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/tracing_path.o
  LD      jvmti/jvmti-in.o
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/cpu.o
  LD      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/libapi-in.o
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/debug.o
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/debug.h
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/io.h
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/io_dir.h
  MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/cgroup.o
  CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/str_error_r.o
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fd/array.h
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fs/fs.h
  INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fs/tracing_path.h
  INSTALL libapi_headers
  LD      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/libapi-in.o
  LD      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/libapi-in.o
  AR      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/libapi.a
make[1]: *** [Makefile.perf:290: sub-make] Error 2
make: *** [Makefile:76: all] Error 2
make: Leaving directory '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf'
acme@raspberrypi:~/git/perf-tools-next $

I think this is related to:

commit bfb713ea53c746b07ae69fe97fa9b5388e4f34f9 (perf-tools)
Author: James Clark <james.clark@linaro.org>
Date:   Thu Apr 17 14:55:50 2025 +0100

    perf tools: Fix arm64 build by generating unistd_64.h

Can you please take a look?

Thanks a lot,

- Arnaldo
Re: make -C tools/perf build-test failing on aarch64
Posted by James Clark 7 months, 1 week ago

On 10/05/2025 2:42 am, Arnaldo Carvalho de Melo wrote:
> Hi,
> 
> 	I noticed that upstream is failing on aarch64:
> 
> acme@raspberrypi:~/git/perf-tools-next $ uname -a
> Linux raspberrypi 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux
> acme@raspberrypi:~/git/perf-tools-next $ grep -m1 Model /proc/cpuinfo
> Model		: Raspberry Pi 5 Model B Rev 1.1
> acme@raspberrypi:~/git/perf-tools-next $
> acme@raspberrypi:~/git/perf-tools-next $ git log --oneline -1 ; time make -C tools/perf build-test
> cd17a9b1a779 (HEAD -> perf-tools-next, number/perf-tools-next, number/HEAD) perf test demangle-ocaml: Switch to using dso__demangle_sym()
> make: Entering directory '/home/acme/git/perf-tools-next/tools/perf'
> - tarpkg: ./tests/perf-targz-src-pkg .
> make[1]: *** [tests/make:351: tarpkg] Error 2
> make: *** [Makefile:109: build-test] Error 2
> make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf'
> 
> real	0m12.130s
> user	0m12.653s
> sys	0m2.091s
> acme@raspberrypi:~/git/perf-tools-next $
> 
> I noticed that it is using some files from outside tools/, i.e. kernel
> files, so I tried adding those (and its dependencies) to the
> tools/perf/MANIFEST, but stumbled at this point:
> 
> acme@raspberrypi:~/git/perf-tools-next $ git diff
> diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
> index 364b55b00b48..3fe627c4b599 100644
> --- a/tools/perf/MANIFEST
> +++ b/tools/perf/MANIFEST
> @@ -28,3 +28,6 @@ scripts/bpf_doc.py
>   tools/bpf/bpftool
>   kernel/bpf/disasm.c
>   kernel/bpf/disasm.h
> +scripts/Kbuild.include
> +scripts/Makefile.asm-headers
> +include/uapi/asm-generic/Kbuild
> acme@raspberrypi:~/git/perf-tools-next $
> 
> To test it directly:
> 
> acme@raspberrypi:~/git/perf-tools-next $ sh -x tools/perf/tests/perf-targz-src-pkg tools/perf
> + set -e
> + PERF=tools/perf
> + cd tools/perf/../..
> + make perf-targz-src-pkg
>    ARCHIVE perf-6.15.0-rc5.tar.gz
> + ls -rt perf-6.15.0-rc5.tar.gz
> + TARBALL=perf-6.15.0-rc5.tar.gz
> + mktemp -d
> + TMP_DEST=/tmp/tmp.wzVpK2Gmvw
> + tar xf perf-6.15.0-rc5.tar.gz -C /tmp/tmp.wzVpK2Gmvw
> + rm -f perf-6.15.0-rc5.tar.gz
> + cd -
> + make -C /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf
> make: Entering directory '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf'
>    BUILD:   Doing 'make -j4' parallel build
> 
> Auto-detecting system features:
> ...                                   libdw: [ on  ]
> ...                                   glibc: [ on  ]
> ...                                  libelf: [ on  ]
> ...                                 libnuma: [ on  ]
> ...                  numa_num_possible_cpus: [ on  ]
> ...                                 libperl: [ on  ]
> ...                               libpython: [ on  ]
> ...                               libcrypto: [ on  ]
> ...                             libcapstone: [ on  ]
> ...                               llvm-perf: [ on  ]
> ...                                    zlib: [ on  ]
> ...                                    lzma: [ on  ]
> ...                               get_cpuid: [ OFF ]
> ...                                     bpf: [ on  ]
> ...                                  libaio: [ on  ]
> ...                                 libzstd: [ on  ]
> 
>    PERF_VERSION = 6.15.rc5.gcd17a9b1a779
>    GEN     common-cmds.h
>    GEN     /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/arch/arm64/include/generated/asm/sysreg-defs.h
>    CC      jvmti/libjvmti.o
>    GEN     perf-archive
>    GEN     perf-iostat
>    CC      dlfilters/dlfilter-test-api-v0.o
>    CC      dlfilters/dlfilter-test-api-v2.o
>    CC      dlfilters/dlfilter-show-cycles.o
>    CC      jvmti/jvmti_agent.o
>    CC      jvmti/libstring.o
>    CC      jvmti/libctype.o
>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/array.o
> make[4]: *** No rule to make target '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libperf/arch/arm64/include/generated/uapi/asm/unistd_64.h'.  Stop.
> make[3]: *** [Makefile:108: uapi-asm-generic] Error 2
> make[2]: *** [Makefile.perf:973: /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libperf/libperf.a] Error 2
> make[2]: *** Waiting for unfinished jobs....
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/cpu.h
>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/fs.o
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/tracing_path.o
>    LD      jvmti/jvmti-in.o
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/cpu.o
>    LD      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/libapi-in.o
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/debug.o
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/debug.h
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/io.h
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/io_dir.h
>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/cgroup.o
>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/str_error_r.o
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fd/array.h
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fs/fs.h
>    INSTALL /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fs/tracing_path.h
>    INSTALL libapi_headers
>    LD      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/libapi-in.o
>    LD      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/libapi-in.o
>    AR      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/libapi.a
> make[1]: *** [Makefile.perf:290: sub-make] Error 2
> make: *** [Makefile:76: all] Error 2
> make: Leaving directory '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf'
> acme@raspberrypi:~/git/perf-tools-next $
> 
> I think this is related to:
> 
> commit bfb713ea53c746b07ae69fe97fa9b5388e4f34f9 (perf-tools)
> Author: James Clark <james.clark@linaro.org>
> Date:   Thu Apr 17 14:55:50 2025 +0100
> 
>      perf tools: Fix arm64 build by generating unistd_64.h
> 
> Can you please take a look?
> 
> Thanks a lot,
> 
> - Arnaldo

Hmm yeah looks like it's caused by that. I'm travelling tomorrow but 
I'll try to take a look.

Thanks
James
Re: make -C tools/perf build-test failing on aarch64
Posted by James Clark 7 months, 1 week ago

On 11/05/2025 18:46, James Clark wrote:
> 
> 
> On 10/05/2025 2:42 am, Arnaldo Carvalho de Melo wrote:
>> Hi,
>>
>>     I noticed that upstream is failing on aarch64:
>>
>> acme@raspberrypi:~/git/perf-tools-next $ uname -a
>> Linux raspberrypi 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 
>> 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux
>> acme@raspberrypi:~/git/perf-tools-next $ grep -m1 Model /proc/cpuinfo
>> Model        : Raspberry Pi 5 Model B Rev 1.1
>> acme@raspberrypi:~/git/perf-tools-next $
>> acme@raspberrypi:~/git/perf-tools-next $ git log --oneline -1 ; time 
>> make -C tools/perf build-test
>> cd17a9b1a779 (HEAD -> perf-tools-next, number/perf-tools-next, 
>> number/HEAD) perf test demangle-ocaml: Switch to using 
>> dso__demangle_sym()
>> make: Entering directory '/home/acme/git/perf-tools-next/tools/perf'
>> - tarpkg: ./tests/perf-targz-src-pkg .
>> make[1]: *** [tests/make:351: tarpkg] Error 2
>> make: *** [Makefile:109: build-test] Error 2
>> make: Leaving directory '/home/acme/git/perf-tools-next/tools/perf'
>>
>> real    0m12.130s
>> user    0m12.653s
>> sys    0m2.091s
>> acme@raspberrypi:~/git/perf-tools-next $
>>
>> I noticed that it is using some files from outside tools/, i.e. kernel
>> files, so I tried adding those (and its dependencies) to the
>> tools/perf/MANIFEST, but stumbled at this point:
>>
>> acme@raspberrypi:~/git/perf-tools-next $ git diff
>> diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
>> index 364b55b00b48..3fe627c4b599 100644
>> --- a/tools/perf/MANIFEST
>> +++ b/tools/perf/MANIFEST
>> @@ -28,3 +28,6 @@ scripts/bpf_doc.py
>>   tools/bpf/bpftool
>>   kernel/bpf/disasm.c
>>   kernel/bpf/disasm.h
>> +scripts/Kbuild.include
>> +scripts/Makefile.asm-headers
>> +include/uapi/asm-generic/Kbuild
>> acme@raspberrypi:~/git/perf-tools-next $
>>
>> To test it directly:
>>
>> acme@raspberrypi:~/git/perf-tools-next $ sh -x 
>> tools/perf/tests/perf-targz-src-pkg tools/perf
>> + set -e
>> + PERF=tools/perf
>> + cd tools/perf/../..
>> + make perf-targz-src-pkg
>>    ARCHIVE perf-6.15.0-rc5.tar.gz
>> + ls -rt perf-6.15.0-rc5.tar.gz
>> + TARBALL=perf-6.15.0-rc5.tar.gz
>> + mktemp -d
>> + TMP_DEST=/tmp/tmp.wzVpK2Gmvw
>> + tar xf perf-6.15.0-rc5.tar.gz -C /tmp/tmp.wzVpK2Gmvw
>> + rm -f perf-6.15.0-rc5.tar.gz
>> + cd -
>> + make -C /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf
>> make: Entering directory '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf'
>>    BUILD:   Doing 'make -j4' parallel build
>>
>> Auto-detecting system features:
>> ...                                   libdw: [ on  ]
>> ...                                   glibc: [ on  ]
>> ...                                  libelf: [ on  ]
>> ...                                 libnuma: [ on  ]
>> ...                  numa_num_possible_cpus: [ on  ]
>> ...                                 libperl: [ on  ]
>> ...                               libpython: [ on  ]
>> ...                               libcrypto: [ on  ]
>> ...                             libcapstone: [ on  ]
>> ...                               llvm-perf: [ on  ]
>> ...                                    zlib: [ on  ]
>> ...                                    lzma: [ on  ]
>> ...                               get_cpuid: [ OFF ]
>> ...                                     bpf: [ on  ]
>> ...                                  libaio: [ on  ]
>> ...                                 libzstd: [ on  ]
>>
>>    PERF_VERSION = 6.15.rc5.gcd17a9b1a779
>>    GEN     common-cmds.h
>>    GEN     
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/arch/arm64/include/generated/asm/sysreg-defs.h
>>    CC      jvmti/libjvmti.o
>>    GEN     perf-archive
>>    GEN     perf-iostat
>>    CC      dlfilters/dlfilter-test-api-v0.o
>>    CC      dlfilters/dlfilter-test-api-v2.o
>>    CC      dlfilters/dlfilter-show-cycles.o
>>    CC      jvmti/jvmti_agent.o
>>    CC      jvmti/libstring.o
>>    CC      jvmti/libctype.o
>>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/
>>    CC      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/array.o
>> make[4]: *** No rule to make target 
>> '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libperf/arch/arm64/include/generated/uapi/asm/unistd_64.h'.  Stop.
>> make[3]: *** [Makefile:108: uapi-asm-generic] Error 2
>> make[2]: *** [Makefile.perf:973: 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libperf/libperf.a] Error 2
>> make[2]: *** Waiting for unfinished jobs....
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/cpu.h
>>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
>>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
>>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/fs.o
>>    CC      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/tracing_path.o
>>    LD      jvmti/jvmti-in.o
>>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/cpu.o
>>    LD      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fd/libapi-in.o
>>    CC      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/debug.o
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/debug.h
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/io.h
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/io_dir.h
>>    MKDIR   /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/
>>    CC      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/cgroup.o
>>    CC      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/str_error_r.o
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fd/array.h
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fs/fs.h
>>    INSTALL 
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/include/api/fs/tracing_path.h
>>    INSTALL libapi_headers
>>    LD      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/fs/libapi-in.o
>>    LD      
>> /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/libapi-in.o
>>    AR      /tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf/libapi/libapi.a
>> make[1]: *** [Makefile.perf:290: sub-make] Error 2
>> make: *** [Makefile:76: all] Error 2
>> make: Leaving directory '/tmp/tmp.wzVpK2Gmvw/perf-6.15.0-rc5/tools/perf'
>> acme@raspberrypi:~/git/perf-tools-next $
>>
>> I think this is related to:
>>
>> commit bfb713ea53c746b07ae69fe97fa9b5388e4f34f9 (perf-tools)
>> Author: James Clark <james.clark@linaro.org>
>> Date:   Thu Apr 17 14:55:50 2025 +0100
>>
>>      perf tools: Fix arm64 build by generating unistd_64.h
>>
>> Can you please take a look?
>>
>> Thanks a lot,
>>
>> - Arnaldo
> 
> Hmm yeah looks like it's caused by that. I'm travelling tomorrow but 
> I'll try to take a look.
> 
> Thanks
> James
> 


Sent the fix, hopefully 3rd time lucky.

I know there is the build-test target but I had let my setup bitrot so I 
wasn't running it. I don't know if you have ever shared any of your 
docker containers that you use for build testing?

I will also try to get that target added to our CI. We're only running a 
normal build and then "perf test" there.

Thanks
James
Re: make -C tools/perf build-test failing on aarch64
Posted by Arnaldo Carvalho de Melo 7 months, 1 week ago
On Tue, May 13, 2025 at 11:05:16AM +0100, James Clark wrote:
> On 11/05/2025 18:46, James Clark wrote:
> > On 10/05/2025 2:42 am, Arnaldo Carvalho de Melo wrote:
> > >     I noticed that upstream is failing on aarch64:

<SNIP>

> > > I think this is related to:

> > > commit bfb713ea53c746b07ae69fe97fa9b5388e4f34f9 (perf-tools)
> > > Author: James Clark <james.clark@linaro.org>
> > > Date:   Thu Apr 17 14:55:50 2025 +0100

> > >      perf tools: Fix arm64 build by generating unistd_64.h

> > > Can you please take a look?

> > Hmm yeah looks like it's caused by that. I'm travelling tomorrow but
> > I'll try to take a look.
 
> Sent the fix, hopefully 3rd time lucky.

Thanks a bunch! It seems we will not need a 4th. :-)
 
> I know there is the build-test target but I had let my setup bitrot so I
> wasn't running it. I don't know if you have ever shared any of your docker
> containers that you use for build testing?

I keep them at:

https://github.com/acmel/linux-tools-container-builds

The README should be enough to get you going, if you find some
difficulty, please lemme know.

I use this since forever and made them available at github when Daniel
Bristot started maintaining his tools in the kernels sources, the idea
was for him to also use to test build his tools.

It'll be great if you find them useful and, better, wire it up to some
sort of CI you're using.

It does a subset of what 'make -C tools/perf build-test' does, but the
idea for them is to switch to do the full build-test target and also to
run 'perf test', that would be restricted to whatever perms a the
containers are given.

Nowadays with parallel 'perf test' and it having being polished to work
with less perms, that seems like a worthy goal to pursue.
 
> I will also try to get that target added to our CI. We're only running a
> normal build and then "perf test" there.

That will be really nice of you, wiring up these things so that when I
run it all goes as expected will be great!

- Arnaldo