lkml.org 
[lkml]   [2016]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v2] perf gtk: Print dlerror() and reverse the loading order
Date
This patch applies two changes below:

* When dlopen() returns NULL, the string from dlerror() is printed
to tell why it has failed.
* The loading order was reversed. It used to try to load LIBDIR
second, but it's reasonable to look around LIBDIR first and fall
back to system directory.

Signed-off-by: Kyeongmin Cho <korea.drzix@gmail.com>
---
This patch refers to the previous discussion
Re: [PATCH 1/2] perf report: Find lib path correctly for gtk option
From Namhyung Kim

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.

tools/perf/ui/setup.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/tools/perf/ui/setup.c b/tools/perf/ui/setup.c
index ba51fa8..17e87da 100644
--- a/tools/perf/ui/setup.c
+++ b/tools/perf/ui/setup.c
@@ -12,18 +12,23 @@ void *perf_gtk_handle;
static int setup_gtk_browser(void)
{
int (*perf_ui_init)(void);
+ char buf[PATH_MAX];

if (perf_gtk_handle)
return 0;

- perf_gtk_handle = dlopen(PERF_GTK_DSO, RTLD_LAZY);
+ scnprintf(buf, sizeof(buf), "%s/%s", LIBDIR, PERF_GTK_DSO);
+ perf_gtk_handle = dlopen(buf, RTLD_LAZY);
+
if (perf_gtk_handle == NULL) {
- char buf[PATH_MAX];
- scnprintf(buf, sizeof(buf), "%s/%s", LIBDIR, PERF_GTK_DSO);
- perf_gtk_handle = dlopen(buf, RTLD_LAZY);
+ printf("%s\n", dlerror());
+ perf_gtk_handle = dlopen(PERF_GTK_DSO, RTLD_LAZY);
}
- if (perf_gtk_handle == NULL)
+
+ if (perf_gtk_handle == NULL) {
+ printf("%s\n", dlerror());
return -1;
+ }

perf_ui_init = dlsym(perf_gtk_handle, "perf_gtk__init");
if (perf_ui_init == NULL)
--
2.5.5
\
 
 \ /
  Last update: 2016-04-30 18:41    [W:0.334 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site