diff options
author | Adam Jackson <ajax@redhat.com> | 2020-11-02 13:57:12 -0500 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-11-04 21:45:37 +0000 |
commit | fe52efaa98eae711cc6e7cd11f2d05471fff4b00 (patch) | |
tree | e7a41fc7f997fa080fc5c12dfd9ef1eed08b84da /src/loader | |
parent | 5d5f3e3a4779f4efc41793498525fe611807b8e1 (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.c | 11 |
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; } |