summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrendan King <[email protected]>2017-12-18 16:33:18 +0000
committerEmil Velikov <[email protected]>2017-12-27 22:29:20 +0000
commite491bffc5c8da9fa0f7c08f78a7701ed5705d163 (patch)
treeca99a2f091e474462c2b8b5b6bf54daf85a7b13b /src
parentd2acf97e49e104a45fd8aa0cbe3ad30d0dc37596 (diff)
egl: link libEGL against the dynamic version of libglapi
Note: the following happens only when using slibtool. Since this is a very serious breakage, we will keep the workaround until a better solution is available. 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. Fixes: d884d8d0077c16d459b1 "egl/dri: link directly to libglapi.so" Signed-off-by: Brendan King <[email protected]> Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/egl/Makefile.am9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
index eaec4ff946f..98d0420ec4d 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)
@@ -165,7 +164,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 \
@@ -177,7 +178,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 \