diff options
author | Brendan King <[email protected]> | 2017-12-18 16:33:18 +0000 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2017-12-27 22:29:20 +0000 |
commit | e491bffc5c8da9fa0f7c08f78a7701ed5705d163 (patch) | |
tree | ca99a2f091e474462c2b8b5b6bf54daf85a7b13b /src | |
parent | d2acf97e49e104a45fd8aa0cbe3ad30d0dc37596 (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.am | 9 |
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 \ |