Mesa (master): Revert "glx: load dri driver with RTLD_LOCAL so dlclose never fails to unload"

Marek Olšák mareko at kemper.freedesktop.org
Mon Jun 2 10:57:26 UTC 2014


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Jun  2 12:51:09 2014 +0200

Revert "glx: load dri driver with RTLD_LOCAL so dlclose never fails to unload"

This reverts commit e3cc0d90e14e62a0a787b6c07a6df0f5c84039be.

It breaks too many apps and completely breaks my desktop too.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79469

We'll probably need to re-release all stable versions after this is committed.

Cc: "10.1 10.2" <mesa-stable at lists.freedesktop.org>

---

 src/glx/dri_common.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c
index e5a3f70..8bf4705 100644
--- a/src/glx/dri_common.c
+++ b/src/glx/dri_common.c
@@ -45,8 +45,8 @@
 #ifndef RTLD_NOW
 #define RTLD_NOW 0
 #endif
-#ifndef RTLD_LOCAL
-#define RTLD_LOCAL 0
+#ifndef RTLD_GLOBAL
+#define RTLD_GLOBAL 0
 #endif
 
 _X_HIDDEN void
@@ -99,7 +99,7 @@ driOpenDriver(const char *driverName)
    int len;
 
    /* Attempt to make sure libGL symbols will be visible to the driver */
-   glhandle = dlopen("libGL.so.1", RTLD_NOW | RTLD_LOCAL);
+   glhandle = dlopen("libGL.so.1", RTLD_NOW | RTLD_GLOBAL);
 
    libPaths = NULL;
    if (geteuid() == getuid()) {
@@ -127,14 +127,14 @@ driOpenDriver(const char *driverName)
       snprintf(realDriverName, sizeof realDriverName,
                "%.*s/tls/%s_dri.so", len, p, driverName);
       InfoMessageF("OpenDriver: trying %s\n", realDriverName);
-      handle = dlopen(realDriverName, RTLD_NOW | RTLD_LOCAL);
+      handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL);
 #endif
 
       if (handle == NULL) {
          snprintf(realDriverName, sizeof realDriverName,
                   "%.*s/%s_dri.so", len, p, driverName);
          InfoMessageF("OpenDriver: trying %s\n", realDriverName);
-         handle = dlopen(realDriverName, RTLD_NOW | RTLD_LOCAL);
+         handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL);
       }
 
       if (handle != NULL)




More information about the mesa-commit mailing list