Fix for adreno (DO NOT APPLY THIS TO MASTER!)
authorDongyeon Kim <dy5.kim@samsung.com>
Sat, 6 Jul 2013 07:40:32 +0000 (16:40 +0900)
committerDongyeon Kim <dy5.kim@samsung.com>
Sat, 6 Jul 2013 10:33:19 +0000 (19:33 +0900)
packaging/coregl.spec
src/coregl.c [changed mode: 0644->0755]
src/wraps/coregl_egl.c [changed mode: 0644->0755]
src/wraps/coregl_gl.c [changed mode: 0644->0755]

index 15b83fb..6b7b2b5 100644 (file)
@@ -36,11 +36,12 @@ make %{?jobs:-j%jobs}
 %install
 
 mkdir -p %{buildroot}/usr/lib
+mkdir -p %{buildroot}/usr/lib/driver
 mkdir -p %{buildroot}/usr/include/EGL
 mkdir -p %{buildroot}/usr/include/GLES2
-cp %{_builddir}/%{name}-%{version}/libCOREGL.so.3.0 %{buildroot}%{_libdir}/libCOREGL.so.3.0
-cp %{_builddir}/%{name}-%{version}/libEGL.so.1.4 %{buildroot}%{_libdir}/libEGL.so.1.4
-cp %{_builddir}/%{name}-%{version}/libGLESv2.so.2.0 %{buildroot}%{_libdir}/libGLESv2.so.2.0
+cp %{_builddir}/%{name}-%{version}/libCOREGL.so.3.0 %{buildroot}%{_libdir}/driver/libCOREGL.so.3.0
+cp %{_builddir}/%{name}-%{version}/libEGL.so.1.4 %{buildroot}%{_libdir}/driver/libEGL.so.1.4
+cp %{_builddir}/%{name}-%{version}/libGLESv2.so.2.0 %{buildroot}%{_libdir}/driver/libGLESv2.so.2.0
 
 %clean
 rm -rf %{buildroot}
@@ -49,7 +50,7 @@ rm -rf %{buildroot}
 
 init_coregl()
 {
-    cd /usr/lib/
+    cd /usr/lib/driver
 
     rm -f ./libEGL.so
     rm -f ./libEGL.so.1
@@ -72,6 +73,6 @@ init_coregl
 
 %files
 %defattr(-,root,root,-)
-%{_libdir}/libCOREGL.so*
-%{_libdir}/libEGL.so*
-%{_libdir}/libGLESv2.so*
+%{_libdir}/driver/libCOREGL.so*
+%{_libdir}/driver/libEGL.so*
+%{_libdir}/driver/libGLESv2.so*
old mode 100644 (file)
new mode 100755 (executable)
index 4a1759c..08ecb9c
@@ -138,37 +138,50 @@ COREGL_API void coregl_symbol_exported()
 static int
 _gl_lib_init(void)
 {
+       void *gsl_lib_handle = dlopen("/usr/lib/libgsl.so", RTLD_NOW|RTLD_GLOBAL);
+       if (!gsl_lib_handle)
+       {
+               COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
+               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/libgsl.so)\E[0m\n");
+       }
+
+       void *gl_adreno_lib_handle = dlopen("/usr/lib/libadreno_utils.so", RTLD_NOW|RTLD_GLOBAL);
+       if (!gl_adreno_lib_handle)
+       {
+               COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
+               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/libadreno_utils.so)\E[0m\n");
+       }
 
        //------------------------------------------------//
        // Open EGL Library as EGL is separate
-       egl_lib_handle = dlopen("/usr/lib/driver/libEGL.so.1.4", RTLD_NOW);
+       egl_lib_handle = dlopen("/usr/lib/libEGL.so.1.4", RTLD_NOW|RTLD_GLOBAL);
        if (!egl_lib_handle)
        {
                COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
-               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/driver/libEGL.so.1.4)\E[0m\n");
+               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/libEGL.so.1.4)\E[0m\n");
                return 0;
        }
 
        // test for invalid linking egl
        if (dlsym(egl_lib_handle, "coregl_symbol_exported"))
        {
-               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/driver/libEGL.so.1.4)\E[0m\n");
+               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/libEGL.so.1.4)\E[0m\n");
                return 0;
        }
 
        // use gl_lib handle for GL symbols
-       gl_lib_handle = dlopen("/usr/lib/driver/libGLESv2.so.2.0", RTLD_NOW);
+       gl_lib_handle = dlopen("/usr/lib/libGLESv2.so.2.0", RTLD_NOW|RTLD_GLOBAL);
        if (!gl_lib_handle)
        {
                COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
-               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/driver/libGLESv2.so.2.0)\E[0m\n");
+               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/libGLESv2.so.2.0)\E[0m\n");
                return 0;
        }
 
        // test for invalid linking gl
        if (dlsym(gl_lib_handle, "coregl_symbol_exported"))
        {
-               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/driver/libGLESv2.so.2.0)\E[0m\n");
+               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> /usr/lib/libGLESv2.so.2.0)\E[0m\n");
                return 0;
        }
        //------------------------------------------------//
old mode 100644 (file)
new mode 100755 (executable)
index cfc8778..7920da7
@@ -30,7 +30,7 @@ __attribute__((constructor))
 int
 coregl_glwrap_init()
 {
-       lib_handle = dlopen("libCOREGL.so", RTLD_NOW);
+       lib_handle = dlopen("/usr/lib/driver/libCOREGL.so", RTLD_NOW);
        if (!lib_handle)
        {
                LOGE(" \E[40;31;1m%s\E[0m\n\n", dlerror());
old mode 100644 (file)
new mode 100755 (executable)
index 95a8dee..461e48c
@@ -27,7 +27,7 @@ __attribute__((constructor))
 int
 coregl_glwrap_init()
 {
-       lib_handle = dlopen("libCOREGL.so", RTLD_NOW);
+       lib_handle = dlopen("/usr/lib/driver/libCOREGL.so", RTLD_NOW);
        if (!lib_handle)
        {
                LOGE(" \E[40;31;1m%s\E[0m\n\n", dlerror());