[Mesa-dev] [PATCH] glx: Don't hard-code the name "libGL.so.1" in driOpenDriver (v2)

Kyle Brenneman kbrenneman at nvidia.com
Fri Sep 25 12:40:43 PDT 2015


On 09/25/2015 11:58 AM, Ilia Mirkin wrote:
> On Fri, Sep 25, 2015 at 1:47 PM, Kyle Brenneman <kbrenneman at 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 at 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 at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list