[Mesa-dev] [PATCH] egl: link libEGL against the dynamic version of libglapi

Dylan Baker dylan at pnwbakers.com
Mon Dec 18 19:14:02 UTC 2017


Quoting Eric Engestrom (2017-12-18 08:33:18)
> From: Brendan King <Brendan.King at 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.

> 
> Fixes: d884d8d0077c16d459b1 "egl/dri: link directly to libglapi.so"
> Signed-off-by: Brendan King <Brendan.King at imgtec.com>
> Signed-off-by: Eric Engestrom <eric.engestrom at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171218/dcd19fd6/attachment.sig>


More information about the mesa-dev mailing list