Re: [PATCH] perf data: Fix babeltrace detection

From: Arnaldo Carvalho de Melo
Date: Mon Oct 14 2019 - 10:33:02 EST


Em Tue, Oct 08, 2019 at 07:21:44AM -0700, Andi Kleen escreveu:
> On Tue, Oct 08, 2019 at 01:52:40PM +0200, Jiri Olsa wrote:
> > On Mon, Oct 07, 2019 at 10:41:20AM -0700, Andi Kleen wrote:
> > > From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> > >
> > > The symbol the feature file checks for is now actually in -lbabeltrace,
> > > not -lbabeltrace-ctf, at least as of libbabeltrace-1.5.6-2.fc30.x86_64
> > >
> > > Always add both libraries to fix the feature detection.
> >
> > well, we link with libbabeltrace-ctf.so which links with libbabeltrace.so
> >
> > I guess we can link it as well, but where do you see it fail?
>
> On FC30 the .so file is just a symlink, so it doesn't pull
> in the other library.
>
> $ gcc test-libbabeltrace.c -lbabeltrace-ctf
> /usr/bin/ld:
> /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/libbabeltrace-ctf.so:
> undefined reference to `bt_packet_seek_get_error'
> /usr/bin/ld:
> /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/libbabeltrace-ctf.so:
> undefined reference to `bt_packet_seek_set_error'
> collect2: error: ld returned 1 exit status
>
> $ ls -l /usr/lib64/libbabeltrace-ctf.so
> lrwxrwxrwx 1 root root 26 Jan 31 2019 /usr/lib64/libbabeltrace-ctf.so
> -> libbabeltrace-ctf.so.1.0.0
>
> $ rpm -qf /usr/lib64/libbabeltrace-ctf.so
> libbabeltrace-devel-1.5.6-2.fc30.x86_64

I'm not being able to reproduce here, without your patch I get things
working:

[acme@quaco perf]$ ldd ~/bin/perf | grep babel
libbabeltrace-ctf.so.1 => /lib64/libbabeltrace-ctf.so.1 (0x00007f2396e41000)
libbabeltrace.so.1 => /lib64/libbabeltrace.so.1 (0x00007f2396dc1000)
[acme@quaco perf]$ ldd /lib64/libbabeltrace-ctf.so.1 | grep babel
libbabeltrace.so.1 => /lib64/libbabeltrace.so.1 (0x00007f8bffe59000)
[acme@quaco perf]$
[acme@quaco perf]$ rpm -qa | grep babeltrace
libbabeltrace-1.5.6-2.fc30.x86_64
libbabeltrace-devel-1.5.6-2.fc30.x86_64
[acme@quaco perf]$ cat /etc/fedora-release
Fedora release 30 (Thirty)
[acme@quaco perf]$ cat /tmp/build/perf/feature/test-libbabeltrace.make.output
[acme@quaco perf]$ cat /tmp/build/perf/feature/test-libbabeltrace.
test-libbabeltrace.bin test-libbabeltrace.d test-libbabeltrace.make.output
[acme@quaco perf]$ ldd /tmp/build/perf/feature/test-libbabeltrace.bin
linux-vdso.so.1 (0x00007fff5ff7c000)
libunwind-x86_64.so.8 => /lib64/libunwind-x86_64.so.8 (0x00007f2517979000)
libunwind.so.8 => /lib64/libunwind.so.8 (0x00007f251795f000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f2517936000)
libbabeltrace-ctf.so.1 => /lib64/libbabeltrace-ctf.so.1 (0x00007f25178e0000)
libc.so.6 => /lib64/libc.so.6 (0x00007f251771a000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2517700000)
/lib64/ld-linux-x86-64.so.2 (0x00007f25179bc000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f25176dd000)
libbabeltrace.so.1 => /lib64/libbabeltrace.so.1 (0x00007f25176cd000)
libdw.so.1 => /lib64/libdw.so.1 (0x00007f2517678000)
libelf.so.1 => /lib64/libelf.so.1 (0x00007f251765d000)
libpopt.so.0 => /lib64/libpopt.so.0 (0x00007f251764f000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f2517645000)
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f251763d000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f2517519000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2517513000)
libz.so.1 => /lib64/libz.so.1 (0x00007f25174f9000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f25174e5000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f251746f000)
[acme@quaco perf]$