Carl Worth <[email protected]> writes:

> For some reason that I don't yet fully understand, Glaze does not work with
> libEGL unless libEGL is linked with -Bsymbolic.[*]
>
> Beyond that specific reason, all of the reasons for which libGL.so is linked
> with -Bsymbolic, (see the commit history), should also apply here.
>
> [*] The specific behavior I am seeing is that when Glaze calls dlopen for
> libEGL.so, ifunc resolvers within Glaze for EGL functions are called before
> the dlopen returns. These resolvers cannot succeed, as they need the return
> value from dlopen in order to find the functions to resolve to. I don't know
> what's causing these resolvers to be called, but I have verified that linking
> libEGL with -Bsymbolic causes this problematic behavior to stop.

Could you print which thing is trying to get resolved early?  I see a
few egl* calls within main/egl*.c (eglQueryAPI(), eglGetDisplay(),
eglWaitClient()), and I'm wondering if not having Bsymbolic on them is
causing an RTLD_NOW (perhaps by the glaze-find-libgl.c?) to try to call
the ifuncs early.

We should certainly be using Bsymbolic, and I'd like to see this go to
stable.

Reviewed-by: Eric Anholt <[email protected]>

Attachment: pgp5OGxNQtJgQ.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to