Re: [PATCH 1/2] perf report: Find lib path correctly for gtk option

From: Namhyung Kim
Date: Thu Apr 28 2016 - 22:50:52 EST


Hi drzix,

On Thu, Apr 28, 2016 at 11:35:09PM +0900, drzix wrote:
> Hi,
>
> $ ./perf report --gtk
> GTK browser requested but could not find libperf-gtk.so
>
>
> When I print buf in setup_gtk_brower() in ui/setup.c:
>
> $ ./perf report --gtk
> /libperf-gtk.so
> GTK browser requested but could not find libperf-gtk.so
>
> Besides, LIBDIR path is just ""

AFAIK this fallback code is only needed if perf was not installed in
the standard directory (and system has no perf package installed
also). Anyway I think it's better to add a debug message when loading
is failed (preferably with dlerror() or so).

In addition, I think the loading order should be reversed. It
currently tries to load libperf-gtk.so in the system directory and
then LIBDIR/libperf-gtk.so. But it'd be better to try LIBDIR first
and then falls back to system directory IMHO.

>
> Does it mean that LIBDIR path could not take the prefix contained to
> Makefile.perf?

No, LIBDIR used to libdir_SQ.

Thanks,
Namhyung


>
> 2016-04-28 23:07 GMT+09:00 Jiri Olsa <jolsa@xxxxxxxxxx>:
> > On Thu, Apr 28, 2016 at 10:00:00PM +0900, Kyeongmin Cho wrote:
> >> When "perf report --gtk", it cannot find libperf-gtk.so.
> >> This patch apply correct path of LIBDIR to setup_gtk_browser().
> >
> > hi,
> > could you please add to changelog some more info
> > about why the case change is actualy needed?
> >
> > thanks,
> > jirka
> >
> >>
> >> Signed-off-by: Kyeongmin Cho <korea.drzix@xxxxxxxxx>
> >> ---
> >> tools/perf/config/Makefile | 2 +-
> >> tools/perf/ui/Build | 2 +-
> >> 2 files changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
> >> index f7d7f5a..d96b185 100644
> >> --- a/tools/perf/config/Makefile
> >> +++ b/tools/perf/config/Makefile
> >> @@ -794,7 +794,7 @@ $(call detected_var,prefix_SQ)
> >> $(call detected_var,perfexecdir_SQ)
> >> $(call detected_var,tipdir_SQ)
> >> $(call detected_var,srcdir_SQ)
> >> -$(call detected_var,LIBDIR)
> >> +$(call detected_var,libdir)
> >> $(call detected_var,GTK_CFLAGS)
> >> $(call detected_var,PERL_EMBED_CCOPTS)
> >> $(call detected_var,PYTHON_EMBED_CCOPTS)
> >> diff --git a/tools/perf/ui/Build b/tools/perf/ui/Build
> >> index 0a73538..cd3f92f0 100644
> >> --- a/tools/perf/ui/Build
> >> +++ b/tools/perf/ui/Build
> >> @@ -5,7 +5,7 @@ libperf-y += util.o
> >> libperf-y += hist.o
> >> libperf-y += stdio/hist.o
> >>
> >> -CFLAGS_setup.o += -DLIBDIR="BUILD_STR($(LIBDIR))"
> >> +CFLAGS_setup.o += -DLIBDIR="BUILD_STR($(libdir))"
> >>
> >> libperf-$(CONFIG_SLANG) += browser.o
> >> libperf-$(CONFIG_SLANG) += browsers/
> >> --
> >> 2.5.5
> >>
>
>
>
> --
> Thanks,
> Dr.Zix
> " http://cin.fail "