--- /dev/null
+commit f25dc9d21a9aba2d4c5f3d21273e1f7924d591be
+Author: Maxim Storchak <m.storchak@gmail.com>
+Date: Sun Jun 28 14:23:03 2020 +0300
+
+ Based on Pierre-Olivier Mercier's patch for https://bugzilla.samba.org/show_bug.cgi?id=10715
+
+ Original commit message:
+
+ From 811db086507aceaec0022798dd418956cdd4b54e Mon Sep 17 00:00:00 2001
+ From: Pierre-Olivier Mercier <nemunaire@nemunai.re>
+ Date: Mon, 4 Sep 2017 22:29:55 +0200
+ Subject: [PATCH] Test IPv6 compatibility instead of relying on library probes.
+
+ Legacy configure behaviour was to detect IPv6 support through known IPv6
+ capable version of common standard libraries. Now: it runs a POSIX test
+ to determine if IPv6 is usable (in case it has not been disabled).
+ ---
+
+diff --git a/configure.ac b/configure.ac
+index 28865ea..7a2bbfe 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -339,119 +339,36 @@ if test x"$rsync_cv_HAVE_BROKEN_LARGEFILE" != x"yes"; then
+ AC_SYS_LARGEFILE
+ fi
+
+-ipv6type=unknown
+-ipv6lib=none
+-ipv6trylibc=yes
+-
++# Checks if IPv6 is requested
++AC_MSG_CHECKING([whether to enable ipv6])
+ AC_ARG_ENABLE(ipv6,
+- AS_HELP_STRING([--disable-ipv6],[turn off IPv6 support]))
+-if test x"$enable_ipv6" != x"no"; then
+- AC_MSG_CHECKING([ipv6 stack type])
+- for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta cygwin; do
+- case $i in
+- inria)
+- # http://www.kame.net/
+- AC_EGREP_CPP(yes, [
+-#include <netinet/in.h>
+-#ifdef IPV6_INRIA_VERSION
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])
+- ])
+- ;;
+- kame)
+- # http://www.kame.net/
+- AC_EGREP_CPP(yes, [
+-#include <netinet/in.h>
+-#ifdef __KAME__
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- linux-glibc)
+- # http://www.v6.linux.or.jp/
+- AC_EGREP_CPP(yes, [
+-#include <features.h>
+-#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+-yes
+-#endif],
+- [ipv6type=$i;
+-AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- linux-inet6)
+- # http://www.v6.linux.or.jp/
+- if test -d /usr/inet6 -o -f /usr/inet6/lib/libinet6.a; then
+- ipv6type=$i
+- ipv6lib=inet6
+- ipv6libdir=/usr/inet6/lib
+- ipv6trylibc=yes;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])
+- CFLAGS="-I/usr/inet6/include $CFLAGS"
+- fi
+- ;;
+- solaris)
+- # http://www.sun.com
+- AC_EGREP_CPP(yes, [
+-#include <netinet/ip6.h>
+-#ifdef __sun
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- toshiba)
+- AC_EGREP_CPP(yes, [
+-#include <sys/param.h>
+-#ifdef _TOSHIBA_INET6
+-yes
+-#endif],
+- [ipv6type=$i;
+- ipv6lib=inet6;
+- ipv6libdir=/usr/local/v6/lib;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- v6d)
+- AC_EGREP_CPP(yes, [
+-#include </usr/local/v6/include/sys/v6config.h>
+-#ifdef __V6D__
+-yes
+-#endif],
+- [ipv6type=$i;
+- ipv6lib=v6;
+- ipv6libdir=/usr/local/v6/lib;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- zeta)
+- AC_EGREP_CPP(yes, [
+-#include <sys/param.h>
+-#ifdef _ZETA_MINAMI_INET6
+-yes
+-#endif],
+- [ipv6type=$i;
+- ipv6lib=inet6;
+- ipv6libdir=/usr/local/v6/lib;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- cygwin)
+- AC_EGREP_CPP(yes, [
+-#include <netinet/in.h>
+-#ifdef _CYGWIN_IN6_H
+-yes
+-#endif],
+- [ipv6type=$i;
+- AC_DEFINE(INET6, 1, [true if you have IPv6])])
+- ;;
+- esac
+- if test "$ipv6type" != "unknown"; then
+- break
+- fi
+- done
+- AC_MSG_RESULT($ipv6type)
++[ --disable-ipv6 disable ipv6 support],
++[ case "$enableval" in
++ no)
++ AC_MSG_RESULT(no)
++ ;;
++ *) AC_MSG_RESULT(yes)
++ AC_DEFINE(INET6, 1, [true if you have IPv6])
++ ;;
++ esac ],
+
+- AC_SEARCH_LIBS(getaddrinfo, inet6)
+-fi
++ AC_TRY_RUN([ /* AF_INET6 avalable check */
++#include <stdlib.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++main()
++{
++ if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
++ exit(1);
++ else
++ exit(0);
++}
++],
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(INET6, 1, [true if you have IPv6]),
++ AC_MSG_RESULT(no),
++ AC_MSG_RESULT(no)
++))
+
+ dnl Do you want to disable use of locale functions
+ AC_ARG_ENABLE([locale],