egl_xlib: Pass RTLD_LAZY to dlopen.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 24 Mar 2009 19:18:06 +0000 (19:18 +0000)
committerZack Rusin <zackr@vmware.com>
Fri, 1 May 2009 16:51:01 +0000 (12:51 -0400)
dlopen manpage mandates that either RTLD_LAZY or RTLD_NOW flags must be
passed. Not doing so was causing a NULL return on debian unstable x86-64.

src/gallium/winsys/egl_xlib/egl_xlib.c

index b52f427e4a78797ff97d80b84e34a3cb888954cb..c10e3c00ffcaccfa9856a081d116c128203aacea 100644 (file)
@@ -588,7 +588,9 @@ find_supported_apis(void)
    EGLint mask = 0;
    void *handle;
 
-   handle = dlopen(NULL, 0);
+   handle = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL);
+   if(!handle)
+      return mask;
 
    if (dlsym(handle, "st_api_OpenGL_ES1"))
       mask |= EGL_OPENGL_ES_BIT;