[arch-commits] CVS update of extra/devel/valgrind (8 files)

Dan McGee dan at archlinux.org
Wed Nov 21 06:40:43 UTC 2007


    Date: Wednesday, November 21, 2007 @ 01:40:43
  Author: dan
    Path: /home/cvs-extra/extra/devel/valgrind

   Added: utimensat.patch (1.1)
          valgrind-3.2.3-cachegrind-improvements.patch (1.1)
          valgrind-3.2.3-glibc2_6.patch (1.1)
          valgrind-3.2.3-glibc2_7.patch (1.1)
          valgrind-3.2.3-x86_64-nops.patch (1.1)
Modified: PKGBUILD (1.14 -> 1.15)
 Removed: amd64.patch (1.1) glibc-2.6.patch (1.1)

upgpkg: valgrind 3.2.3-3
rebuild against glibc, use fedora patches, add my patch for utimensat that was accepted upstream


----------------------------------------------+
 PKGBUILD                                     |   34 +
 amd64.patch                                  |   12 
 glibc-2.6.patch                              |  269 ---------------
 utimensat.patch                              |   53 +++
 valgrind-3.2.3-cachegrind-improvements.patch |   64 +++
 valgrind-3.2.3-glibc2_6.patch                |  435 +++++++++++++++++++++++++
 valgrind-3.2.3-glibc2_7.patch                |  323 ++++++++++++++++++
 valgrind-3.2.3-x86_64-nops.patch             |   11 
 8 files changed, 908 insertions(+), 293 deletions(-)


Index: extra/devel/valgrind/PKGBUILD
diff -u extra/devel/valgrind/PKGBUILD:1.14 extra/devel/valgrind/PKGBUILD:1.15
--- extra/devel/valgrind/PKGBUILD:1.14	Fri Aug 24 02:34:46 2007
+++ extra/devel/valgrind/PKGBUILD	Wed Nov 21 01:40:42 2007
@@ -1,25 +1,35 @@
-# $Id: PKGBUILD,v 1.14 2007/08/24 06:34:46 eric Exp $
-# Maintainer: aurelien <aurelien at archlinux.org>
-# Contributor: Aurelien Foret <orelien at chez.com>
+# $Id: PKGBUILD,v 1.15 2007/11/21 06:40:42 dan Exp $
+# Maintainer: Dan McGee <dan at archlinux.org>
+
 pkgname=valgrind
 pkgver=3.2.3
-pkgrel=2.1
-pkgdesc="A tool to help you find memory-management problems in your programs"
+pkgrel=3
+pkgdesc="A tool to help find memory-management problems in programs"
 arch=(i686 x86_64)
 license=('GPL')
 url="http://valgrind.org/"
 depends=('glibc>=2.6')
-source=(http://valgrind.org/downloads/${pkgname}-${pkgver}.tar.bz2 glibc-2.6.patch amd64.patch)
-md5sums=('978847992b136c8d8cb5c6559a91df1c' '5e15d974cd371bd97ad5b957f54970a2'\
-         '0bbafb927c9c2ca42b862db08358160b')
+source=(http://valgrind.org/downloads/${pkgname}-${pkgver}.tar.bz2
+        valgrind-3.2.3-glibc2_6.patch
+        valgrind-3.2.3-glibc2_7.patch
+        valgrind-3.2.3-cachegrind-improvements.patch
+		utimensat.patch)
+md5sums=('978847992b136c8d8cb5c6559a91df1c'
+         'c08c1535fa296f871244435ad7723a76'
+         '07755ce7c9e3327224a2980cd8324af2'
+         '5f80d9edf8abefcd7d988032311a2957'
+         'd7cdea00ecdd1b625be17a4535ca32fe')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
-  export MAKEFLAGS="-j1"
-  patch -Np1 -i ../glibc-2.6.patch || return 1
-  [ "${CARCH}" = "x86_64" ] && (patch -Np1 < ../amd64.patch || return 1)
+
+  patch -Np1 -i ../valgrind-3.2.3-glibc2_6.patch
+  patch -Np1 -i ../valgrind-3.2.3-glibc2_7.patch
+  patch -Np1 -i ../valgrind-3.2.3-cachegrind-improvements.patch
+  patch -Np1 -i ../utimensat.patch || return 1
+
   autoconf
-  # fix glibc-2.6 compiling
+
   if [ "${CARCH}" = "x86_64" ]; then
     # make sure our CFLAGS are respected
     sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.in
Index: extra/devel/valgrind/amd64.patch
diff -u extra/devel/valgrind/amd64.patch:1.1 extra/devel/valgrind/amd64.patch:removed
--- extra/devel/valgrind/amd64.patch:1.1	Fri Aug 24 02:34:47 2007
+++ extra/devel/valgrind/amd64.patch	Wed Nov 21 01:40:43 2007
@@ -1,12 +0,0 @@
-diff -Naur valgrind-3.2.3-orig/VEX/priv/guest-amd64/toIR.c valgrind-3.2.3/VEX/priv/guest-amd64/toIR.c
---- valgrind-3.2.3-orig/VEX/priv/guest-amd64/toIR.c	2007-08-24 01:52:43.000000000 -0400
-+++ valgrind-3.2.3/VEX/priv/guest-amd64/toIR.c	2007-08-24 01:54:32.000000000 -0400
-@@ -8334,7 +8334,7 @@
-       as many invalid combinations as possible. */
-    n_prefixes = 0;
-    while (True) {
--      if (n_prefixes > 5) goto decode_failure;
-+      if (n_prefixes > 7) goto decode_failure;
-       pre = getUChar(delta);
-       switch (pre) {
-          case 0x66: pfx |= PFX_66; break;
Index: extra/devel/valgrind/glibc-2.6.patch
diff -u extra/devel/valgrind/glibc-2.6.patch:1.1 extra/devel/valgrind/glibc-2.6.patch:removed
--- extra/devel/valgrind/glibc-2.6.patch:1.1	Tue Aug 21 16:14:00 2007
+++ extra/devel/valgrind/glibc-2.6.patch	Wed Nov 21 01:40:43 2007
@@ -1,269 +0,0 @@
-diff -ruN valgrind-3.2.3/configure.in valgrind-3.2.3-fixed/configure.in
---- valgrind-3.2.3/configure.in	2007-07-17 19:32:42.956775000 +0200
-+++ valgrind-3.2.3-fixed/configure.in	2007-07-17 19:34:18.042194471 +0200
-@@ -359,6 +359,16 @@
- ],
- 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,9 +396,15 @@
- 	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])
-+	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.6])
- 	;;
- esac
- 
-diff -ruN valgrind-3.2.3/glibc-2.6.supp valgrind-3.2.3-fixed/glibc-2.6.supp
---- 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-07-17 19:34:18.042194471 +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.6*.so
-+   obj:/lib*/ld-2.6*.so
-+   obj:/lib*/ld-2.6*.so
-+   obj:/lib*/ld-2.6*.so
-+}
-+
-+{
-+   dl-hack3
-+   Memcheck:Cond
-+   obj:/lib*/ld-2.6*so*
-+   obj:/lib*/ld-2.6*so*
-+   obj:/lib*/ld-2.6*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.6.*.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.6.*.so
-+}
-+{
-+   glibc-2.3.5-on-SuSE-10.1-(PPC)-3
-+   Memcheck:Addr4
-+   fun:*wordcopy_fwd_dest_aligned*
-+   fun:mem*cpy
-+   obj:*lib*2.6.*.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.6.so
-+   obj:/*libc-2.6.so
-+   obj:/*libc-2.6.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.6.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.6.so
-+   obj:/*libc-2.6.so
-+   obj:/*libc-2.6.so
-+}
-+{
-+   X11-64bit-padding-4b
-+   Memcheck:Param
-+   socketcall.send(msg)
-+   fun:send
-+   obj:/*libc-2.6.so
-+   obj:/*libc-2.6.so
-+   obj:/*libc-2.6.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
-+}
-diff -ruN valgrind-3.2.3/Makefile.am valgrind-3.2.3-fixed/Makefile.am
---- valgrind-3.2.3/Makefile.am	2007-01-02 15:52:30.000000000 +0100
-+++ valgrind-3.2.3-fixed/Makefile.am	2007-07-17 19:35:03.672794808 +0200
-@@ -17,7 +17,7 @@
- DIST_SUBDIRS  = $(SUBDIRS)
- 
- SUPP_FILES = \
--	glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
-+	glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp glibc-2.6.supp \
- 	xfree-3.supp xfree-4.supp
- 
- dist_val_DATA = $(SUPP_FILES) default.supp
Index: extra/devel/valgrind/utimensat.patch
diff -u /dev/null extra/devel/valgrind/utimensat.patch:1.1
--- /dev/null	Wed Nov 21 01:40:43 2007
+++ extra/devel/valgrind/utimensat.patch	Wed Nov 21 01:40:42 2007
@@ -0,0 +1,53 @@
+diff -ur valgrind-3.2.3.orig/coregrind/m_syswrap/priv_syswrap-linux.h valgrind-3.2.3.new/coregrind/m_syswrap/priv_syswrap-linux.h
+--- valgrind-3.2.3.orig/coregrind/m_syswrap/priv_syswrap-linux.h	2007-10-24 18:54:10.000000000 -0500
++++ valgrind-3.2.3.new/coregrind/m_syswrap/priv_syswrap-linux.h	2007-10-24 19:58:54.000000000 -0500
+@@ -139,6 +139,7 @@
+ DECL_TEMPLATE(linux, sys_readlinkat);
+ DECL_TEMPLATE(linux, sys_fchmodat);
+ DECL_TEMPLATE(linux, sys_faccessat);
++DECL_TEMPLATE(linux, sys_utimensat);
+ 
+ // These ones have 32-bit generic equivalents, but the 16-bit versions (they
+ // use 16-bit gid_t and uid_t types) seem to be Linux-specific.
+diff -ur valgrind-3.2.3.orig/coregrind/m_syswrap/syswrap-linux.c valgrind-3.2.3.new/coregrind/m_syswrap/syswrap-linux.c
+--- valgrind-3.2.3.orig/coregrind/m_syswrap/syswrap-linux.c	2007-10-24 18:54:10.000000000 -0500
++++ valgrind-3.2.3.new/coregrind/m_syswrap/syswrap-linux.c	2007-10-24 19:35:57.000000000 -0500
+@@ -2611,6 +2611,16 @@
+    PRE_MEM_RASCIIZ( "faccessat(pathname)", ARG2 );
+ }
+ 
++PRE(sys_utimensat)
++{
++   PRINT("sys_utimensat ( %d, %p(%s), %p )", ARG1,ARG2,ARG2,ARG3);
++   PRE_REG_READ3(long, "utimensat",
++                 int, dfd, char *, filename, struct timespec *, tvp);
++   PRE_MEM_RASCIIZ( "utimensat(filename)", ARG2 );
++   if (ARG3 != 0)
++      PRE_MEM_READ( "utimensat(tvp)", ARG3, sizeof(struct vki_timespec) );
++}
++
+ #undef PRE
+ #undef POST
+ 
+diff -ur valgrind-3.2.3.orig/coregrind/m_syswrap/syswrap-x86-linux.c valgrind-3.2.3.new/coregrind/m_syswrap/syswrap-x86-linux.c
+--- valgrind-3.2.3.orig/coregrind/m_syswrap/syswrap-x86-linux.c	2007-10-24 18:54:10.000000000 -0500
++++ valgrind-3.2.3.new/coregrind/m_syswrap/syswrap-x86-linux.c	2007-10-24 20:01:30.000000000 -0500
+@@ -2177,6 +2177,8 @@
+ //   LINX_(__NR_unshare,		 sys_unshare),          // 310
+    LINX_(__NR_set_robust_list,	 sys_set_robust_list),  // 311
+    LINXY(__NR_get_robust_list,	 sys_get_robust_list),  // 312
++
++   LINX_(__NR_utimensat,     sys_utimensat),        // 320
+ };
+ 
+ const UInt ML_(syscall_table_size) = 
+diff -ur valgrind-3.2.3.orig/coregrind/vki_unistd-x86-linux.h valgrind-3.2.3.new/coregrind/vki_unistd-x86-linux.h
+--- valgrind-3.2.3.orig/coregrind/vki_unistd-x86-linux.h	2007-10-24 18:54:10.000000000 -0500
++++ valgrind-3.2.3.new/coregrind/vki_unistd-x86-linux.h	2007-10-24 19:35:57.000000000 -0500
+@@ -346,5 +346,6 @@
+ #define __NR_sync_file_range	314
+ #define __NR_tee		315
+ #define __NR_vmsplice		316
++#define __NR_utimensat		320
+ 
+ #endif /* __VKI_UNISTD_X86_LINUX_H */
Index: extra/devel/valgrind/valgrind-3.2.3-cachegrind-improvements.patch
diff -u /dev/null extra/devel/valgrind/valgrind-3.2.3-cachegrind-improvements.patch:1.1
--- /dev/null	Wed Nov 21 01:40:43 2007
+++ extra/devel/valgrind/valgrind-3.2.3-cachegrind-improvements.patch	Wed Nov 21 01:40:42 2007
@@ -0,0 +1,64 @@
+--- valgrind-3.2.3/cachegrind/cg_sim.c.jj	2007-01-08 02:43:10.000000000 -0500
++++ valgrind-3.2.3/cachegrind/cg_sim.c	2007-02-13 07:15:46.000000000 -0500
+@@ -42,29 +42,32 @@ typedef struct {
+    Int          size;                   /* bytes */
+    Int          assoc;
+    Int          line_size;              /* bytes */
+-   Int          sets;
+    Int          sets_min_1;
+    Int          assoc_bits;
+    Int          line_size_bits;
+    Int          tag_shift;
+-   Char         desc_line[128];
+    UWord*       tags;
+-} cache_t2;
++   Char         desc_line[128];
++} cache_t2
++#ifdef __GNUC__
++__attribute__ ((aligned (8 * sizeof (Int))))
++#endif
++;
+ 
+ /* By this point, the size/assoc/line_size has been checked. */
+ static void cachesim_initcache(cache_t config, cache_t2* c)
+ {
+-   Int i;
++   Int sets;
+ 
+    c->size      = config.size;
+    c->assoc     = config.assoc;
+    c->line_size = config.line_size;
+ 
+-   c->sets           = (c->size / c->line_size) / c->assoc;
+-   c->sets_min_1     = c->sets - 1;
++   sets              = (c->size / c->line_size) / c->assoc;
++   c->sets_min_1     = sets - 1;
+    c->assoc_bits     = VG_(log2)(c->assoc);
+    c->line_size_bits = VG_(log2)(c->line_size);
+-   c->tag_shift      = c->line_size_bits + VG_(log2)(c->sets);
++   c->tag_shift      = c->line_size_bits + VG_(log2)(sets);
+ 
+    if (c->assoc == 1) {
+       VG_(sprintf)(c->desc_line, "%d B, %d B, direct-mapped", 
+@@ -74,10 +77,7 @@ static void cachesim_initcache(cache_t c
+                                  c->size, c->line_size, c->assoc);
+    }
+ 
+-   c->tags = VG_(malloc)(sizeof(UWord) * c->sets * c->assoc);
+-
+-   for (i = 0; i < c->sets * c->assoc; i++)
+-      c->tags[i] = 0;
++   c->tags = VG_(calloc)(sizeof(UWord) * sets, c->assoc);
+ }
+ 
+ /* This is done as a macro rather than by passing in the cache_t2 as an 
+@@ -140,8 +140,7 @@ void cachesim_##L##_doref(Addr a, UChar 
+       return;                                                               \
+                                                                             \
+    /* Second case: word straddles two lines. */                             \
+-   /* Nb: this is a fast way of doing ((set1+1) % L.sets) */                \
+-   } else if (((set1 + 1) & (L.sets-1)) == set2) {                          \
++   } else if (((set1 + 1) & (L.sets_min_1)) == set2) {                      \
+       set = &(L.tags[set1 << L.assoc_bits]);                                \
+       if (tag == set[0]) {                                                  \
+          goto block2;                                                       \
Index: extra/devel/valgrind/valgrind-3.2.3-glibc2_6.patch
diff -u /dev/null extra/devel/valgrind/valgrind-3.2.3-glibc2_6.patch:1.1
--- /dev/null	Wed Nov 21 01:40:43 2007
+++ extra/devel/valgrind/valgrind-3.2.3-glibc2_6.patch	Wed Nov 21 01:40:42 2007
@@ -0,0 +1,435 @@
+--- valgrind-3.2.3/glibc-2.5.supp.jj	2007-01-07 06:39:15.000000000 +0100
++++ valgrind-3.2.3/glibc-2.5.supp	2007-06-27 16:10:34.000000000 +0200
+@@ -1,7 +1,7 @@
+ 
+ ##----------------------------------------------------------------------##
+ 
+-# Errors to suppress by default with glibc 2.4.x
++# Errors to suppress by default with glibc 2.5.x
+ 
+ # Format of this file is:
+ # {
+@@ -43,9 +43,9 @@
+ {
+    dl-hack3
+    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
++   obj:/lib*/ld-2.5*.so
++   obj:/lib*/ld-2.5*.so
+ }
+ 
+ ##----------------------------------------------------------------------##
+@@ -60,7 +60,7 @@
+    glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
+    Memcheck:Cond
+    fun:index
+-   obj:*ld-2.5.*.so
++   obj:*ld-2.5*.so
+ }
+ {
+    glibc-2.5.x-on-SuSE-10.2-(PPC)-2b
+@@ -72,14 +72,14 @@
+    glibc-2.5.5-on-SuSE-10.2-(PPC)-2c
+    Memcheck:Addr4
+    fun:index
+-   obj:*ld-2.5.*.so
++   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
++   obj:*lib*2.5*.so
+ }
+ 
+ ##----------------------------------------------------------------------##
+@@ -154,9 +154,9 @@
+    Memcheck:Param
+    socketcall.sendto(msg)
+    fun:__sendto_nocancel
+-   obj:/*libc-2.5.so
+-   obj:/*libc-2.5.so
+-   obj:/*libc-2.5.so
++   obj:/*libc-2.5*.so
++   obj:/*libc-2.5*.so
++   obj:/*libc-2.5*.so
+ }
+ {
+    glibc24-64bit-padding-1c
+@@ -166,7 +166,7 @@
+    fun:__nscd_get_map_ref
+    fun:nscd_get*_r
+    fun:*nscd*
+-   obj:/*libc-2.5.so
++   obj:/*libc-2.5*.so
+ }
+ 
+ 
+@@ -174,7 +174,7 @@
+    X11-64bit-padding-3a
+    Memcheck:Param
+    write(buf)
+-   obj:/*libpthread-2.4.so*
++   obj:/*libpthread-2.5*.so*
+    obj:/usr/lib*/libX11.so*
+    obj:/usr/lib*/libX11.so*
+    obj:/usr/lib*/libX11.so*
+@@ -185,18 +185,18 @@
+    Memcheck:Param
+    socketcall.sendto(msg)
+    fun:send
+-   obj:/*libc-2.5.so
+-   obj:/*libc-2.5.so
+-   obj:/*libc-2.5.so
++   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
++   obj:/*libc-2.5*.so
++   obj:/*libc-2.5*.so
++   obj:/*libc-2.5*.so
+ }
+ 
+ ##----------------------------------------------------------------------##
+--- valgrind-3.2.3/configure.in.jj	2007-06-27 12:22:59.000000000 +0200
++++ valgrind-3.2.3/configure.in	2007-06-27 16:03:45.000000000 +0200
+@@ -361,6 +361,16 @@ AC_EGREP_CPP([GLIBC_25], [
+ ],
+ 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
+@@ -388,9 +398,15 @@ case "${glibc}" in
+ 	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])
++	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.6])
+ 	;;
+ esac
+ 
+--- valgrind-3.2.3/config.h.in.jj	2007-01-02 15:55:38.000000000 +0100
++++ valgrind-3.2.3/config.h.in	2007-06-27 16:08:37.000000000 +0200
+@@ -18,6 +18,9 @@
+ /* Define to 1 if you're using glibc 2.5.x */
+ #undef GLIBC_2_5
+ 
++/* Define to 1 if you're using glibc 2.6.x */
++#undef GLIBC_2_6
++
+ /* Define to 1 if as supports mtocrf/mfocrf. */
+ #undef HAVE_AS_PPC_MFTOCRF
+ 
+--- valgrind-3.2.3/configure.jj	2007-06-27 12:22:59.000000000 +0200
++++ valgrind-3.2.3/configure	2007-06-27 16:08:16.000000000 +0200
+@@ -4391,8 +4391,30 @@ fi
+ rm -f conftest*
+ 
+ 
+-echo "$as_me:$LINENO: checking the glibc version" >&5
+-echo $ECHO_N "checking the glibc version... $ECHO_C" >&6
++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; }
+ 
+ case "${glibc}" in
+      2.2)
+@@ -4439,11 +4461,22 @@ _ACEOF
+ 	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
+-	{ { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.5" >&5
+-echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.5" >&2;}
++	{ echo "$as_me:$LINENO: result: unsupported version" >&5
++echo "${ECHO_T}unsupported version" >&6; }
++	{ { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.6" >&5
++echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.6" >&2;}
+    { (exit 1); exit 1; }; }
+ 	;;
+ esac
+--- valgrind-3.2.3/glibc-2.6.supp.jj	2007-06-27 16:09:55.000000000 +0200
++++ valgrind-3.2.3/glibc-2.6.supp	2007-06-27 16:10:20.000000000 +0200
+@@ -0,0 +1,216 @@
++
++##----------------------------------------------------------------------##
++
++# Errors to suppress by default with glibc 2.6.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.6*.so
++   obj:/lib*/ld-2.6*.so
++   obj:/lib*/ld-2.6*.so
++   obj:/lib*/ld-2.6*.so
++}
++
++{
++   dl-hack3
++   Memcheck:Cond
++   obj:/lib*/ld-2.6*.so
++   obj:/lib*/ld-2.6*.so
++   obj:/lib*/ld-2.6*.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.6*.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.6*.so
++}
++{
++   glibc-2.3.5-on-SuSE-10.1-(PPC)-3
++   Memcheck:Addr4
++   fun:*wordcopy_fwd_dest_aligned*
++   fun:mem*cpy
++   obj:*lib*2.6*.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.6*.so
++   obj:/*libc-2.6*.so
++   obj:/*libc-2.6*.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.6*.so
++}
++
++
++{
++   X11-64bit-padding-3a
++   Memcheck:Param
++   write(buf)
++   obj:/*libpthread-2.6*.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.6*.so
++   obj:/*libc-2.6*.so
++   obj:/*libc-2.6*.so
++}
++{
++   X11-64bit-padding-4b
++   Memcheck:Param
++   socketcall.send(msg)
++   fun:send
++   obj:/*libc-2.6*.so
++   obj:/*libc-2.6*.so
++   obj:/*libc-2.6*.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
++}
Index: extra/devel/valgrind/valgrind-3.2.3-glibc2_7.patch
diff -u /dev/null extra/devel/valgrind/valgrind-3.2.3-glibc2_7.patch:1.1
--- /dev/null	Wed Nov 21 01:40:43 2007
+++ extra/devel/valgrind/valgrind-3.2.3-glibc2_7.patch	Wed Nov 21 01:40:42 2007
@@ -0,0 +1,323 @@
+--- valgrind-3.2.3/configure.in.jj	2007-06-27 12:22:59.000000000 +0200
++++ valgrind-3.2.3/configure.in	2007-06-27 16:03:45.000000000 +0200
+@@ -361,6 +361,16 @@ AC_EGREP_CPP([GLIBC_26], [
+ ],
+ glibc="2.6")
+ 
++AC_EGREP_CPP([GLIBC_27], [
++#include <features.h>
++#ifdef __GNU_LIBRARY__
++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 7)
++  GLIBC_27
++ #endif
++#endif
++],
++glibc="2.7")
++
+ AC_MSG_CHECKING([the glibc version])
+ 
+ case "${glibc}" in
+@@ -388,9 +398,15 @@ case "${glibc}" in
+ 	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+ 	;;
+ 
++     2.7)
++	AC_MSG_RESULT(2.7 family)
++	AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
++	DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}"
++	;;
++
+      *)
+ 	AC_MSG_RESULT(unsupported version)
+-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.6])
++	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.7])
+ 	;;
+ esac
+ 
+--- valgrind-3.2.3/config.h.in.jj	2007-01-02 15:55:38.000000000 +0100
++++ valgrind-3.2.3/config.h.in	2007-06-27 16:08:37.000000000 +0200
+@@ -18,6 +18,9 @@
+ /* Define to 1 if you're using glibc 2.6.x */
+ #undef GLIBC_2_6
+ 
++/* Define to 1 if you're using glibc 2.7.x */
++#undef GLIBC_2_7
++
+ /* Define to 1 if as supports mtocrf/mfocrf. */
+ #undef HAVE_AS_PPC_MFTOCRF
+ 
+--- valgrind-3.2.3/configure.jj	2007-06-27 12:22:59.000000000 +0200
++++ valgrind-3.2.3/configure	2007-06-27 16:08:16.000000000 +0200
+@@ -4413,6 +4413,28 @@ fi
+ 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__ == 7)
++  GLIBC_27
++ #endif
++#endif
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++  $EGREP "GLIBC_27" >/dev/null 2>&1; then
++  glibc="2.7"
++fi
++rm -f conftest*
++
++
+ { echo "$as_me:$LINENO: checking the glibc version" >&5
+ echo $ECHO_N "checking the glibc version... $ECHO_C" >&6; }
+ 
+@@ -4472,11 +4494,22 @@ _ACEOF
+ 	DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+ 	;;
+ 
++     2.7)
++	echo "$as_me:$LINENO: result: 2.7 family" >&5
++echo "${ECHO_T}2.7 family" >&6
++
++cat >>confdefs.h <<\_ACEOF
++#define GLIBC_2_7 1
++_ACEOF
++
++	DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}"
++	;;
++
+      *)
+ 	{ echo "$as_me:$LINENO: result: unsupported version" >&5
+ echo "${ECHO_T}unsupported version" >&6; }
+-	{ { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.6" >&5
+-echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.6" >&2;}
++	{ { echo "$as_me:$LINENO: error: Valgrind requires glibc version 2.2 - 2.7" >&5
++echo "$as_me: error: Valgrind requires glibc version 2.2 - 2.7" >&2;}
+    { (exit 1); exit 1; }; }
+ 	;;
+ esac
+--- valgrind-3.2.3/glibc-2.7.supp.jj	2007-06-27 16:09:55.000000000 +0200
++++ valgrind-3.2.3/glibc-2.7.supp	2007-06-27 16:10:20.000000000 +0200
+@@ -0,0 +1,216 @@
++
++##----------------------------------------------------------------------##
++
++# Errors to suppress by default with glibc 2.7.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.7*.so
++   obj:/lib*/ld-2.7*.so
++   obj:/lib*/ld-2.7*.so
++   obj:/lib*/ld-2.7*.so
++}
++
++{
++   dl-hack3
++   Memcheck:Cond
++   obj:/lib*/ld-2.7*.so
++   obj:/lib*/ld-2.7*.so
++   obj:/lib*/ld-2.7*.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.7*.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.7*.so
++}
++{
++   glibc-2.3.5-on-SuSE-10.1-(PPC)-3
++   Memcheck:Addr4
++   fun:*wordcopy_fwd_dest_aligned*
++   fun:mem*cpy
++   obj:*lib*2.7*.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.7*.so
++   obj:/*libc-2.7*.so
++   obj:/*libc-2.7*.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.7*.so
++}
++
++
++{
++   X11-64bit-padding-3a
++   Memcheck:Param
++   write(buf)
++   obj:/*libpthread-2.7*.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.7*.so
++   obj:/*libc-2.7*.so
++   obj:/*libc-2.7*.so
++}
++{
++   X11-64bit-padding-4b
++   Memcheck:Param
++   socketcall.send(msg)
++   fun:send
++   obj:/*libc-2.7*.so
++   obj:/*libc-2.7*.so
++   obj:/*libc-2.7*.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
++}
Index: extra/devel/valgrind/valgrind-3.2.3-x86_64-nops.patch
diff -u /dev/null extra/devel/valgrind/valgrind-3.2.3-x86_64-nops.patch:1.1
--- /dev/null	Wed Nov 21 01:40:43 2007
+++ extra/devel/valgrind/valgrind-3.2.3-x86_64-nops.patch	Wed Nov 21 01:40:42 2007
@@ -0,0 +1,11 @@
+--- valgrind-3.2.3/VEX/priv/guest-amd64/toIR.c	(revision 1776)
++++ valgrind-3.2.3/VEX/priv/guest-amd64/toIR.c	(revision 1777)
+@@ -8355,7 +8355,7 @@ DisResult disInstr_AMD64_WRK ( 
+       as many invalid combinations as possible. */
+    n_prefixes = 0;
+    while (True) {
+-      if (n_prefixes > 5) goto decode_failure;
++      if (n_prefixes > 7) goto decode_failure;
+       pre = getUChar(delta);
+       switch (pre) {
+          case 0x66: pfx |= PFX_66; break;




More information about the arch-commits mailing list