summaryrefslogtreecommitdiff
path: root/src/loader
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2020-11-02 13:57:12 -0500
committerMarge Bot <eric+marge@anholt.net>2020-11-04 21:45:37 +0000
commitfe52efaa98eae711cc6e7cd11f2d05471fff4b00 (patch)
treee7a41fc7f997fa080fc5c12dfd9ef1eed08b84da /src/loader
parent5d5f3e3a4779f4efc41793498525fe611807b8e1 (diff)
loader: Print dlerror() output in the failure message
This just captures the last failure, but that's better than nothing. Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7429>
Diffstat (limited to 'src/loader')
-rw-r--r--src/loader/loader.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/loader/loader.c b/src/loader/loader.c
index f619333a21a..d64bc7c10f2 100644
--- a/src/loader/loader.c
+++ b/src/loader/loader.c
@@ -547,6 +547,7 @@ loader_open_driver(const char *driver_name,
search_paths = DEFAULT_DRIVER_DIR;
void *driver = NULL;
+ char *dl_error = NULL;
end = search_paths + strlen(search_paths);
for (char *p = search_paths; p < end; p = next + 1) {
int len;
@@ -562,9 +563,11 @@ loader_open_driver(const char *driver_name,
if (driver == NULL) {
snprintf(path, sizeof(path), "%.*s/%s_dri.so", len, p, driver_name);
driver = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
- if (driver == NULL)
+ if (driver == NULL) {
+ dl_error = dlerror();
log_(_LOADER_DEBUG, "MESA-LOADER: failed to open %s: %s\n",
- path, dlerror());
+ path, dl_error);
+ }
}
/* not need continue to loop all paths once the driver is found */
if (driver != NULL)
@@ -572,8 +575,8 @@ loader_open_driver(const char *driver_name,
}
if (driver == NULL) {
- log_(_LOADER_WARNING, "MESA-LOADER: failed to open %s (search paths %s)\n",
- driver_name, search_paths);
+ log_(_LOADER_WARNING, "MESA-LOADER: failed to open %s: %s (search paths %s)\n",
+ driver_name, dl_error, search_paths);
*out_driver_handle = NULL;
return NULL;
}