From 899cebb76ab7754fea49f7babcd64a7e94052cc8 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Tue, 27 Oct 2020 16:33:55 +0100 Subject: [PATCH] configure: Build hashtable for Xres and glvnd With autoconf, hashtable support is built along with Xres support. Yet, glvnd also use it, so when disabling Xres from configure, the build will fail at link time because hashtable functions are not available. Untie the build of hashtable from Xres support, just like meson build does. Signed-off-by: Olivier Fourdan Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1091 --- Xext/Makefile.am | 10 ++++++++-- configure.ac | 5 +++++ glx/Makefile.am | 4 +++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Xext/Makefile.am b/Xext/Makefile.am index 32a27eba8..f15a15a3e 100644 --- a/Xext/Makefile.am +++ b/Xext/Makefile.am @@ -1,4 +1,4 @@ -noinst_LTLIBRARIES = libXext.la libXvidmode.la +noinst_LTLIBRARIES = libXext.la libXvidmode.la libhashtable.la AM_CFLAGS = $(DIX_CFLAGS) @@ -35,7 +35,7 @@ BUILTIN_SRCS += $(XV_SRCS) endif # XResource extension: lets clients get data about per-client resource usage -RES_SRCS = hashtable.c hashtable.h xres.c +RES_SRCS = xres.c if RES BUILTIN_SRCS += $(RES_SRCS) endif @@ -95,10 +95,16 @@ endif libXext_la_SOURCES = $(BUILTIN_SRCS) libXext_la_LIBADD = $(BUILTIN_LIBS) +if RES +libXext_la_LIBADD += libhashtable.la +endif # XVidMode extension libXvidmode_la_SOURCES = vidmode.c +#Hashtable +libhashtable_la_SOURCES = hashtable.c hashtable.h + EXTRA_DIST = \ $(MITSHM_SRCS) \ $(XV_SRCS) \ diff --git a/configure.ac b/configure.ac index 2f2c1cd53..1333584c9 100644 --- a/configure.ac +++ b/configure.ac @@ -1056,9 +1056,11 @@ if test "x$SCREENSAVER" = xyes; then SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $SCRNSAVERPROTO" fi +HASHTABLE=no AM_CONDITIONAL(RES, [test "x$RES" = xyes]) if test "x$RES" = xyes; then AC_DEFINE(RES, 1, [Support X resource extension]) + HASHTABLE=yes REQUIRED_MODULES="$REQUIRED_MODULES $RESOURCEPROTO" SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $RESOURCEPROTO" fi @@ -1242,6 +1244,7 @@ if test "x$GLX" = xyes; then PKG_CHECK_MODULES([GL], $GLPROTO $LIBGL) AC_SUBST(XLIB_CFLAGS) AC_DEFINE(GLXEXT, 1, [Build GLX extension]) + HASHTABLE=yes GLX_LIBS='$(top_builddir)/glx/libglx.la $(top_builddir)/glx/libglxvnd.la' GLX_SYS_LIBS="$GLX_SYS_LIBS $GL_LIBS" else @@ -1249,6 +1252,8 @@ else fi AM_CONDITIONAL(GLX, test "x$GLX" = xyes) +AM_CONDITIONAL(HASHTABLE, test "x$HASHTABLE" = xyes) + AC_SUBST([GLX_DEFINES]) AC_SUBST([GLX_SYS_LIBS]) diff --git a/glx/Makefile.am b/glx/Makefile.am index 0f652356d..8f19e9dc7 100644 --- a/glx/Makefile.am +++ b/glx/Makefile.am @@ -81,7 +81,7 @@ libglx_la_SOURCES = \ unpack.h \ xfont.c -libglx_la_LIBADD = $(DLOPEN_LIBS) +libglx_la_LIBADD = $(DLOPEN_LIBS) $(top_builddir)/Xext/libhashtable.la libglxvnd_la_SOURCES = \ vndcmds.c \ @@ -90,4 +90,6 @@ libglxvnd_la_SOURCES = \ vndservervendor.h \ vndservervendor.c +libglxvnd_la_LIBADD = $(top_builddir)/Xext/libhashtable.la + EXTRA_DIST = vnd_dispatch_stubs.c