Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Oct 2008 19:43:37 GMT
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 151428 for review
Message-ID:  <200810151943.m9FJhbqu080391@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=151428

Change 151428 by peter@peter_daintree on 2008/10/15 19:43:23

	Merge valgrind-3.2.3@8674
	amd64 instruction decode fix.  (allows 7 prefixes as generated by
	gcc for mega-nops as code alignment fillers)

Affected files ...

.. //depot/projects/valgrind/Makefile.am#3 integrate
.. //depot/projects/valgrind/VEX/priv/guest-amd64/toIR.c#2 integrate
.. //depot/projects/valgrind/configure.in#4 integrate
.. //depot/projects/valgrind/glibc-2.6.supp#1 branch
.. //depot/projects/valgrind/glibc-2.7.supp#1 branch
.. //depot/projects/valgrind/massif/ms_main.c#2 integrate
.. //depot/projects/valgrind/xfree-4.supp#2 integrate

Differences ...

==== //depot/projects/valgrind/Makefile.am#3 (text+ko) ====

@@ -18,6 +18,7 @@
 
 SUPP_FILES = \
 	glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
+	glibc-2.6.supp glibc-2.7.supp \
 	xfree-3.supp xfree-4.supp
 
 dist_val_DATA = $(SUPP_FILES) default.supp

==== //depot/projects/valgrind/VEX/priv/guest-amd64/toIR.c#2 (text+ko) ====

@@ -8355,7 +8355,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;

==== //depot/projects/valgrind/configure.in#4 (text+ko) ====

@@ -385,6 +385,26 @@
 ],
 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_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
@@ -412,9 +432,20 @@
 	DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
 	;;
 
+     2.6)
+	AC_MSG_RESULT(2.5 family)
+	AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
+	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}"
+        DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.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.7])
 	;;
 esac
     ;;

==== //depot/projects/valgrind/massif/ms_main.c#2 (text+ko) ====

@@ -1665,15 +1665,18 @@
    if (VG_(clo_verbosity) > 1) {
       tl_assert(n_xpts > 0);  // always have alloc_xpt
       VG_(message)(Vg_DebugMsg, "    allocs: %u", n_allocs);
-      VG_(message)(Vg_DebugMsg, "zeroallocs: %u (%d%%)", n_zero_allocs,
-                                n_zero_allocs * 100 / n_allocs );
+      if ( n_allocs )
+         VG_(message)(Vg_DebugMsg, "zeroallocs: %u (%d%%)", n_zero_allocs,
+                                   n_zero_allocs * 100 / n_allocs );
       VG_(message)(Vg_DebugMsg, "     frees: %u", n_frees);
       VG_(message)(Vg_DebugMsg, "      XPts: %u (%d B)", n_xpts,
                                                          n_xpts*sizeof(XPt));
-      VG_(message)(Vg_DebugMsg, "  bot-XPts: %u (%d%%)", n_bot_xpts,
-                                n_bot_xpts * 100 / n_xpts);
-      VG_(message)(Vg_DebugMsg, "  top-XPts: %u (%d%%)", alloc_xpt->n_children,
-                                alloc_xpt->n_children * 100 / n_xpts);
+      if ( n_xpts ) 
+         VG_(message)(Vg_DebugMsg, "  bot-XPts: %u (%d%%)", n_bot_xpts,
+                                   n_bot_xpts * 100 / n_xpts);
+      if ( n_xpts )
+         VG_(message)(Vg_DebugMsg, "  top-XPts: %u (%d%%)", alloc_xpt->n_children,
+                                   alloc_xpt->n_children * 100 / n_xpts);
       VG_(message)(Vg_DebugMsg, "c-reallocs: %u", n_children_reallocs);
       VG_(message)(Vg_DebugMsg, "snap-frees: %u", n_snapshot_frees);
       VG_(message)(Vg_DebugMsg, "atmp censi: %u", n_attempted_censi);

==== //depot/projects/valgrind/xfree-4.supp#2 (text+ko) ====

@@ -134,10 +134,33 @@
 }
 
 {
+   struct with uninitialized paddings - libxcb
+   Memcheck:Param
+   writev(vector[...])
+   obj:/lib*/libc-2.6*.so
+   obj:/usr/lib*/libxcb.so.1.0.0
+   obj:/usr/lib*/libxcb.so.1.0.0
+   fun:xcb_send_request
+   fun:_X*
+}
+
+{
+   struct with uninitialized paddings - libxcb
+   Memcheck:Param
+   writev(vector[...])
+   obj:/lib*/libc-2.6*.so
+   obj:/usr/lib*/libxcb.so.1.0.0
+   obj:/usr/lib*/libxcb.so.1.0.0
+   obj:/usr/lib*/libxcb.so.1.0.0
+   fun:xcb_*
+   fun:_X*
+}
+
+{
    another struct with uninitialized paddings
    Memcheck:Param
    write(buf)
-   fun:*
+   obj:*
    fun:_IceTransSocketWrite
    fun:_IceTransWrite
    fun:_IceWrite
@@ -165,23 +188,13 @@
    Xorg 6.8.1 ICE uninit __write* padding
    Memcheck:Param
    write(buf)
-   fun:__write*
+   obj:*
    fun:_IceTransWrite
    fun:_IceWrite
    fun:IceFlush
 }
 
 {
-   Xorg 6.8.1 ICE uninit write padding
-   Memcheck:Param
-   write(buf)
-   fun:write
-   fun:_IceTransWrite
-   fun:_IceWrite
-   fun:IceFlush
-}
-
-{
    Xorg 6.8.1 writev uninit padding
    Memcheck:Param
    writev(vector[...])
@@ -202,6 +215,8 @@
    fun:_XSend
 }
 
+
+
 # There's something strange about a % 127 in XftFontOpenInfo
 # (hashing) which gcc turns into a multiply by 33818641 and
 # some other guff instead.  I don't understand it enough to



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810151943.m9FJhbqu080391>