On 18/12/17 19:14, Dylan Baker wrote:
Quoting Eric Engestrom (2017-12-18 08:33:18)
From: Brendan King <brendan.k...@imgtec.com>
DRI modules store the address of the dispatch table in a TLS variable,
_glapi_tls_Dispatch.
Changes to the way libEGL is built in d884d8d0077c16d459b1 resulted in
it being statically linked against libglapi, and thus containing its own
copy of _glapi_tls_Dispatch. The result was that some applications would
fail to work (e.g. deqp-egl, which dynamically loads libEGL), due to the
DRI module storing the dispatch table address in one copy of
_glapi_tls_Dispatch, and libEGL obtaining the address from another copy
of the variable.
This applies to autotools builds with --enable-glx-tls (on by default),
and Meson builds (unconditional).
Does this actually apply to the meson build? We don't have an intermediate
convenience library in meson.
Eric rewrote the commit message to make it less PowerVR specific, the
comment regarding meson crept in at that point. I think the comment
applies to the enable-glx-tls build option, not to the applicability of
the patch to meson builds.
Fixes: d884d8d0077c16d459b1 "egl/dri: link directly to libglapi.so"
Signed-off-by: Brendan King <brendan.k...@imgtec.com>
Signed-off-by: Eric Engestrom <eric.engest...@imgtec.com>
---
This issue was noticed in the PowerVR driver. It's unclear whether other
DRI drivers are affected as well.
---
src/egl/Makefile.am | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
index 66ba455..58db2c3 100644
--- a/src/egl/Makefile.am
+++ b/src/egl/Makefile.am
@@ -46,7 +46,6 @@ libEGL_common_la_SOURCES = \
$(LIBEGL_C_FILES)
libEGL_common_la_LIBADD = \
- $(top_builddir)/src/mapi/shared-glapi/libglapi.la \
$(top_builddir)/src/util/libmesautil.la \
$(EGL_LIB_DEPS)
@@ -171,7 +170,9 @@ libEGL_mesa_la_SOURCES = \
main/egldispatchstubs.c \
g_egldispatchstubs.c \
g_egldispatchstubs.h
-libEGL_mesa_la_LIBADD = libEGL_common.la
+libEGL_mesa_la_LIBADD = \
+ libEGL_common.la \
+ $(top_builddir)/src/mapi/shared-glapi/libglapi.la
libEGL_mesa_la_LDFLAGS = \
-no-undefined \
-version-number 0 \
@@ -183,7 +184,9 @@ else # USE_LIBGLVND
lib_LTLIBRARIES = libEGL.la
libEGL_la_SOURCES =
-libEGL_la_LIBADD = libEGL_common.la
+libEGL_la_LIBADD = \
+ libEGL_common.la \
+ $(top_builddir)/src/mapi/shared-glapi/libglapi.la
libEGL_la_LDFLAGS = \
-no-undefined \
-version-number 1:0 \
--
2.7.4
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev