[Mesa-dev] [PATCH] Use -Bsymbolic when linking libEGL.so
Chad Versace
chad.versace at linux.intel.com
Mon Sep 30 10:43:18 PDT 2013
On 09/28/2013 12:38 AM, Eric Anholt wrote:
> Carl Worth <cworth at cworth.org> 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 <eric at anholt.net>
Ditto. Please put in stable.
Reviewed-by: Chad Versace <chad.versace at linux.intel.com>
Having given my r-b though... we need to alert the Wayland folks to this
change. Recent libEGL symbol changes have had unforseen consequences on
the Wayland stack.
ALERT! Kristian and Joe, we will start building libEGL with -Bsymbolic. Does
this break anything for you?
More information about the mesa-dev
mailing list