summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNicolas Boichat <[email protected]>2016-04-28 18:41:39 +0800
committerEmil Velikov <[email protected]>2016-05-23 13:25:51 +0100
commit0cbc90c57cfc6099b529c5caeb58f385735ba75f (patch)
tree5aab2b7690b0af4e555be4c938c3ee004484b2bc /src
parent27d713a004da1918d1c5699b077734eceb0ebd75 (diff)
mesa: dri: Add shared glapi to LIBADD on Android
/system/vendor/lib/dri/*_dri.so actually depend on libglapi: without this, loading the so file fails with: cannot locate symbol "__emutls_v._glapi_tls_Context" On non-Android (non-bionic) platform, EGL uses the following workflow, which works fine: dlopen("libglapi.so", RTLD_LAZY | RTLD_GLOBAL); dlopen("dri/<driver>_dri.so", RTLD_NOW | RTLD_GLOBAL); However, bionic does not respect the RTLD_GLOBAL flag, and the dri library cannot find symbols in libglapi.so, so we need to link to libglapi.so explicitly. Android.mk already does this. Signed-off-by: Nicolas Boichat <[email protected]> Reviewed-by: Emil Velikov <[email protected]> [Emil Velikov: s/explicitely/explicitly/] Signed-off-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/Makefile.am8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/Makefile.am b/src/mesa/drivers/dri/Makefile.am
index 08a8e645521..1c6dd08a85d 100644
--- a/src/mesa/drivers/dri/Makefile.am
+++ b/src/mesa/drivers/dri/Makefile.am
@@ -6,6 +6,13 @@ MEGADRIVERS_DEPS =
SUBDIRS+=common
+# On Android, we need to explicitly link to libglapi.so.
+if HAVE_ANDROID
+if HAVE_SHARED_GLAPI
+SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+endif
+endif
+
if HAVE_I915_DRI
SUBDIRS += i915
MEGADRIVERS_DEPS += i915/libi915_dri.la
@@ -61,6 +68,7 @@ mesa_dri_drivers_la_LIBADD = \
common/libmegadriver_stub.la \
common/libdricommon.la \
common/libxmlconfig.la \
+ $(SHARED_GLAPI_LIB) \
$(MEGADRIVERS_DEPS) \
$(DRI_LIB_DEPS) \
$()