egl: link libEGL against the dynamic version of libglapi
authorBrendan King <Brendan.King@imgtec.com>
Mon, 18 Dec 2017 16:33:18 +0000 (16:33 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 27 Dec 2017 22:29:20 +0000 (22:29 +0000)
commite491bffc5c8da9fa0f7c08f78a7701ed5705d163
treeca99a2f091e474462c2b8b5b6bf54daf85a7b13b
parentd2acf97e49e104a45fd8aa0cbe3ad30d0dc37596
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 <Brendan.King@imgtec.com>
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/egl/Makefile.am