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

Brendan King brendan.king at imgtec.com
Tue Dec 19 08:48:00 UTC 2017



On 18/12/17 19:14, Dylan Baker wrote:
> 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.
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.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
>>
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171219/bdd0e3a5/attachment.html>


More information about the mesa-dev mailing list