# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# 
# T2 SDE: package/.../valgrind/glibc26.patch
# Copyright (C) 2007 The T2 SDE Project
# 
# More information can be found in the files COPYING and README.
# 
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- T2-COPYRIGHT-NOTE-END ---

--- valgrind-3.2.3/configure.in	2007-01-29 20:42:52.000000000 +0100
+++ valgrind-3.2.3-fixed/configure.in	2007-05-29 10:17:25.396231517 +0200
@@ -359,6 +359,17 @@
 ],
 glibc="2.5")
 
+AC_EGREP_CPP([GLIBC_26], [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 6)
+  GLIBC_26
+ #endif
+#endif
+],
+glibc="2.6")
+
+
 AC_MSG_CHECKING([the glibc version])
 
 case "${glibc}" in
@@ -386,6 +397,12 @@
 	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
 	;;
 
+     2.6)
+	AC_MSG_RESULT(2.6 family)
+	AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
+	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+	;;
+
      *)
 	AC_MSG_RESULT(unsupported version)
 	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.5])
--- valgrind-3.2.3/configure	2007-01-29 20:45:30.000000000 +0100
+++ valgrind-3.2.3-fixed/configure	2007-05-29 10:06:47.879901532 +0200
@@ -4390,6 +4390,28 @@
 rm -f conftest*
 
 
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 6)
+  GLIBC_26
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "GLIBC_26" >/dev/null 2>&1; then
+  glibc="2.6"
+fi
+rm -f conftest*
+
+
 echo "$as_me:$LINENO: checking the glibc version" >&5
 echo $ECHO_N "checking the glibc version... $ECHO_C" >&6
 
@@ -4438,6 +4460,17 @@
 	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
 	;;
 
+	2.6)
+	echo "$as_me:$LINENO: result: 2.6 family" >&5
+echo "${ECHO_T}2.6 family" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define GLIBC_2_6 1
+_ACEOF
+
+	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+	;;
+
      *)
 	echo "$as_me:$LINENO: result: unsupported version" >&5
 echo "${ECHO_T}unsupported version" >&6
--- valgrind-3.2.3/glibc-2.6.supp	1970-01-01 01:00:00.000000000 +0100
+++ valgrind-3.2.3-fixed/glibc-2.6.supp	2007-05-29 10:03:05.551231743 +0200
@@ -0,0 +1,216 @@
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with glibc 2.4.x
+
+# Format of this file is:
+# {
+#     name_of_suppression
+#     tool_name:supp_kind
+#     (optional extra info for some suppression types)
+#     caller0 name, or /name/of/so/file.so
+#     caller1 name, or ditto
+#     (optionally: caller2 name)
+#     (optionally: caller3 name)
+#  }
+#
+# For Memcheck, the supp_kinds are:
+#
+#     Param Value1 Value2 Value4 Value8 Value16
+#     Free Addr1 Addr2 Addr4 Addr8 Addr16
+#     Cond (previously known as Value0)
+#
+# and the optional extra info is:
+#     if Param: name of system call param
+#     if Free: name of free-ing fn)
+
+{
+   dl-hack1
+   Memcheck:Cond
+   fun:_dl_start
+   fun:_start
+}
+
+{
+   dl-hack2
+   Memcheck:Cond
+   obj:/lib*/ld-2.5*.so
+   obj:/lib*/ld-2.5*.so
+   obj:/lib*/ld-2.5*.so
+   obj:/lib*/ld-2.5*.so
+}
+
+{
+   dl-hack3
+   Memcheck:Cond
+   obj:/lib*/ld-2.5*so*
+   obj:/lib*/ld-2.5*so*
+   obj:/lib*/ld-2.5*so*
+}
+
+##----------------------------------------------------------------------##
+{
+   glibc-2.5.x-on-SUSE-10.2-(PPC)-1
+   Memcheck:Cond
+   fun:_dl_start_final
+   fun:_dl_start
+   fun:_start
+}
+{
+   glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
+   Memcheck:Cond
+   fun:index
+   obj:*ld-2.5.*.so
+}
+{
+   glibc-2.5.x-on-SuSE-10.2-(PPC)-2b
+   Memcheck:Addr4
+   fun:index
+   fun:expand_dynamic_string_token
+}
+{
+   glibc-2.5.5-on-SuSE-10.2-(PPC)-2c
+   Memcheck:Addr4
+   fun:index
+   obj:*ld-2.5.*.so
+}
+{
+   glibc-2.3.5-on-SuSE-10.1-(PPC)-3
+   Memcheck:Addr4
+   fun:*wordcopy_fwd_dest_aligned*
+   fun:mem*cpy
+   obj:*lib*2.5.*.so
+}
+
+##----------------------------------------------------------------------##
+## Various structure padding things on SUSE 10.2
+##
+{
+   X11-64bit-padding-1a
+   Memcheck:Param
+   write(buf)
+   fun:__write_nocancel
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+   fun:X*
+}
+{
+   X11-64bit-padding-1b
+   Memcheck:Param
+   write(buf)
+   fun:__write_nocancel
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+   fun:_X*
+}
+{
+   X11-64bit-padding-1c
+   Memcheck:Param
+   write(buf)
+   fun:__write_nocancel
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+}
+{
+   X11-64bit-padding-1d
+   Memcheck:Param
+   write(buf)
+   fun:__write_nocancel
+   obj:/usr/lib*/libICE.so*
+   obj:/usr/lib*/libICE.so*
+   obj:/usr/lib*/libICE.so*
+}
+{
+   X11-64bit-padding-2a
+   Memcheck:Param
+   writev(vector[...])
+   fun:do_writev
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+}
+{
+   X11-64bit-padding-2b
+   Memcheck:Param
+   writev(vector[...])
+   fun:do_writev
+   fun:writev
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+}
+
+{
+   glibc24-64bit-padding-1a
+   Memcheck:Param
+   socketcall.sendto(msg)
+   fun:send
+   fun:get_mapping
+   fun:__nscd_get_map_ref
+   fun:nscd*
+}
+{
+   glibc24-64bit-padding-1b
+   Memcheck:Param
+   socketcall.sendto(msg)
+   fun:__sendto_nocancel
+   obj:/*libc-2.5.so
+   obj:/*libc-2.5.so
+   obj:/*libc-2.5.so
+}
+{
+   glibc24-64bit-padding-1c
+   Memcheck:Param
+   socketcall.send(msg)
+   fun:send
+   fun:__nscd_get_map_ref
+   fun:nscd_get*_r
+   fun:*nscd*
+   obj:/*libc-2.5.so
+}
+
+
+{
+   X11-64bit-padding-3a
+   Memcheck:Param
+   write(buf)
+   obj:/*libpthread-2.4.so*
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+   obj:/usr/lib*/libX11.so*
+}
+
+{
+   X11-64bit-padding-4a
+   Memcheck:Param
+   socketcall.sendto(msg)
+   fun:send
+   obj:/*libc-2.5.so
+   obj:/*libc-2.5.so
+   obj:/*libc-2.5.so
+}
+{
+   X11-64bit-padding-4b
+   Memcheck:Param
+   socketcall.send(msg)
+   fun:send
+   obj:/*libc-2.5.so
+   obj:/*libc-2.5.so
+   obj:/*libc-2.5.so
+}
+
+##----------------------------------------------------------------------##
+# MontaVista Linux 4.0.1 on ppc32
+{
+    MVL-401-linuxthreads-pthread_create
+    Memcheck:Param
+    write(buf)
+    fun:pthread_create
+}
+{
+   MVL-401-linuxthreads-pthread_create
+   Memcheck:Param
+   write(buf)
+   obj:/lib/libpthread-0.10.so
+   fun:pthread_create
+}