Mark Wielaard 0bbad0
commit 4f3062b90b12f3e031a1c949c50a79e0d13de485
Mark Wielaard 0bbad0
Author: bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Mark Wielaard 0bbad0
Date:   Sat Sep 13 10:53:00 2014 +0000
Mark Wielaard 0bbad0
Mark Wielaard 0bbad0
    configure.ac: Generalize glibc version check
Mark Wielaard 0bbad0
    
Mark Wielaard 0bbad0
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14530 a5019735-40e9-0310-863c-91ae7b9d1cf9
Mark Wielaard 0bbad0
Mark Wielaard 0bbad0
diff --git a/configure.ac b/configure.ac
Mark Wielaard 0bbad0
index ba11ec6..863cd7e 100644
Mark Wielaard 0bbad0
--- a/configure.ac
Mark Wielaard 0bbad0
+++ b/configure.ac
Mark Wielaard 0bbad0
@@ -875,141 +875,41 @@ AC_EGREP_CPP([BIONIC_LIBC], [
Mark Wielaard 0bbad0
 GLIBC_VERSION="bionic")
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-AC_MSG_CHECKING([the GLIBC_VERSION version])
Mark Wielaard 0bbad0
+AC_MSG_CHECKING([the glibc version])
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 case "${GLIBC_VERSION}" in
Mark Wielaard 0bbad0
      2.2)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.2 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
Mark Wielaard 0bbad0
+	AC_MSG_RESULT(${GLIBC_VERSION} family)
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     2.3)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.3 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     2.4)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.4 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     2.5)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.5 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.6)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.6 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.7)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.7 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.8)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.8 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_8], 1, [Define to 1 if you're using glibc 2.8.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.9)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.9 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_9], 1, [Define to 1 if you're using glibc 2.9.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.10)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.10 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_10], 1, [Define to 1 if you're using glibc 2.10.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.11)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.11 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_11], 1, [Define to 1 if you're using glibc 2.11.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-        ;;
Mark Wielaard 0bbad0
-     2.12)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.12 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_12], 1, [Define to 1 if you're using glibc 2.12.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.13)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.13 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_13], 1, [Define to 1 if you're using glibc 2.13.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.14)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.14 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_14], 1, [Define to 1 if you're using glibc 2.14.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
+     2.[[3-6]])
Mark Wielaard 0bbad0
+	AC_MSG_RESULT(${GLIBC_VERSION} family)
Mark Wielaard 0bbad0
+	DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-     2.15)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.15 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_15], 1, [Define to 1 if you're using glibc 2.15.x])
Mark Wielaard 0bbad0
+     2.[[7-9]])
Mark Wielaard 0bbad0
+	AC_MSG_RESULT(${GLIBC_VERSION} family)
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-     2.16)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.16 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.x])
Mark Wielaard 0bbad0
+     2.10|2.11)
Mark Wielaard 0bbad0
+	AC_MSG_RESULT(${GLIBC_VERSION} family)
Mark Wielaard 0bbad0
+	AC_DEFINE([GLIBC_MANDATORY_STRLEN_REDIRECT], 1,
Mark Wielaard 0bbad0
+		  [Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10)])
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-     2.17)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.17 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.18)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.18 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_18], 1, [Define to 1 if you're using glibc 2.18.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.19)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.19 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.19.x])
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.20)
Mark Wielaard 0bbad0
-	AC_MSG_RESULT(2.20 family)
Mark Wielaard 0bbad0
-	AC_DEFINE([GLIBC_2_20], 1, [Define to 1 if you're using glibc 2.20.x])
Mark Wielaard 0bbad0
+     2.*)
Mark Wielaard 0bbad0
+	AC_MSG_RESULT(${GLIBC_VERSION} family)
Mark Wielaard 0bbad0
+	AC_DEFINE([GLIBC_MANDATORY_STRLEN_REDIRECT], 1,
Mark Wielaard 0bbad0
+		  [Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10)])
Mark Wielaard 0bbad0
+	AC_DEFINE([GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT], 1,
Mark Wielaard 0bbad0
+		  [Define to 1 if index() and strlen() have been optimized heavily (x86 glibc >= 2.12)])
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
@@ -1024,10 +924,9 @@ case "${GLIBC_VERSION}" in
Mark Wielaard 0bbad0
 	AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic])
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     *)
Mark Wielaard 0bbad0
+     2.0|2.1|*)
Mark Wielaard 0bbad0
 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
Mark Wielaard 0bbad0
-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.19])
Mark Wielaard 0bbad0
+	AC_MSG_ERROR([Valgrind requires glibc version 2.2 or later])
Mark Wielaard 0bbad0
 	AC_MSG_ERROR([or Darwin or Bionic libc])
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
 esac
Mark Wielaard 0bbad0
diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
Mark Wielaard 0bbad0
index 9d3c9b1..9aee707 100644
Mark Wielaard 0bbad0
--- a/coregrind/m_redir.c
Mark Wielaard 0bbad0
+++ b/coregrind/m_redir.c
Mark Wielaard 0bbad0
@@ -53,7 +53,7 @@
Mark Wielaard 0bbad0
 #include "pub_core_demangle.h"     // VG_(maybe_Z_demangle)
Mark Wielaard 0bbad0
 #include "pub_core_libcproc.h"     // VG_(libdir)
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-#include "config.h" /* GLIBC_2_* */
Mark Wielaard 0bbad0
+#include "config.h" /* GLIBC_MANDATORY_*_REDIRECT */
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 /* This module is a critical part of the redirection/intercept system.
Mark Wielaard 0bbad0
@@ -1242,10 +1242,7 @@ void VG_(redir_initialise) ( void )
Mark Wielaard 0bbad0
       start, otherwise ld.so (glibc-2.3.5) makes a lot of noise. */
Mark Wielaard 0bbad0
    if (0==VG_(strcmp)("Memcheck", VG_(details).name)) {
Mark Wielaard 0bbad0
       const HChar** mandatory;
Mark Wielaard 0bbad0
-#     if defined(GLIBC_2_2) || defined(GLIBC_2_3) || defined(GLIBC_2_4) \
Mark Wielaard 0bbad0
-         || defined(GLIBC_2_5) || defined(GLIBC_2_6) || defined(GLIBC_2_7) \
Mark Wielaard 0bbad0
-         || defined(GLIBC_2_8) || defined(GLIBC_2_9) \
Mark Wielaard 0bbad0
-         || defined(GLIBC_2_10) || defined(GLIBC_2_11)
Mark Wielaard 0bbad0
+#     ifndef GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT
Mark Wielaard 0bbad0
       mandatory = NULL;
Mark Wielaard 0bbad0
 #     else
Mark Wielaard 0bbad0
       /* for glibc-2.12 and later, this is mandatory - can't sanely
Mark Wielaard 0bbad0
@@ -1282,9 +1279,7 @@ void VG_(redir_initialise) ( void )
Mark Wielaard 0bbad0
       add_hardwired_spec(
Mark Wielaard 0bbad0
          "ld-linux-x86-64.so.2", "strlen",
Mark Wielaard 0bbad0
          (Addr)&VG_(amd64_linux_REDIR_FOR_strlen),
Mark Wielaard 0bbad0
-#        if defined(GLIBC_2_2) || defined(GLIBC_2_3) || defined(GLIBC_2_4) \
Mark Wielaard 0bbad0
-            || defined(GLIBC_2_5) || defined(GLIBC_2_6) || defined(GLIBC_2_7) \
Mark Wielaard 0bbad0
-            || defined(GLIBC_2_8) || defined(GLIBC_2_9)
Mark Wielaard 0bbad0
+#        ifndef GLIBC_MANDATORY_STRLEN_REDIRECT
Mark Wielaard 0bbad0
          NULL
Mark Wielaard 0bbad0
 #        else
Mark Wielaard 0bbad0
          /* for glibc-2.10 and later, this is mandatory - can't sanely
Mark Wielaard 0bbad0
--- valgrind-3.10.1/configure.orig	2015-02-18 16:53:12.878214576 +0100
Mark Wielaard 0bbad0
+++ valgrind-3.10.1/configure	2015-02-18 16:54:17.347087203 +0100
Mark Wielaard 0bbad0
@@ -6645,198 +6645,49 @@
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the GLIBC_VERSION version" >&5
Mark Wielaard 0bbad0
-$as_echo_n "checking the GLIBC_VERSION version... " >&6; }
Mark Wielaard 0bbad0
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the glibc version" >&5
Mark Wielaard 0bbad0
+$as_echo_n "checking the glibc version... " >&6; }
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 case "${GLIBC_VERSION}" in
Mark Wielaard 0bbad0
      2.2)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.2 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.2 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_2 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${GLIBC_VERSION} family" >&5
Mark Wielaard 0bbad0
+$as_echo "${GLIBC_VERSION} family" >&6; }
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     2.3)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.3 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.3 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_3 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     2.4)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.4 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.4 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_4 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     2.5)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.5 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.5 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_5 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.6)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.6 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.6 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_6 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.7)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.7 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.7 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_7 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.8)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.8 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.8 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_8 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.9)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.9 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.9 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_9 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.10)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.10 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.10 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_10 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.11)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.11 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.11 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_11 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-        ;;
Mark Wielaard 0bbad0
-     2.12)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.12 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.12 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_12 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.13)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.13 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.13 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_13 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.14)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.14 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.14 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_14 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.15)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.15 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.15 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_15 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.16)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.16 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.16 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_16 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
+     2.[3-6])
Mark Wielaard 0bbad0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${GLIBC_VERSION} family" >&5
Mark Wielaard 0bbad0
+$as_echo "${GLIBC_VERSION} family" >&6; }
Mark Wielaard 0bbad0
+	DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-     2.17)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.17 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.17 family" >&6; }
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_17 1" >>confdefs.h
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
+     2.[7-9])
Mark Wielaard 0bbad0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${GLIBC_VERSION} family" >&5
Mark Wielaard 0bbad0
+$as_echo "${GLIBC_VERSION} family" >&6; }
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-     2.18)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.18 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.18 family" >&6; }
Mark Wielaard 0bbad0
+     2.10|2.11)
Mark Wielaard 0bbad0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${GLIBC_VERSION} family" >&5
Mark Wielaard 0bbad0
+$as_echo "${GLIBC_VERSION} family" >&6; }
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_18 1" >>confdefs.h
Mark Wielaard 0bbad0
+$as_echo "#define GLIBC_MANDATORY_STRLEN_REDIRECT 1" >>confdefs.h
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-     2.19)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.19 family" >&6; }
Mark Wielaard 0bbad0
+     2.*)
Mark Wielaard 0bbad0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${GLIBC_VERSION} family" >&5
Mark Wielaard 0bbad0
+$as_echo "${GLIBC_VERSION} family" >&6; }
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_19 1" >>confdefs.h
Mark Wielaard 0bbad0
+$as_echo "#define GLIBC_MANDATORY_STRLEN_REDIRECT 1" >>confdefs.h
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
-	;;
Mark Wielaard 0bbad0
-     2.20)
Mark Wielaard 0bbad0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.20 family" >&5
Mark Wielaard 0bbad0
-$as_echo "2.20 family" >&6; }
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
-$as_echo "#define GLIBC_2_20 1" >>confdefs.h
Mark Wielaard 0bbad0
+$as_echo "#define GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT 1" >>confdefs.h
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
@@ -6858,11 +6709,10 @@
Mark Wielaard 0bbad0
 
Mark Wielaard 0bbad0
 	DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}"
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
-
Mark Wielaard 0bbad0
-     *)
Mark Wielaard 0bbad0
+     2.0|2.1|*)
Mark Wielaard 0bbad0
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
Mark Wielaard 0bbad0
 $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
Mark Wielaard 0bbad0
-	as_fn_error $? "Valgrind requires glibc version 2.2 - 2.19" "$LINENO" 5
Mark Wielaard 0bbad0
+	as_fn_error $? "Valgrind requires glibc version 2.2 or later" "$LINENO" 5
Mark Wielaard 0bbad0
 	as_fn_error $? "or Darwin or Bionic libc" "$LINENO" 5
Mark Wielaard 0bbad0
 	;;
Mark Wielaard 0bbad0
 esac