Re: [PATCH v8 0/3] perf tools: port UI from GTK2 to GTK4

From: Arnaldo Carvalho de Melo

Date: Wed Sep 09 2026 - 07:56:53 EST


On Wed, Sep 09, 2026 at 08:35:20AM -0300, Arnaldo Carvalho de Melo wrote:
> On Wed, Sep 09, 2026 at 08:29:52AM -0300, Arnaldo Carvalho de Melo wrote:
> > On Wed, Sep 09, 2026 at 08:25:41AM -0300, Arnaldo Carvalho de Melo wrote:
> > > patching file tools/perf/ui/setup.c
> > > ⬢ [acme@toolbx perf-tools-next]$
> > >
> > > I fixed it up quickly, now lets see the rest...
> >
> > Trying to build with it with just the first patch in this series in it
> > correctly discovers that the gtk4 devel files are not available but then
> > proceed to try to include gtk code and thus fail, where it should just
> > do what the feature detection states: disable gtk support but build
> > successfully without it, I'm checking if this is a quick surgery.
>
> This is a pre-existing condition, if I try without your series and
> without gtk2 devel files, I get the same problem, so I'll now try to
> build it with the required gtk4 devel files, we can fix this
> pre-existing problem afterwards, its not a regression introduced by your
> series.

Now, with GTK4=1 and trying to build the first patch after installing
gtk4-devel on fedora 43 it fails to detect gtk4 support:

⬢ [acme@toolbx perf-tools-next]$ m
make: Entering directory '/home/acme/git/perf-tools-next/tools/perf'
BUILD: Doing 'make -j32' parallel build

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


And:

⬢ [acme@toolbx perf-tools-next]$ cat /tmp/build/perf-tools-next/feature/test-gtk4.make.output
cat: /tmp/build/perf-tools-next/feature/test-gtk4.make.output: No such file or directory
⬢ [acme@toolbx perf-tools-next]$ ls -la /tmp/build/perf-tools-next/feature/test-gtk4*
ls: cannot access '/tmp/build/perf-tools-next/feature/test-gtk4*': No such file or directory
⬢ [acme@toolbx perf-tools-next]$ cat /tmp/build/perf-tools-next/feature/test-all.make.output
⬢ [acme@toolbx perf-tools-next]$ ldd /tmp/build/perf-tools-next/feature/test-all.
test-all.bin test-all.d test-all.make.output
⬢ [acme@toolbx perf-tools-next]$ ldd /tmp/build/perf-tools-next/feature/test-all.bin
linux-vdso.so.1 (0x00007f271bb90000)
libdw.so.1 => /lib64/libdw.so.1 (0x00007f271bae1000)
libpython3.14.so.1.0 => /lib64/libpython3.14.so.1.0 (0x00007f271b4a7000)
libm.so.6 => /lib64/libm.so.6 (0x00007f271b3b2000)
libtraceevent.so.1 => /lib64/libtraceevent.so.1 (0x00007f271b391000)
libelf.so.1 => /lib64/libelf.so.1 (0x00007f271b374000)
libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f271b366000)
libslang.so.2 => /lib64/libslang.so.2 (0x00007f271b072000)
libz.so.1 => /lib64/libz.so.1 (0x00007f271b04a000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f271b015000)
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f271af52000)
libssl.so.3 => /lib64/libssl.so.3 (0x00007f271ae67000)
libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f271a925000)
libc.so.6 => /lib64/libc.so.6 (0x00007f271a731000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f271a71d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f271bb92000)
⬢ [acme@toolbx perf-tools-next]$

Meaning its feature detection isn't being called at all, remains at
undetected:

⬢ [acme@toolbx perf-tools-next]$ grep gtk4 /tmp/build/perf-tools-next/FEATURE-DUMP
⬢ [acme@toolbx perf-tools-next]$

Probably this is pre-existing, but I wonder how you managed to test
then?

- Arnaldo