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>