On 09/25/2015 11:58 AM, Ilia Mirkin wrote:
On Fri, Sep 25, 2015 at 1:47 PM, Kyle Brenneman <kbrenne...@nvidia.com> wrote:
Add a macro GL_LIB_NAME to hold the filename that configure comes up with
based on the --with-gl-lib-name and --enable-mangling options.

In driOpenDriver, use the GL_LIB_NAME macro instead of hard-coding
"libGL.so.1".

v2: Add an #ifndef/#define for GL_LIB_NAME so that non-autoconf builds will
     work.
---
  src/glx/Makefile.am  | 1 +
  src/glx/dri_common.c | 6 +++++-
  2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
index 6e50e09..8ea81c1 100644
--- a/src/glx/Makefile.am
+++ b/src/glx/Makefile.am
@@ -46,6 +46,7 @@ AM_CFLAGS = \
         $(EXTRA_DEFINES_XF86VIDMODE) \
         -D_REENTRANT \
         -DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
+       -DGL_LIB_NAME=\"lib@GL_LIB@.la\" \
Errr.... .la? Are you sure? dlopen doesn't know anything about those
libtool archive files afaik -- did you test this?
Ack, sorry about that. I did test it, but since it silently ignores when the dlopen call fails, I didn't notice the failure. I'll put together a test program that actually fails when it has the wrong name and try this again.

         $(DEFINES) \
         $(LIBDRM_CFLAGS) \
         $(DRI2PROTO_CFLAGS) \
diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c
index eedcd46..8a56385 100644
--- a/src/glx/dri_common.c
+++ b/src/glx/dri_common.c
@@ -73,6 +73,10 @@ dri_message(int level, const char *f, ...)
     }
  }

+#ifndef GL_LIB_NAME
+#define GL_LIB_NAME "libGL.so.1"
+#endif
+
  #ifndef DEFAULT_DRIVER_DIR
  /* this is normally defined in Mesa/configs/default with 
DRI_DRIVER_SEARCH_PATH */
  #define DEFAULT_DRIVER_DIR "/usr/local/lib/dri"
@@ -99,7 +103,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_GLOBAL);
+   glhandle = dlopen(GL_LIB_NAME, RTLD_NOW | RTLD_GLOBAL);

     libPaths = NULL;
     if (geteuid() == getuid()) {
--
1.9.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to