From 3345dc8e15bbbb96fa07b402106a7ca1f4da9559 Mon Sep 17 00:00:00 2001
From: leo <gnu_lists@halloleo.hailmail.net>
Date: Wed, 26 Aug 2020 15:03:08 +0200
Subject: [PATCH] Allow disabling double buffering at build time

* configure.ac: Allow disabling double buffering (bug#32032).

Copyright-paperwork-exempt: yes
---
 configure.ac | 13 ++++++++-----
 etc/NEWS     |  5 +++++
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index fb9aa19d6ee..9a51ea1f7ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -463,6 +463,7 @@ OPTION_DEFAULT_ON([m17n-flt],[don't use m17n-flt for text shaping])
 OPTION_DEFAULT_ON([toolkit-scroll-bars],[don't use Motif/Xaw3d/GTK toolkit scroll bars])
 OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
 OPTION_DEFAULT_ON([xim],[at runtime, default X11 XIM to off])
+OPTION_DEFAULT_ON([xdbe],[don't use X11 double buffering support])
 AC_ARG_WITH([ns],[AS_HELP_STRING([--with-ns],
 [use Nextstep (macOS Cocoa or GNUstep) windowing system.
 On by default on macOS.])],[],[with_ns=maybe])
@@ -4023,11 +4024,13 @@ AC_SUBST(XFIXES_LIBS)
 ### Use Xdbe (-lXdbe) if available
 HAVE_XDBE=no
 if test "${HAVE_X11}" = "yes"; then
-  AC_CHECK_HEADER(X11/extensions/Xdbe.h,
-    [AC_CHECK_LIB(Xext, XdbeAllocateBackBufferName, HAVE_XDBE=yes)],
-    [],
-    [#include <X11/Xlib.h>
-    ])
+  if test "${with_xdbe}" != "no"; then
+    AC_CHECK_HEADER(X11/extensions/Xdbe.h,
+      [AC_CHECK_LIB(Xext, XdbeAllocateBackBufferName, HAVE_XDBE=yes)],
+      [],
+      [#include <X11/Xlib.h>
+      ])
+  fi
   if test $HAVE_XDBE = yes; then
     XDBE_LIBS=-lXext
   fi
diff --git a/etc/NEWS b/etc/NEWS
index 7be7aced983..fae65a22271 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -41,6 +41,11 @@ still be available when HarfBuzz is supported, but will not be used by
 default.  We strongly recommend building with HarBuzz support.  'x' is
 still a valid backend.
 
+---
+** Building without double buffering support.
+configure --with-xdbe=no can now be used to disable double buffering
+at build time.
+
 ---
 ** 'configure' now warns about building with libXft support.
 libXft is unmaintained, and causes a number of problems with modern
-- 
2.39.5