[Mesa-dev] [PATCH] glx: Fix glXGetProcAddress() of global glX symbols post-automake conversion.
Matt Turner
mattst88 at gmail.com
Tue Mar 20 16:37:07 PDT 2012
On Tue, Mar 20, 2012 at 5:07 PM, Eric Anholt <eric at anholt.net> wrote:
> When a GL LD_PRELOAD library like apitrace was used,
> glXGetProcAddress() would return the preload's symbols instead of
> libGL's symbol, leading to infinite recursion when the returned
> function was called. This didn't hit apitrace on most apps because
> who calls glXGetProcAddress() on the global functions.
>
> The -Bsymbolic, which was present in mklib before automake conversion,
> causes the glxcmds.c:GLX_functions table to be resolved at link time,
> so that LD_PRELOADs don't affect it any more.
>
> Fixes crashes when running wine under apitrace.
> ---
> src/glx/Makefile.am | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
> index a11bd3f..2e06588 100644
> --- a/src/glx/Makefile.am
> +++ b/src/glx/Makefile.am
> @@ -101,6 +101,7 @@ GL_LIBS = \
> $(GL_LIB_DEPS)
>
> GL_LDFLAGS = \
> + -Wl,-Bsymbolic \
> -version-number 1:2
>
> libGL_la_SOURCES = $(GL_FILES)
> --
> 1.7.9.1
Tested-by: Matt Turner <mattst88 at gmail.com>
More information about the mesa-dev
mailing list