Revert "glx: load dri driver with RTLD_LOCAL so dlclose never fails to unload"
authorMarek Olšák <marek.olsak@amd.com>
Mon, 2 Jun 2014 10:51:09 +0000 (12:51 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 2 Jun 2014 10:56:12 +0000 (12:56 +0200)
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@lists.freedesktop.org>
src/glx/dri_common.c

index e5a3f7070aa2e174e9b48c71d5a3795d54883586..8bf47054a3259beb89e1b7d5a0f534a6deeb5142 100644 (file)
@@ -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)