summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2012-03-20 13:51:31 -0700
committerEric Anholt <eric@anholt.net>2012-03-21 13:55:41 -0700
commite07b1603e24ddd21a61b11390712c4b39d6a3c5c (patch)
tree3589a87a4e94d088d53dbf28a8a9d1095e85b8c2
parent20836c81851e0df29a8ee9c86e5e5388738c840b (diff)
glx: Fix glXGetProcAddress() of global glX symbols post-automake conversion.
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. Tested-by: Matt Turner <mattst88@gmail.com> Tested-by: Marek Olšák <maraeo@gmail.com>
-rw-r--r--src/glx/Makefile.am1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
index a11bd3ff011..2e065885e52 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)