]> git.cworth.org Git - fips/blobdiff - dlwrap.c
dlwrap: Add "libGLESv2.so" to the list of supported wrapped libraries
[fips] / dlwrap.c
index aff9e625eda298680cc890f88061ea1845d97e65..dda7a77a00590e53a5101b98d6961092315ab7c3 100644 (file)
--- a/dlwrap.c
+++ b/dlwrap.c
@@ -29,6 +29,8 @@
 
 #include "dlwrap.h"
 
+#include "glwrap.h"
+
 void *libfips_handle;
 
 typedef void * (* fips_dlopen_t)(const char * filename, int flag);
@@ -36,7 +38,8 @@ typedef void * (* fips_dlsym_t)(void *handle, const char *symbol);
 
 static const char *wrapped_libs[] = {
        "libGL.so",
-       "libEGL.so"
+       "libEGL.so",
+       "libGLESv2.so"
 };
 
 static void *orig_handles[ARRAY_SIZE(wrapped_libs)];
@@ -86,6 +89,13 @@ dlopen (const char *filename, int flag)
        if (! find_wrapped_library_index (filename, &index))
                return ret;
 
+       /* When the application dlopens any wrapped library starting
+        * with 'libGL', (whether libGL.so.1 or libGLESv2.so.2), let's
+        * continue to use that library handle for future lookups of
+        * OpenGL functions. */
+       if (STRNCMP_LITERAL (filename, "libGL") == 0)
+               glwrap_set_gl_handle (ret);
+
        assert (index < ARRAY_SIZE(orig_handles));
        orig_handles[index] = ret;