diff --git a/configure.ac b/configure.ac index c3a62bf..d5b9399 100644 --- a/configure.ac +++ b/configure.ac @@ -28,6 +28,37 @@ AC_PROG_LIBTOOL AC_CHECK_PROGS([PYTHON2], [python2 python]) AC_CHECK_PROGS([PERL], [perl]) +dnl +dnl Auxiliary ELF symbol filtering support +dnl +AC_ARG_ENABLE([dt-auxiliary], + [AS_HELP_STRING([--enable-dt-auxiliary], + [enable auxiliary ELF symbol filtering @<:@default=disabled@:>@])], + [enable_dt_auxiliary="$enableval"], + [enable_dt_auxiliary=no] +) +AC_MSG_CHECKING([whether to enable auxiliary ELF symbol filtering]) + +if test "x$enable_dt_auxiliary" = xyes; then + ( + LDFLAGS='-shared -Wl,--auxiliary=libc.so.6' + AC_LINK_IFELSE([AC_LANG_SOURCE([])], + [dt_auxiliary_supported=yes], + [dt_auxiliary_supported=no]) + if test "x$dt_auxiliary_supported" = xyes; then + AC_MSG_RESULT([yes, supported]) + else + AC_MSG_RESULT([no, not supported]) + fi + test "x$dt_auxiliary_supported" = xyes + ) && dt_auxiliary_supported=yes +else + dt_auxiliary_supported=no + AC_MSG_RESULT([no]) +fi + +AM_CONDITIONAL([USE_DT_AUXILIARY], [test "x$dt_auxiliary_supported" = xyes]) + dnl dnl Arch/platform-specific settings. Copied from mesa dnl diff --git a/src/GL/Makefile.am b/src/GL/Makefile.am index a8f61ea..995bb97 100644 --- a/src/GL/Makefile.am +++ b/src/GL/Makefile.am @@ -61,7 +61,15 @@ g_libglglxwrapper.c : $(GLX_GEN_STUBS) $(GLX_FUNCS_SPEC) libGL_la_CFLAGS = \ -I$(top_srcdir)/include -libGL_la_LDFLAGS = -shared -version-info 1 +if USE_DT_AUXILIARY +# XXX: libtool has trouble processing "-Wl,*" options, so we use -Xlinker here +# instead. +DT_AUX_FLAGS = -Xlinker "--auxiliary=libGLX.so.0" -Xlinker "--auxiliary=libGLdispatch.so.0" +else +DT_AUX_FLAGS = +endif + +libGL_la_LDFLAGS = -shared -version-info 1 $(DT_AUX_FLAGS) AM_CPPFLAGS = \ -I$(TOP)/src/GLdispatch/vnd-glapi/mapi \