Mesa (master): loader: Print dlerror() output in the failure message

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Nov 5 01:15:56 UTC 2020


Module: Mesa
Branch: master
Commit: fe52efaa98eae711cc6e7cd11f2d05471fff4b00
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fe52efaa98eae711cc6e7cd11f2d05471fff4b00

Author: Adam Jackson <ajax at redhat.com>
Date:   Mon Nov  2 13:57:12 2020 -0500

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 at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7429>

---

 src/loader/loader.c | 11 +++++++----
 1 file 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;
    }



More information about the mesa-commit mailing list