Re: [backport PATCH 0/2] stable v5.15, v5.10 and v5.4: fix perf build errors

From: Ian Rogers
Date: Mon Apr 17 2023 - 13:20:50 EST


On Mon, Apr 17, 2023 at 5:30 AM Anders Roxell <anders.roxell@xxxxxxxxxx> wrote:
>
> Hi,
>
> I would like to see these patches backported. They are needed so perf
> can be cross compiled with gcc on v5.15, v5.10 and v5.4.

Thanks Anders, why not just use the latest perf for these kernels?
Perhaps this discussion is relevant:
https://lore.kernel.org/linux-perf-users/0b1c5f9af241327786a996a3ddd61602b5a15987.camel@xxxxxxxxxxxxxxx/

Thanks,
Ian

> I built it with tuxmake [1] here are two example commandlines:
> tuxmake --runtime podman --target-arch arm64 --toolchain gcc-12 --kconfig defconfig perf
> tuxmake --runtime podman --target-arch x86_64 --toolchain gcc-12 --kconfig defconfig perf
>
> Tried to build perf with both gcc-11 and gcc-12.
>
> Patch 'tools perf: Fix compilation error with new binutils'
> and 'tools build: Add feature test for init_disassemble_info API changes'
> didn't apply cleanly, thats why I send these in a patchset.
>
> When apply 'tools build: Add feature test for
> init_disassemble_info API changes' to 5.4 it will be a minor merge
> conflict, do you want me to send this patch in two separate patches one
> for 5.4 and another for v5.10?
>
> The sha for these two patches in mainline are.
> cfd59ca91467 tools build: Add feature test for init_disassemble_info API changes
> 83aa0120487e tools perf: Fix compilation error with new binutils
>
> The above patches solves these:
> util/annotate.c: In function 'symbol__disassemble_bpf':
> util/annotate.c:1729:9: error: too few arguments to function 'init_disassemble_info'
> 1729 | init_disassemble_info(&info, s,
> | ^~~~~~~~~~~~~~~~~~~~~
>
>
> Please apply these to v5.10 and v5.4
> a45b3d692623 tools include: add dis-asm-compat.h to handle version differences
> d08c84e01afa perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into sysconf(__SC_THREAD_STACK>
>
> The above patches solves these:
> /home/anders/src/kernel/stable-5.10/tools/include/linux/kernel.h:43:24: error: comparison of distinct pointer types lacks a cast [-Werror]
> 43 | (void) (&_max1 == &_max2); \
> | ^~
> builtin-sched.c:673:34: note: in expansion of macro 'max'
> 673 | (size_t) max(16 * 1024, PTHREAD_STACK_MIN));
> | ^~~
>
>
> Please apply these to v5.15, v5.10 and v5.4
> 8e8bf60a6754 perf build: Fixup disabling of -Wdeprecated-declarations for the python scripting engine
> 4ee3c4da8b1b perf scripting python: Do not build fail on deprecation warnings
> 63a4354ae75c perf scripting perl: Ignore some warnings to keep building with perl headers
>
> Build error that the above 3 patches solves are:
> /usr/lib/x86_64-linux-gnu/perl/5.36/CORE/handy.h:125:23: error: cast from function call of type 'STRLEN' {aka 'long unsigned int'} to non-matching type '_Bool' [-Werror=bad-function-cast]
> 125 | #define cBOOL(cbool) ((bool) (cbool))
> | ^
>
> Cheers,
> Anders
> [1] https://tuxmake.org/
>
> Andres Freund (2):
> tools perf: Fix compilation error with new binutils
> tools build: Add feature test for init_disassemble_info API changes
>
> tools/build/Makefile.feature | 1 +
> tools/build/feature/Makefile | 4 ++++
> tools/build/feature/test-all.c | 4 ++++
> tools/build/feature/test-disassembler-init-styled.c | 13 +++++++++++++
> tools/perf/Makefile.config | 8 ++++++++
> tools/perf/util/annotate.c | 7 ++++---
> 6 files changed, 34 insertions(+), 3 deletions(-)
> create mode 100644 tools/build/feature/test-disassembler-init-styled.c
>
> --
> 2.39.2
>