lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1462032854-16200-1-git-send-email-korea.drzix@gmail.com>
Date:	Sun,  1 May 2016 01:14:14 +0900
From:	Kyeongmin Cho <korea.drzix@...il.com>
To:	Peter Zijlstra <peterz@...radead.org>,
	Ingo Molnar <mingo@...hat.com>,
	Arnaldo Carvalho de Melo <acme@...nel.org>,
	Alexander Shishkin <alexander.shishkin@...ux.intel.com>
Cc:	linux-kernel@...r.kernel.org, Jiri Olsa <jolsa@...hat.com>,
	Namhyung Kim <namhyung@...nel.org>,
	Kyeongmin Cho <korea.drzix@...il.com>
Subject: [PATCH v2] perf gtk: Print dlerror() and reverse the loading order

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@...il.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ