[waffle] [PATCH] linux: Use full libGLES*.so.[12] SONAMEs
Michel Dänzer
michel at daenzer.net
Sun May 31 19:41:33 PDT 2015
From: Michel Dänzer <michel.daenzer at amd.com>
The libGLES*.so symlinks are intended for the compile-time linker and
not available everywhere at runtime.
v2: * Continue using libGLES*.so on Android, the full SONAMEs aren't
available there.
* Remove stale comment line
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
man/waffle_config.3.xml | 2 +-
man/waffle_dl.3.xml | 6 +++---
src/waffle/linux/linux_dl.c | 13 ++++++++++---
3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/man/waffle_config.3.xml b/man/waffle_config.3.xml
index 8dc2fae..a8cb98d 100644
--- a/man/waffle_config.3.xml
+++ b/man/waffle_config.3.xml
@@ -535,7 +535,7 @@ struct waffle_config;
<itemizedlist>
<listitem>
<para>
- GLX supports creation of an OpenGL ES2 context only if libGLESv2.so is installed and if
+ GLX supports creation of an OpenGL ES2 context only if libGLESv2.so.2 is installed and if
GLX_EXT_create_context_es2_profile is exposed as both a server and client extension.
</para>
</listitem>
diff --git a/man/waffle_dl.3.xml b/man/waffle_dl.3.xml
index 463081f..ffcfad4 100644
--- a/man/waffle_dl.3.xml
+++ b/man/waffle_dl.3.xml
@@ -72,9 +72,9 @@
<para>
For example, on Linux, the <constant>WAFFLE_DL_*</constant> enums map to
<filename>libGL.so.1</filename>,
- <filename>libGLESv1_CM.so</filename>,
- <filename>libGLESv2.so</filename>, and
- <filename>libGLESv2.so</filename>, respectively.
+ <filename>libGLESv1_CM.so.1</filename>,
+ <filename>libGLESv2.so.2</filename>, and
+ <filename>libGLESv2.so.2</filename>, respectively.
</para>
<variablelist>
diff --git a/src/waffle/linux/linux_dl.c b/src/waffle/linux/linux_dl.c
index 1e14684..33eb69d 100644
--- a/src/waffle/linux/linux_dl.c
+++ b/src/waffle/linux/linux_dl.c
@@ -34,7 +34,7 @@
#include "linux_dl.h"
struct linux_dl {
- /// @brief For example, "libGLESv2.so".
+ /// @brief For example, "libGLESv2.so.2".
const char *name;
/// @brief The library obtained with dlopen().
@@ -50,17 +50,24 @@ linux_dl_get_name(int32_t waffle_dl)
case WAFFLE_DL_OPENGL:
return "libGL.so.1";
case WAFFLE_DL_OPENGL_ES1:
+#ifdef WAFFLE_HAS_ANDROID
return "libGLESv1_CM.so";
+#else
+ return "libGLESv1_CM.so.1";
+#endif
case WAFFLE_DL_OPENGL_ES2:
case WAFFLE_DL_OPENGL_ES3:
// As of 2014-04-20, Mesa statically provides the ES2 and ES3
- // symbols symbols in libGLESv2.so and provides no ES3-only library
+ // symbols symbols in libGLESv2.so.2 and provides no ES3-only library
//
- // Even though Waffle does not use the library's soname, note that
// Mesa did not change the library's soname when it added the ES3
// symbols. The soname was and is libGLESv2.so.2 before and after
// ES3.
+#ifdef WAFFLE_HAS_ANDROID
return "libGLESv2.so";
+#else
+ return "libGLESv2.so.2";
+#endif
default:
wcore_error_internal("waffle_dl has bad value %#x", waffle_dl);
return NULL;
--
2.1.4
More information about the waffle
mailing list