This commit is contained in:
Jakub Jelinek 2012-01-27 17:56:53 +01:00
parent 032a380edd
commit 81c97a1660
30 changed files with 413 additions and 39570 deletions

3
.gitignore vendored
View File

@ -1,2 +1 @@
valgrind-3.6.0.tar.bz2 /valgrind-3.7.0.tar.bz2
/valgrind-3.6.1.tar.bz2

View File

@ -1 +1 @@
2c3aa122498baecc9d69194057ca88f5 valgrind-3.6.1.tar.bz2 a855fda56edf05614f099dca316d1775 valgrind-3.7.0.tar.bz2

View File

@ -1,11 +0,0 @@
--- valgrind/include/pub_tool_basics.h.jj 2010-10-20 22:19:27.000000000 +0200
+++ valgrind/include/pub_tool_basics.h 2010-11-05 18:03:15.416830321 +0100
@@ -316,7 +316,7 @@ static inline Bool sr_EQ ( SysRes sr1, S
#define VG_BUGS_TO "www.valgrind.org"
/* Branch prediction hints. */
-#if 1 /*HAVE_BUILTIN_EXPECT*/
+#if defined(__GNUC__) && (__GNUC__ >= 3) /*HAVE_BUILTIN_EXPECT*/
# define LIKELY(x) __builtin_expect(!!(x), 1)
# define UNLIKELY(x) __builtin_expect((x), 0)
#else

View File

@ -1,190 +0,0 @@
--- valgrind/none/tests/amd64/gen_insn_test.pl.jj 2010-10-20 22:19:31.000000000 +0200
+++ valgrind/none/tests/amd64/gen_insn_test.pl 2011-02-22 18:36:34.767401963 +0100
@@ -628,7 +628,7 @@ while (<>)
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
+ if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w|r(8|16|32|64)|mm|xmm)$/)
{
$result->{argnum} = $argnum++;
}
@@ -642,14 +642,6 @@ while (<>)
}
}
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32|64)|mm|xmm)$/)
- {
- $result->{argnum} = $argnum++;
- }
- }
-
my $stateargnum = $argnum++;
print qq| char state\[108\];\n|;
@@ -689,8 +681,8 @@ while (<>)
}
elsif ($arg->{type} eq "xmm")
{
- print qq| \"movlps 0+%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
- print qq| \"movhps 8+%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ print qq| \"movlps %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ print qq| \"movhps %H$arg->{argnum}, %%$arg->{register}\\n\"\n|;
}
elsif ($arg->{type} eq "st")
{
@@ -803,8 +795,8 @@ while (<>)
}
elsif ($result->{type} eq "xmm")
{
- print qq| \"movlps %%$result->{register}, 0+%$result->{argnum}\\n\"\n|;
- print qq| \"movhps %%$result->{register}, 8+%$result->{argnum}\\n\"\n|;
+ print qq| \"movlps %%$result->{register}, %$result->{argnum}\\n\"\n|;
+ print qq| \"movhps %%$result->{register}, %H$result->{argnum}\\n\"\n|;
}
elsif ($result->{type} eq "st")
{
@@ -852,11 +844,16 @@ while (<>)
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
+ if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w|r(8|16|32|64)|mm)$/)
{
print qq|$prefix\"=m\" \($result->{name}\)|;
$prefix = ", ";
}
+ elsif ($result->{type} eq "xmm")
+ {
+ print qq|$prefix\"=o\" \($result->{name}\)|;
+ $prefix = ", ";
+ }
}
print qq|\n|;
@@ -867,20 +864,18 @@ while (<>)
{
if (defined($arg->{name}))
{
- print qq|$prefix\"m\" \($arg->{name}\)|;
+ if ($arg->{type} eq "xmm")
+ {
+ print qq|$prefix\"o\" \($arg->{name}\)|;
+ }
+ else
+ {
+ print qq|$prefix\"m\" \($arg->{name}\)|;
+ }
$prefix = ", ";
}
}
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32|64)|mm|xmm)$/)
- {
- print qq|$prefix\"m\" \($result->{name}\)|;
- $prefix = ", ";
- }
- }
-
print qq|$prefix\"m\" \(state[0]\)\n|;
$prefix = " : ";
--- valgrind/none/tests/x86/gen_insn_test.pl.jj 2010-10-20 22:19:35.000000000 +0200
+++ valgrind/none/tests/x86/gen_insn_test.pl 2011-02-22 18:30:27.750683267 +0100
@@ -605,7 +605,7 @@ while (<>)
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
+ if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w|r(8|16|32)|mm|xmm)$/)
{
$result->{argnum} = $argnum++;
}
@@ -619,14 +619,6 @@ while (<>)
}
}
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32)|mm|xmm)$/)
- {
- $result->{argnum} = $argnum++;
- }
- }
-
my $stateargnum = $argnum++;
print qq| char state\[108\];\n|;
@@ -658,8 +650,8 @@ while (<>)
}
elsif ($arg->{type} eq "xmm")
{
- print qq| \"movlps 0%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
- print qq| \"movhps 8%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ print qq| \"movlps %$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+ print qq| \"movhps %H$arg->{argnum}, %%$arg->{register}\\n\"\n|;
}
elsif ($arg->{type} eq "st")
{
@@ -767,8 +759,8 @@ while (<>)
}
elsif ($result->{type} eq "xmm")
{
- print qq| \"movlps %%$result->{register}, 0%$result->{argnum}\\n\"\n|;
- print qq| \"movhps %%$result->{register}, 8%$result->{argnum}\\n\"\n|;
+ print qq| \"movlps %%$result->{register}, %$result->{argnum}\\n\"\n|;
+ print qq| \"movhps %%$result->{register}, %H$result->{argnum}\\n\"\n|;
}
elsif ($result->{type} eq "st")
{
@@ -817,11 +809,16 @@ while (<>)
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
+ if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w|r(8|16|32)|mm)$/)
{
print qq|$prefix\"=m\" \($result->{name}\)|;
$prefix = ", ";
}
+ elsif ($result->{type} eq "xmm")
+ {
+ print qq|$prefix\"=o\" \($result->{name}\)|;
+ $prefix = ", ";
+ }
}
print qq|\n|;
@@ -832,20 +829,18 @@ while (<>)
{
if (defined($arg->{name}))
{
- print qq|$prefix\"m\" \($arg->{name}\)|;
+ if ($arg->{type} eq "xmm")
+ {
+ print qq|$prefix\"o\" \($arg->{name}\)|;
+ }
+ else
+ {
+ print qq|$prefix\"m\" \($arg->{name}\)|;
+ }
$prefix = ", ";
}
}
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32)|mm|xmm)$/)
- {
- print qq|$prefix\"m\" \($result->{name}\)|;
- $prefix = ", ";
- }
- }
-
print qq|$prefix\"m\" \(state[0]\)\n|;
$prefix = " : ";

View File

@ -1,49 +0,0 @@
--- valgrind-3.5.0/glibc-2.X.supp.in.jj 2009-08-19 09:37:48.000000000 -0400
+++ valgrind-3.5.0/glibc-2.X.supp.in 2009-08-21 09:03:55.168206000 -0400
@@ -168,9 +168,9 @@
Memcheck:Param
socketcall.sendto(msg)
fun:__sendto_nocancel
- obj:/*libc-@GLIBC_VERSION@.so
- obj:/*libc-@GLIBC_VERSION@.so
- obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@*.so
+ obj:/*libc-@GLIBC_VERSION@*.so
+ obj:/*libc-@GLIBC_VERSION@*.so
}
{
glibc24-64bit-padding-1c
@@ -180,7 +180,7 @@
fun:__nscd_get_map_ref
fun:nscd_get*_r
fun:*nscd*
- obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@*.so
}
@@ -199,18 +199,18 @@
Memcheck:Param
socketcall.sendto(msg)
fun:send
- obj:/*libc-@GLIBC_VERSION@.so
- obj:/*libc-@GLIBC_VERSION@.so
- obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@*.so
+ obj:/*libc-@GLIBC_VERSION@*.so
+ obj:/*libc-@GLIBC_VERSION@*.so
}
{
X11-64bit-padding-4b
Memcheck:Param
socketcall.send(msg)
fun:send
- obj:/*libc-@GLIBC_VERSION@.so
- obj:/*libc-@GLIBC_VERSION@.so
- obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@*.so
+ obj:/*libc-@GLIBC_VERSION@*.so
+ obj:/*libc-@GLIBC_VERSION@*.so
}
##----------------------------------------------------------------------##

View File

@ -1,67 +0,0 @@
--- valgrind/configure.in.jj 2010-10-21 03:14:02.000000000 +0200
+++ valgrind/configure.in 2010-11-05 17:09:18.674455299 +0100
@@ -749,6 +759,13 @@ case "${GLIBC_VERSION}" in
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.14)
+ AC_MSG_RESULT(2.14 family)
+ AC_DEFINE([GLIBC_2_14], 1, [Define to 1 if you're using glibc 2.14.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
aix5)
AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3])
@@ -762,7 +779,7 @@ case "${GLIBC_VERSION}" in
*)
AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.13])
+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.14])
AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION])
AC_MSG_ERROR([or Darwin libc])
;;
--- valgrind/config.h.in.jj 2010-10-20 22:20:49.000000000 +0200
+++ valgrind/config.h.in 2010-11-05 17:08:33.863454886 +0100
@@ -33,6 +33,9 @@
/* Define to 1 if you're using glibc 2.13.x */
#undef GLIBC_2_13
+/* Define to 1 if you're using glibc 2.14.x */
+#undef GLIBC_2_14
+
/* Define to 1 if you're using glibc 2.2.x */
#undef GLIBC_2_2
--- valgrind/configure.jj 2010-10-21 03:16:18.000000000 +0200
+++ valgrind/configure 2010-11-05 17:09:39.163455396 +0100
@@ -6367,6 +6389,18 @@ $as_echo "#define GLIBC_2_13 1" >>confde
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.14)
+ echo "$as_me:$LINENO: result: 2.14 family" >&5
+echo "${ECHO_T}2.14 family" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define GLIBC_2_14 1
+_ACEOF
+
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
aix5)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX 5.1 or 5.2 or 5.3" >&5
$as_echo "AIX 5.1 or 5.2 or 5.3" >&6; }
@@ -6387,7 +6421,7 @@ $as_echo "#define DARWIN_LIBC 1" >>confd
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
$as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
- as_fn_error "Valgrind requires glibc version 2.2 - 2.13" "$LINENO" 5
+ as_fn_error "Valgrind requires glibc version 2.2 - 2.14" "$LINENO" 5
as_fn_error "or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION" "$LINENO" 5
as_fn_error "or Darwin libc" "$LINENO" 5
;;

View File

@ -1,60 +0,0 @@
--- valgrind/helgrind/tests/tc07_hbl1.c.jj 2010-11-11 17:58:01.000000000 +0100
+++ valgrind/helgrind/tests/tc07_hbl1.c 2010-11-12 17:46:11.144455060 +0100
@@ -48,23 +48,23 @@
|| defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5)
# define INC(_lval,_lqual) \
__asm__ __volatile__( \
- "L1xyzzy1" _lqual ":\n" \
+ "1:\n" \
" lwarx 15,0,%0\n" \
" addi 15,15,1\n" \
" stwcx. 15,0,%0\n" \
- " bne- L1xyzzy1" _lqual \
+ " bne- 1b\n" \
: /*out*/ : /*in*/ "b"(&(_lval)) \
: /*trash*/ "r15", "cr0", "memory" \
)
#elif defined(PLAT_arm_linux)
# define INC(_lval,_lqual) \
__asm__ __volatile__( \
- "L1xyzzy1" _lqual ":\n" \
+ "1:\n" \
" ldrex r8, [%0, #0]\n" \
" add r8, r8, #1\n" \
" strex r9, r8, [%0, #0]\n" \
" cmp r9, #0\n" \
- " bne L1xyzzy1" _lqual \
+ " bne 1b\n" \
: /*out*/ : /*in*/ "r"(&(_lval)) \
: /*trash*/ "r8", "r9", "cc", "memory" \
);
--- valgrind/helgrind/tests/tc08_hbl2.c.jj 2010-11-11 17:58:01.000000000 +0100
+++ valgrind/helgrind/tests/tc08_hbl2.c 2010-11-12 17:47:05.295830288 +0100
@@ -65,23 +65,23 @@
|| defined(PLAT_ppc32_aix5) || defined(PLAT_ppc64_aix5)
# define INC(_lval,_lqual) \
__asm__ __volatile__( \
- "L1xyzzy1" _lqual ":\n" \
+ "1:\n" \
" lwarx 15,0,%0\n" \
" addi 15,15,1\n" \
" stwcx. 15,0,%0\n" \
- " bne- L1xyzzy1" _lqual \
+ " bne- 1b\n" \
: /*out*/ : /*in*/ "b"(&(_lval)) \
: /*trash*/ "r15", "cr0", "memory" \
)
#elif defined(PLAT_arm_linux)
# define INC(_lval,_lqual) \
__asm__ __volatile__( \
- "L1xyzzy1" _lqual ":\n" \
+ "1:\n" \
" ldrex r8, [%0, #0]\n" \
" add r8, r8, #1\n" \
" strex r9, r8, [%0, #0]\n" \
" cmp r9, #0\n" \
- " bne L1xyzzy1" _lqual \
+ " bne 1b\n" \
: /*out*/ : /*in*/ "r"(&(_lval)) \
: /*trash*/ "r8", "r9", "cc", "memory" \
);

View File

@ -1,78 +0,0 @@
--- valgrind/coregrind/m_debuginfo/priv_storage.h (revision 11855)
+++ valgrind/coregrind/m_debuginfo/priv_storage.h (revision 11904)
@@ -249,7 +249,15 @@ typedef
Cop_Add=0x321,
Cop_Sub,
Cop_And,
- Cop_Mul
+ Cop_Mul,
+ Cop_Shl,
+ Cop_Shr,
+ Cop_Eq,
+ Cop_Ge,
+ Cop_Gt,
+ Cop_Le,
+ Cop_Lt,
+ Cop_Ne
}
CfiOp;
--- valgrind/coregrind/m_debuginfo/readdwarf.c (revision 11855)
+++ valgrind/coregrind/m_debuginfo/readdwarf.c (revision 11904)
@@ -2899,6 +2899,22 @@ static Int dwarfexpr_to_dag ( UnwindCont
op = Cop_And; opname = "and"; goto binop;
case DW_OP_mul:
op = Cop_Mul; opname = "mul"; goto binop;
+ case DW_OP_shl:
+ op = Cop_Shl; opname = "shl"; goto binop;
+ case DW_OP_shr:
+ op = Cop_Shr; opname = "shr"; goto binop;
+ case DW_OP_eq:
+ op = Cop_Eq; opname = "eq"; goto binop;
+ case DW_OP_ge:
+ op = Cop_Ge; opname = "ge"; goto binop;
+ case DW_OP_gt:
+ op = Cop_Gt; opname = "gt"; goto binop;
+ case DW_OP_le:
+ op = Cop_Le; opname = "le"; goto binop;
+ case DW_OP_lt:
+ op = Cop_Lt; opname = "lt"; goto binop;
+ case DW_OP_ne:
+ op = Cop_Ne; opname = "ne"; goto binop;
binop:
POP( ix );
POP( ix2 );
--- valgrind/coregrind/m_debuginfo/debuginfo.c (revision 11855)
+++ valgrind/coregrind/m_debuginfo/debuginfo.c (revision 11904)
@@ -1880,6 +1880,14 @@ UWord evalCfiExpr ( XArray* exprs, Int i
case Cop_Sub: return wL - wR;
case Cop_And: return wL & wR;
case Cop_Mul: return wL * wR;
+ case Cop_Shl: return wL << wR;
+ case Cop_Shr: return wL >> wR;
+ case Cop_Eq: return wL == wR ? 1 : 0;
+ case Cop_Ge: return (Word) wL >= (Word) wR ? 1 : 0;
+ case Cop_Gt: return (Word) wL > (Word) wR ? 1 : 0;
+ case Cop_Le: return (Word) wL <= (Word) wR ? 1 : 0;
+ case Cop_Lt: return (Word) wL < (Word) wR ? 1 : 0;
+ case Cop_Ne: return wL != wR ? 1 : 0;
default: goto unhandled;
}
/*NOTREACHED*/
--- valgrind/coregrind/m_debuginfo/storage.c (revision 11855)
+++ valgrind/coregrind/m_debuginfo/storage.c (revision 11904)
@@ -603,6 +603,14 @@ static void ppCfiOp ( CfiOp op )
case Cop_Sub: VG_(printf)("-"); break;
case Cop_And: VG_(printf)("&"); break;
case Cop_Mul: VG_(printf)("*"); break;
+ case Cop_Shl: VG_(printf)("<<"); break;
+ case Cop_Shr: VG_(printf)(">>"); break;
+ case Cop_Eq: VG_(printf)("=="); break;
+ case Cop_Ge: VG_(printf)(">="); break;
+ case Cop_Gt: VG_(printf)(">"); break;
+ case Cop_Le: VG_(printf)("<="); break;
+ case Cop_Lt: VG_(printf)("<"); break;
+ case Cop_Ne: VG_(printf)("!="); break;
default: vg_assert(0);
}
}

View File

@ -1,20 +0,0 @@
--- valgrind/coregrind/m_dispatch/dispatch-ppc64-linux.S (revision 11699)
+++ valgrind/coregrind/m_dispatch/dispatch-ppc64-linux.S (revision 11700)
@@ -310,7 +310,7 @@
/* start over */
b .VG_(run_innerloop__dispatch_unprofiled)
/*NOTREACHED*/
- .size VG_(run_innerloop), .-VG_(run_innerloop)
+ .size .VG_(run_innerloop), .-.VG_(run_innerloop)
/*----------------------------------------------------*/
@@ -385,7 +385,7 @@
/* start over */
b .VG_(run_innerloop__dispatch_profiled)
/*NOTREACHED*/
- .size VG_(run_a_noredir_translation), .-VG_(run_a_noredir_translation)
+ .size .VG_(run_a_noredir_translation), .-.VG_(run_a_noredir_translation)
/*----------------------------------------------------*/

View File

@ -1,11 +0,0 @@
--- valgrind/coregrind/m_syswrap/syswrap-ppc64-linux.c.jj 2010-10-20 22:19:41.000000000 +0200
+++ valgrind/coregrind/m_syswrap/syswrap-ppc64-linux.c 2011-01-28 13:12:32.698670101 +0100
@@ -1379,7 +1379,7 @@ static SyscallTableEntry syscall_table[]
// _____(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178
GENXY(__NR_pread64, sys_pread64), // 179
-// _____(__NR_pwrite64, sys_pwrite64), // 180
+ GENX_(__NR_pwrite64, sys_pwrite64), // 180
GENX_(__NR_chown, sys_chown), // 181
GENXY(__NR_getcwd, sys_getcwd), // 182
LINXY(__NR_capget, sys_capget), // 183

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,303 +0,0 @@
--- valgrind/VEX/priv/guest_s390_helpers.c
+++ valgrind/VEX/priv/guest_s390_helpers.c
@@ -146,7 +146,6 @@
Bool
guest_s390x_state_requires_precise_mem_exns(Int minoff, Int maxoff)
{
- /* fixs390: not sure whether all of these are needed */
Int lr_min = offsetof(VexGuestS390XState, guest_LR);
Int lr_max = lr_min + 8 - 1;
Int sp_min = offsetof(VexGuestS390XState, guest_SP);
--- valgrind/VEX/priv/guest_s390_toIR.c
+++ valgrind/VEX/priv/guest_s390_toIR.c
@@ -115,21 +115,6 @@
dres.len = insn_length;
dres.continueAt = 0;
- /* fixs390: special insn for test purposes only. */
- /* All other special insns are handled in s390_decode_and_irgen() */
- {
- if (byte == 0x0) {
- /* There is no insn whose first byte is all zero. There never will be.
- So we use that for testing purposes when we hand-feed a basic block
- to VEX. We terminate such a basic block with 0x0000 which will then
- cause the translation to stop. */
- dres.whatNext = Dis_StopHere;
- dres.len = 2;
- irsb->next = mkaddr_expr(0x0);
- return dres;
- }
- }
-
/* fixs390: we should probably pass the resteer-function and the callback
data. It's not needed for correctness but improves performance. */
--- valgrind/coregrind/m_sigframe/sigframe-s390x-linux.c
+++ valgrind/coregrind/m_sigframe/sigframe-s390x-linux.c
@@ -333,9 +333,10 @@
Addr sp = sp_top_of_frame;
vg_assert((flags & VKI_SA_SIGINFO) == 0);
+ vg_assert((sizeof(*frame) & 7) == 0);
+ vg_assert((sp & 7) == 0);
sp -= sizeof(*frame);
- sp = VG_ROUNDDN(sp, 16);
frame = (struct sigframe *)sp;
if (!extend(tst, sp, sizeof(*frame)))
@@ -392,8 +393,10 @@
Int sigNo = siginfo->si_signo;
vg_assert((flags & VKI_SA_SIGINFO) != 0);
+ vg_assert((sizeof(*frame) & 7) == 0);
+ vg_assert((sp & 7) == 0);
+
sp -= sizeof(*frame);
- sp = VG_ROUNDDN(sp, 16);
frame = (struct rt_sigframe *)sp;
if (!extend(tst, sp, sizeof(*frame)))
@@ -545,6 +548,8 @@
else
size = restore_rt_sigframe(tst, (struct rt_sigframe *)sp, &sigNo);
+ /* same as for creation: we must announce the full memory (including
+ alignment), otherwise massif might fail on longjmp */
VG_TRACK( die_mem_stack_signal, sp - VG_STACK_REDZONE_SZB,
size + VG_STACK_REDZONE_SZB );
--- valgrind/memcheck/tests/partiallydefinedeq.stderr.exp3
+++ valgrind/memcheck/tests/partiallydefinedeq.stderr.exp3
@@ -0,0 +1,20 @@
+
+On s390 we might see 2 or 3 errors.
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: foo (partiallydefinedeq.c:15)
+ by 0x........: main (partiallydefinedeq.c:37)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: foo (partiallydefinedeq.c:15)
+ by 0x........: main (partiallydefinedeq.c:52)
+
+
+HEAP SUMMARY:
+ in use at exit: ... bytes in ... blocks
+ total heap usage: ... allocs, ... frees, ... bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+Use --track-origins=yes to see where uninitialised values come from
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
--- valgrind/memcheck/tests/partiallydefinedeq.stderr.exp4
+++ valgrind/memcheck/tests/partiallydefinedeq.stderr.exp4
@@ -0,0 +1,24 @@
+
+On s390 we might see 2 or 3 errors.
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: foo (partiallydefinedeq.c:15)
+ by 0x........: main (partiallydefinedeq.c:37)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: foo (partiallydefinedeq.c:15)
+ by 0x........: main (partiallydefinedeq.c:45)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: foo (partiallydefinedeq.c:15)
+ by 0x........: main (partiallydefinedeq.c:52)
+
+
+HEAP SUMMARY:
+ in use at exit: ... bytes in ... blocks
+ total heap usage: ... allocs, ... frees, ... bytes allocated
+
+For a detailed leak analysis, rerun with: --leak-check=full
+
+For counts of detected and suppressed errors, rerun with: -v
+Use --track-origins=yes to see where uninitialised values come from
+ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
--- valgrind/VEX/auxprogs/genoffsets.c
+++ valgrind/VEX/auxprogs/genoffsets.c
@@ -157,28 +157,18 @@
GENOFFSET(ARM,arm,R14);
GENOFFSET(ARM,arm,R15T);
- // fixs390 later: strip down to what is actually needed
- GENOFFSET(S390X,s390x,r0);
- GENOFFSET(S390X,s390x,r1);
+ // s390x
GENOFFSET(S390X,s390x,r2);
GENOFFSET(S390X,s390x,r3);
GENOFFSET(S390X,s390x,r4);
GENOFFSET(S390X,s390x,r5);
GENOFFSET(S390X,s390x,r6);
GENOFFSET(S390X,s390x,r7);
- GENOFFSET(S390X,s390x,r8);
- GENOFFSET(S390X,s390x,r9);
- GENOFFSET(S390X,s390x,r10);
- GENOFFSET(S390X,s390x,r11);
- GENOFFSET(S390X,s390x,r12);
- GENOFFSET(S390X,s390x,r13);
- GENOFFSET(S390X,s390x,r14);
GENOFFSET(S390X,s390x,r15);
GENOFFSET(S390X,s390x,IA);
GENOFFSET(S390X,s390x,SYSNO);
GENOFFSET(S390X,s390x,IP_AT_SYSCALL);
GENOFFSET(S390X,s390x,fpc);
- GENOFFSET(S390X,s390x,counter);
}
/*--------------------------------------------------------------------*/
--- valgrind/coregrind/m_coredump/coredump-elf.c
+++ valgrind/coregrind/m_coredump/coredump-elf.c
@@ -237,7 +237,8 @@
/* prs->pr_reg has struct type. Need to take address. */
regs = (struct vki_user_regs_struct *)&(prs->pr_reg);
#else
- regs = (struct vki_user_regs_struct *)(prs->pr_reg);
+ regs = (struct vki_user_regs_struct *)prs->pr_reg;
+
vg_assert(sizeof(*regs) == sizeof(prs->pr_reg));
#endif
--- valgrind/coregrind/m_debuginfo/debuginfo.c
+++ valgrind/coregrind/m_debuginfo/debuginfo.c
@@ -1988,6 +1988,7 @@
case Creg_IA_IP: return eec->uregs->ia;
case Creg_IA_SP: return eec->uregs->sp;
case Creg_IA_BP: return eec->uregs->fp;
+ case Creg_S390_R14: return eec->uregs->lr;
# elif defined(VGA_ppc32) || defined(VGA_ppc64)
# else
# error "Unsupported arch"
@@ -2384,14 +2385,9 @@
COMPUTE(uregsPrev.r11, uregsHere->r11, cfsi->r11_how, cfsi->r11_off);
COMPUTE(uregsPrev.r7, uregsHere->r7, cfsi->r7_how, cfsi->r7_off);
# elif defined(VGA_s390x)
- /* sepcial case for the first frame */
- if (cfsi->ra_how == CFIR_UNKNOWN)
- uregsPrev.ia = uregsHere->lr;
- else
- COMPUTE(uregsPrev.ia, uregsHere->ia, cfsi->ra_how, cfsi->ra_off);
+ COMPUTE(uregsPrev.ia, uregsHere->ia, cfsi->ra_how, cfsi->ra_off);
COMPUTE(uregsPrev.sp, uregsHere->sp, cfsi->sp_how, cfsi->sp_off);
COMPUTE(uregsPrev.fp, uregsHere->fp, cfsi->fp_how, cfsi->fp_off);
- /* we only need R14 for the first time, no need to calculate further*/
# elif defined(VGA_ppc32) || defined(VGA_ppc64)
# else
# error "Unknown arch"
--- valgrind/coregrind/m_debuginfo/priv_storage.h
+++ valgrind/coregrind/m_debuginfo/priv_storage.h
@@ -245,7 +245,8 @@
Creg_ARM_R13,
Creg_ARM_R12,
Creg_ARM_R15,
- Creg_ARM_R14
+ Creg_ARM_R14,
+ Creg_S390_R14
}
CfiReg;
--- valgrind/coregrind/m_debuginfo/readdwarf.c
+++ valgrind/coregrind/m_debuginfo/readdwarf.c
@@ -2327,6 +2327,16 @@
si->cfa_how = CFIC_IA_SPREL;
si->cfa_off = 160;
}
+ if (si->ra_how == CFIR_UNKNOWN) {
+ if (!debuginfo->cfsi_exprs)
+ debuginfo->cfsi_exprs = VG_(newXA)( ML_(dinfo_zalloc),
+ "di.ccCt.2a",
+ ML_(dinfo_free),
+ sizeof(CfiExpr) );
+ si->ra_how = CFIR_EXPR;
+ si->ra_off = ML_(CfiExpr_CfiReg)( debuginfo->cfsi_exprs,
+ Creg_S390_R14);
+ }
/* knock out some obviously stupid cases */
if (si->ra_how == CFIR_SAME)
--- valgrind/coregrind/m_machine.c
+++ valgrind/coregrind/m_machine.c
@@ -268,7 +268,6 @@
(*f)(vex->guest_R13);
(*f)(vex->guest_R14);
#elif defined(VGA_s390x)
-/* fixs390: revisit once guest state is finalized */
(*f)(vex->guest_r0);
(*f)(vex->guest_r1);
(*f)(vex->guest_r2);
--- valgrind/coregrind/m_redir.c
+++ valgrind/coregrind/m_redir.c
@@ -1066,7 +1066,7 @@
}
# elif defined(VGP_s390x_linux)
- /* fixs390 */
+ /* nothing so far */
# else
# error Unknown platform
--- valgrind/coregrind/m_syswrap/syswrap-main.c
+++ valgrind/coregrind/m_syswrap/syswrap-main.c
@@ -160,7 +160,8 @@
x86: Success(N) ==> edx:eax = N, cc = 0
Fail(N) ==> edx:eax = N, cc = 1
- s390x: fixs390 later: document it here
+ s390x: Success(N) ==> r2 = N
+ Fail(N) ==> r2 = -N
* The post wrapper is called if:
--- valgrind/memcheck/tests/partiallydefinedeq.c
+++ valgrind/memcheck/tests/partiallydefinedeq.c
@@ -66,7 +66,14 @@
// Hence also on ARM we get 3 errors, not 2.
+//
+// s390x is even more complicated: Depending on the architecture
+// level we have the 0x80808080 either in the literal pool (3 errors)
+// or with the extended immediate facility in an instruction (2 errors).
static __attribute__((noinline)) void bar ( void )
{
-#if defined(__powerpc__) || defined(__powerpc64__) || defined(__arm__) || defined(__s390x__)
- fprintf(stderr, "Currently running on ppc32/64/arm/s390x: this test should give 3 errors, not 2.\n");
+#if defined(__powerpc__) || defined(__powerpc64__) || defined(__arm__)
+ fprintf(stderr, "Currently running on ppc32/64/arm: this test should give 3 errors, not 2.\n");
#endif
+#if defined(__s390__)
+ fprintf(stderr, "On s390 we might see 2 or 3 errors.\n");
+#endif
}
--- valgrind/memcheck/tests/partiallydefinedeq.stderr.exp2
+++ valgrind/memcheck/tests/partiallydefinedeq.stderr.exp2
@@ -1,5 +1,5 @@
-Currently running on ppc32/64/arm/s390x: this test should give 3 errors, not 2.
+Currently running on ppc32/64/arm: this test should give 3 errors, not 2.
Conditional jump or move depends on uninitialised value(s)
at 0x........: foo (partiallydefinedeq.c:15)
by 0x........: main (partiallydefinedeq.c:37)
--- valgrind/lackey/lk_main.c
+++ valgrind/lackey/lk_main.c
@@ -314,7 +314,8 @@ static Int type2index ( IRType ty )
case Ity_I128: return 5;
case Ity_F32: return 6;
case Ity_F64: return 7;
- case Ity_V128: return 8;
+ case Ity_F128: return 8;
+ case Ity_V128: return 9;
default: tl_assert(0);
}
}
@@ -330,7 +331,8 @@ static HChar* nameOfTypeIndex ( Int i )
case 5: return "I128"; break;
case 6: return "F32"; break;
case 7: return "F64"; break;
- case 8: return "V128"; break;
+ case 8: return "F128"; break;
+ case 9: return "V128"; break;
default: tl_assert(0);
}
}

View File

@ -1,36 +0,0 @@
--- valgrind/VEX/priv/guest_s390_cc.c.jj 2010-11-11 16:55:05.000000000 +0100
+++ valgrind/VEX/priv/guest_s390_cc.c 2010-11-11 17:38:10.786580286 +0100
@@ -39,8 +39,6 @@
#include "guest_s390_priv.h" /* irsb */
#include "guest_s390_cc.h"
-#if defined(VGA_s390x) /* guard the file */
-
static UInt s390_calculate_cc(ULong cc_op, ULong cc_dep1, ULong cc_dep2,
ULong cc_ndep);
@@ -418,6 +416,7 @@ s390_calculate_cc(ULong cc_op, ULong cc_
{
UInt psw;
+#if defined(VGA_s390x)
switch (cc_op) {
case S390_CC_OP_BITWISE:
@@ -611,6 +610,7 @@ s390_calculate_cc(ULong cc_op, ULong cc_
default:
break;
}
+#endif
vpanic("s390_calculate_cc");
}
@@ -680,8 +680,6 @@ s390_call_calculate_cond(UInt m)
return call;
}
-#endif /* VGA_s390x */
-
/*---------------------------------------------------------------*/
/*--- end guest_s390_cc.c ---*/
/*---------------------------------------------------------------*/

View File

@ -1,90 +0,0 @@
--- valgrind/memcheck/tests/x86-linux/scalar.c (revision 11801)
+++ valgrind/memcheck/tests/x86-linux/scalar.c (revision 11802)
@@ -1,3 +1,5 @@
+#define _GNU_SOURCE
+
#include "../../memcheck.h"
#include "scalar.h"
#include <unistd.h>
--- valgrind/memcheck/tests/x86-linux/scalar.stderr.exp (revision 11801)
+++ valgrind/memcheck/tests/x86-linux/scalar.stderr.exp (revision 11802)
@@ -578,25 +578,25 @@
...
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
Syscall param sigaction(act->sa_mask) points to unaddressable byte(s)
...
Address 0x........ is 4 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
Syscall param sigaction(act->sa_flags) points to unaddressable byte(s)
...
Address 0x........ is 8 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
Syscall param sigaction(oldact) points to unaddressable byte(s)
...
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
-----------------------------------------------------
68: __NR_sgetmask n/a
@@ -1228,13 +1228,13 @@
...
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
Syscall param sigprocmask(oldset) points to unaddressable byte(s)
...
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
-----------------------------------------------------
127: __NR_create_module ni
@@ -1747,7 +1747,7 @@
...
Address 0x........ is 4 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
Syscall param rt_sigaction(act->sa_mask) points to unaddressable byte(s)
...
@@ -1757,13 +1757,13 @@
...
Address 0x........ is 8 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
Syscall param rt_sigaction(oldact) points to unaddressable byte(s)
...
Address 0x........ is 4 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:28)
+ by 0x........: main (scalar.c:30)
-----------------------------------------------------
175: __NR_rt_sigprocmask 4s 2m
--- valgrind/memcheck/tests/linux/stack_switch.c (revision 11801)
+++ valgrind/memcheck/tests/linux/stack_switch.c (revision 11802)
@@ -1,5 +1,6 @@
#define _XOPEN_SOURCE 600
#define _BSD_SOURCE
+#define _GNU_SOURCE
#include <stdio.h>

View File

@ -1,78 +0,0 @@
--- valgrind-3.6.1/coregrind/m_trampoline.S.jj 2011-02-22 15:47:55.000000000 +0100
+++ valgrind-3.6.1/coregrind/m_trampoline.S 2011-02-23 11:32:20.923402349 +0100
@@ -112,6 +112,27 @@ VG_(x86_linux_REDIR_FOR_index):
ret
.size VG_(x86_linux_REDIR_FOR_index), .-VG_(x86_linux_REDIR_FOR_index)
+/* There's no particular reason that this needs to be handwritten
+ assembly, but since that's what this file contains, here's a
+ simple strlen implementation (written in C and compiled by gcc.)
+*/
+.global VG_(x86_linux_REDIR_FOR_strlen)
+.type VG_(x86_linux_REDIR_FOR_strlen), @function
+VG_(x86_linux_REDIR_FOR_strlen):
+ pushl %ebp
+ movl %esp, %ebp
+ movl 8(%ebp), %edx
+ movl %edx, %eax
+ jmp 2f
+1: incl %eax
+2: cmpb $0, (%eax)
+ jne 1b
+ subl %edx, %eax
+ popl %ebp
+ ret
+.size VG_(x86_linux_REDIR_FOR_strlen), .-VG_(x86_linux_REDIR_FOR_strlen)
+
+
.global VG_(trampoline_stuff_end)
VG_(trampoline_stuff_end):
--- valgrind-3.6.1/coregrind/pub_core_trampoline.h.jj 2011-02-22 15:47:55.000000000 +0100
+++ valgrind-3.6.1/coregrind/pub_core_trampoline.h 2011-02-23 11:25:40.350402084 +0100
@@ -60,6 +60,7 @@ extern Addr VG_(trampoline_stuff_end);
extern Addr VG_(x86_linux_SUBST_FOR_sigreturn);
extern Addr VG_(x86_linux_SUBST_FOR_rt_sigreturn);
extern Char* VG_(x86_linux_REDIR_FOR_index) ( const Char*, Int );
+extern UInt VG_(x86_linux_REDIR_FOR_strlen)( void* );
#endif
#if defined(VGP_amd64_linux)
--- valgrind-3.6.1/coregrind/m_redir.c.jj 2011-02-22 15:51:02.000000000 +0100
+++ valgrind-3.6.1/coregrind/m_redir.c 2011-02-23 11:24:33.502670646 +0100
@@ -924,20 +924,23 @@ void VG_(redir_initialise) ( void )
/* If we're using memcheck, use this intercept right from the
start, otherwise ld.so (glibc-2.3.5) makes a lot of noise. */
if (0==VG_(strcmp)("Memcheck", VG_(details).name)) {
+ const HChar** mandatory;
+# if defined(GLIBC_2_2) || defined(GLIBC_2_3) || defined(GLIBC_2_4) \
+ || defined(GLIBC_2_5) || defined(GLIBC_2_6) || defined(GLIBC_2_7) \
+ || defined(GLIBC_2_8) || defined(GLIBC_2_9) \
+ || defined(GLIBC_2_10) || defined(GLIBC_2_11)
+ mandatory = NULL;
+# else
+ /* for glibc-2.12 and later, this is mandatory - can't sanely
+ continue without it */
+ mandatory = complain_about_stripped_glibc_ldso;
+# endif
add_hardwired_spec(
"ld-linux.so.2", "index",
- (Addr)&VG_(x86_linux_REDIR_FOR_index),
-# if defined(GLIBC_2_2) || defined(GLIBC_2_3) || defined(GLIBC_2_4) \
- || defined(GLIBC_2_5) || defined(GLIBC_2_6) || defined(GLIBC_2_7) \
- || defined(GLIBC_2_8) || defined(GLIBC_2_9) \
- || defined(GLIBC_2_10) || defined(GLIBC_2_11)
- NULL
-# else
- /* for glibc-2.12 and later, this is mandatory - can't sanely
- continue without it */
- complain_about_stripped_glibc_ldso
-# endif
- );
+ (Addr)&VG_(x86_linux_REDIR_FOR_index), mandatory);
+ add_hardwired_spec(
+ "ld-linux.so.2", "strlen",
+ (Addr)&VG_(x86_linux_REDIR_FOR_strlen), mandatory);
}
# elif defined(VGP_amd64_linux)

View File

@ -1,92 +0,0 @@
--- valgrind/memcheck/mc_replace_strmem.c.jj 2011-06-08 17:26:29.000000000 +0200
+++ valgrind/memcheck/mc_replace_strmem.c 2011-06-09 14:49:11.000000000 +0200
@@ -558,11 +558,7 @@ MEMCHR(VG_Z_DYLD, memchr)
#endif
-#define MEMCPY(soname, fnname) \
- void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
- ( void *dst, const void *src, SizeT len ); \
- void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
- ( void *dst, const void *src, SizeT len ) \
+#define MEMCPY_BODY \
{ \
if (is_overlap(dst, src, len, len)) \
RECORD_OVERLAP_ERROR("memcpy", dst, src, len); \
@@ -628,6 +624,18 @@ MEMCHR(VG_Z_DYLD, memchr)
\
return dst; \
}
+#define MEMCPY(soname, fnname) \
+ void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
+ ( void *dst, const void *src, SizeT len ); \
+ void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
+ ( void *dst, const void *src, SizeT len ) \
+ MEMCPY_BODY
+#define MEMCPY_ZZ(soname, fnname) \
+ void* VG_REPLACE_FUNCTION_ZZ(soname,fnname) \
+ ( void *dst, const void *src, SizeT len ); \
+ void* VG_REPLACE_FUNCTION_ZZ(soname,fnname) \
+ ( void *dst, const void *src, SizeT len ) \
+ MEMCPY_BODY
MEMCPY(VG_Z_LIBC_SONAME, memcpy)
#if defined(VGO_linux)
@@ -636,6 +644,11 @@ MEMCPY(VG_Z_LD64_SO_1, memcpy) /* ld64
#elif defined(VGO_darwin)
MEMCPY(VG_Z_DYLD, memcpy)
#endif
+#if defined(VGP_amd64_linux)
+/* In glibc 2.14+, memcpy@GLIBC_2.2.5 is an alias to memmove and only
+ memcpy@@GLIBC_2.14 is a real memcpy. */
+MEMCPY_ZZ(VG_Z_LIBC_SONAME, memcpyZAZAGLIBCZu2Zd14) /* memcpy@@GLIBC_2.14 */
+#endif
/* icc9 blats these around all over the place. Not only in the main
executable but various .so's. They are highly tuned and read
memory beyond the source boundary (although work correctly and
@@ -738,11 +751,7 @@ MEMSET(VG_Z_DYLD, memset)
#endif
-#define MEMMOVE(soname, fnname) \
- void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
- (void *dstV, const void *srcV, SizeT n); \
- void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
- (void *dstV, const void *srcV, SizeT n) \
+#define MEMMOVE_BODY \
{ \
SizeT i; \
Char* dst = (Char*)dstV; \
@@ -758,12 +767,31 @@ MEMSET(VG_Z_DYLD, memset)
} \
return dst; \
}
+#define MEMMOVE(soname, fnname) \
+ void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
+ (void *dstV, const void *srcV, SizeT n); \
+ void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
+ (void *dstV, const void *srcV, SizeT n) \
+ MEMMOVE_BODY
+#define MEMMOVE_ZZ(soname, fnname) \
+ void* VG_REPLACE_FUNCTION_ZZ(soname,fnname) \
+ (void *dstV, const void *srcV, SizeT n); \
+ void* VG_REPLACE_FUNCTION_ZZ(soname,fnname) \
+ (void *dstV, const void *srcV, SizeT n) \
+ MEMMOVE_BODY
MEMMOVE(VG_Z_LIBC_SONAME, memmove)
#if defined(VGO_darwin)
MEMMOVE(VG_Z_DYLD, memmove)
#endif
-
+#if defined(VGP_amd64_linux)
+/* In glibc 2.14+, memcpy@GLIBC_2.2.5 is an alias to memmove and only
+ memcpy@@GLIBC_2.14 is a real memcpy. It would be nice for
+ memcpy@GLIBC_2.2.5 to differentiate based on whether the caller
+ was calling memmove or memcpy@GLIBC_2.2.5, for now just treat
+ all such calls as memmove. */
+MEMMOVE_ZZ(VG_Z_LIBC_SONAME, memcpyZAGLIBCZu2Zd2Zd5) /* memcpy@GLIBC_2.2.5 */
+#endif
#define BCOPY(soname, fnname) \
void VG_REPLACE_FUNCTION_ZU(soname,fnname) \

View File

@ -1,18 +0,0 @@
--- valgrind/none/tests/ppc32/xlc_dbl_u32.c.jj 2010-10-20 22:19:31.000000000 +0200
+++ valgrind/none/tests/ppc32/xlc_dbl_u32.c 2010-11-12 14:16:41.108580219 +0100
@@ -37,6 +37,7 @@ asm("\n"
" .long 0\n"
" .long 0x00000000\n"
" .long 0x00000000\n"
+".previous\n"
"\n"
" .section \".rodata\",\"a\"\n"
" .align 3\n"
@@ -48,6 +49,7 @@ asm("\n"
" .long 0x3fe66666\n"
" .long 0x66666666\n"
" .long 0x25640a00\n"
+".previous\n"
);
int main (int argc, char** argv)

View File

@ -1,5 +1,5 @@
--- valgrind-3.4.0/cachegrind/cg_sim.c.jj 2007-01-08 02:43:10.000000000 -0500 --- valgrind-3.7.0/cachegrind/cg_sim.c.jj 2011-10-26 23:24:32.000000000 +0200
+++ valgrind-3.4.0/cachegrind/cg_sim.c 2007-02-13 07:15:46.000000000 -0500 +++ valgrind-3.7.0/cachegrind/cg_sim.c 2011-12-09 17:31:19.256023683 +0100
@@ -42,27 +42,30 @@ typedef struct { @@ -42,27 +42,30 @@ typedef struct {
Int size; /* bytes */ Int size; /* bytes */
Int assoc; Int assoc;
@ -52,13 +52,3 @@
} }
/* This is done as a macro rather than by passing in the cache_t2 as an /* This is done as a macro rather than by passing in the cache_t2 as an
@@ -138,8 +138,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]); \
if (tag == set[0]) { \
goto block2; \

View File

@ -1,5 +1,5 @@
--- valgrind-3.5.0/coregrind/m_syswrap/syswrap-linux.c.jj 2010-04-07 08:14:12.000000000 -0400 --- valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c.jj 2010-04-07 08:14:12.000000000 -0400
+++ valgrind-3.5.0/coregrind/m_syswrap/syswrap-linux.c 2010-04-12 07:24:12.838876000 -0400 +++ valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c 2010-04-12 07:24:12.838876000 -0400
@@ -1955,8 +1955,9 @@ PRE(sys_capget) @@ -1955,8 +1955,9 @@ PRE(sys_capget)
vki_cap_user_header_t, header, vki_cap_user_data_t, data); vki_cap_user_header_t, header, vki_cap_user_data_t, data);
PRE_MEM_READ( "capget(header)", ARG1, PRE_MEM_READ( "capget(header)", ARG1,

View File

@ -0,0 +1,11 @@
--- valgrind/include/pub_tool_basics.h.jj 2011-10-26 23:24:32.000000000 +0200
+++ valgrind/include/pub_tool_basics.h 2011-12-09 17:42:50.828630546 +0100
@@ -290,7 +290,7 @@ static inline Bool sr_EQ ( SysRes sr1, S
#define VG_BUGS_TO "www.valgrind.org"
/* Branch prediction hints. */
-#if defined(__GNUC__)
+#if defined(__GNUC__) && (__GNUC__ >= 3)
# define LIKELY(x) __builtin_expect(!!(x), 1)
# define UNLIKELY(x) __builtin_expect(!!(x), 0)
#else

View File

@ -0,0 +1,180 @@
--- valgrind-3.7.0/include/vki/vki-ppc64-linux.h.jj 2010-10-08 11:14:21.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-ppc64-linux.h 2012-01-27 16:45:19.418707191 +0100
@@ -386,6 +386,16 @@ struct vki_sigcontext {
#define VKI_F_SETSIG 10 /* for sockets. */
#define VKI_F_GETSIG 11 /* for sockets. */
+#define VKI_F_SETOWN_EX 15
+#define VKI_F_GETOWN_EX 16
+
+struct vki_f_owner_ex
+{
+ enum { VKI_F_OWNER_TID, VKI_F_OWNER_PID, VKI_F_OWNER_PGRP }
+ type; /* Owner type of ID. */
+ __vki_kernel_pid_t pid; /* ID of owner. */
+};
+
/* for F_[GET|SET]FL */
#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */
--- valgrind-3.7.0/include/vki/vki-arm-linux.h.jj 2011-03-28 16:09:17.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-arm-linux.h 2012-01-27 16:44:48.356887209 +0100
@@ -270,6 +270,16 @@ struct vki_sigcontext {
#define VKI_F_SETLK64 13
#define VKI_F_SETLKW64 14
+#define VKI_F_SETOWN_EX 15
+#define VKI_F_GETOWN_EX 16
+
+struct vki_f_owner_ex
+{
+ enum { VKI_F_OWNER_TID, VKI_F_OWNER_PID, VKI_F_OWNER_PGRP }
+ type; /* Owner type of ID. */
+ __vki_kernel_pid_t pid; /* ID of owner. */
+};
+
/* for F_[GET|SET]FL */
#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */
--- valgrind-3.7.0/include/vki/vki-x86-linux.h.jj 2010-10-08 11:14:21.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-x86-linux.h 2012-01-27 16:43:45.727249836 +0100
@@ -308,6 +308,16 @@ struct vki_sigcontext {
#define VKI_F_SETLK64 13
#define VKI_F_SETLKW64 14
+#define VKI_F_SETOWN_EX 15
+#define VKI_F_GETOWN_EX 16
+
+struct vki_f_owner_ex
+{
+ enum { VKI_F_OWNER_TID, VKI_F_OWNER_PID, VKI_F_OWNER_PGRP }
+ type; /* Owner type of ID. */
+ __vki_kernel_pid_t pid; /* ID of owner. */
+};
+
/* for F_[GET|SET]FL */
#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */
--- valgrind-3.7.0/include/vki/vki-ppc32-linux.h.jj 2010-10-08 11:14:21.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-ppc32-linux.h 2012-01-27 16:45:11.912752106 +0100
@@ -337,6 +337,16 @@ struct vki_sigcontext {
#define VKI_F_SETLK64 13
#define VKI_F_SETLKW64 14
+#define VKI_F_SETOWN_EX 15
+#define VKI_F_GETOWN_EX 16
+
+struct vki_f_owner_ex
+{
+ enum { VKI_F_OWNER_TID, VKI_F_OWNER_PID, VKI_F_OWNER_PGRP }
+ type; /* Owner type of ID. */
+ __vki_kernel_pid_t pid; /* ID of owner. */
+};
+
/* for F_[GET|SET]FL */
#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */
--- valgrind-3.7.0/include/vki/vki-s390x-linux.h.jj 2011-06-08 17:26:29.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-s390x-linux.h 2012-01-27 16:45:31.078639504 +0100
@@ -332,6 +332,16 @@ typedef struct vki_sigaltstack {
#define VKI_F_SETSIG 10 /* for sockets. */
#define VKI_F_GETSIG 11 /* for sockets. */
+#define VKI_F_SETOWN_EX 15
+#define VKI_F_GETOWN_EX 16
+
+struct vki_f_owner_ex
+{
+ enum { VKI_F_OWNER_TID, VKI_F_OWNER_PID, VKI_F_OWNER_PGRP }
+ type; /* Owner type of ID. */
+ __vki_kernel_pid_t pid; /* ID of owner. */
+};
+
#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */
#define VKI_F_LINUX_SPECIFIC_BASE 1024
--- valgrind-3.7.0/include/vki/vki-amd64-linux.h.jj 2010-10-08 11:14:21.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-amd64-linux.h 2012-01-27 16:44:23.592030914 +0100
@@ -268,6 +268,16 @@ struct vki_sigcontext {
#define VKI_F_SETSIG 10 /* for sockets. */
#define VKI_F_GETSIG 11 /* for sockets. */
+#define VKI_F_SETOWN_EX 15
+#define VKI_F_GETOWN_EX 16
+
+struct vki_f_owner_ex
+{
+ enum { VKI_F_OWNER_TID, VKI_F_OWNER_PID, VKI_F_OWNER_PGRP }
+ type; /* Owner type of ID. */
+ __vki_kernel_pid_t pid; /* ID of owner. */
+};
+
#define VKI_FD_CLOEXEC 1 /* actually anything with low bit set goes */
#define VKI_F_LINUX_SPECIFIC_BASE 1024
--- valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c.jj 2011-08-02 14:49:29.000000000 +0200
+++ valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c 2012-01-27 17:08:11.621732289 +0100
@@ -3778,6 +3778,22 @@ PRE(sys_fcntl)
struct flock64 *, lock);
break;
+ case VKI_F_SETOWN_EX:
+ PRINT("sys_fcntl[F_SETOWN_EX] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd,
+ struct vki_f_owner_ex *, arg);
+ PRE_MEM_READ("fcntl(F_SETOWN_EX)", ARG3, sizeof(struct vki_f_owner_ex));
+ break;
+
+ case VKI_F_GETOWN_EX:
+ PRINT("sys_fcntl[F_GETOWN_EX] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd,
+ struct vki_f_owner_ex *, arg);
+ PRE_MEM_WRITE("fcntl(F_GETOWN_EX)", ARG3, sizeof(struct vki_f_owner_ex));
+ break;
+
default:
PRINT("sys_fcntl[UNKNOWN] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3);
I_die_here;
@@ -3812,6 +3828,8 @@ POST(sys_fcntl)
if (VG_(clo_track_fds))
ML_(record_fd_open_named)(tid, RES);
}
+ } else if (ARG2 == VKI_F_GETOWN_EX) {
+ POST_MEM_WRITE(ARG3, sizeof(struct vki_f_owner_ex));
}
}
@@ -3857,6 +3875,22 @@ PRE(sys_fcntl64)
unsigned int, fd, unsigned int, cmd,
struct flock64 *, lock);
break;
+
+ case VKI_F_SETOWN_EX:
+ PRINT("sys_fcntl[F_SETOWN_EX] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd,
+ struct vki_f_owner_ex *, arg);
+ PRE_MEM_READ("fcntl(F_SETOWN_EX)", ARG3, sizeof(struct vki_f_owner_ex));
+ break;
+
+ case VKI_F_GETOWN_EX:
+ PRINT("sys_fcntl[F_GETOWN_EX] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd,
+ struct vki_f_owner_ex *, arg);
+ PRE_MEM_WRITE("fcntl(F_GETOWN_EX)", ARG3, sizeof(struct vki_f_owner_ex));
+ break;
}
# if defined(VGP_x86_linux)
@@ -3887,6 +3921,8 @@ POST(sys_fcntl64)
if (VG_(clo_track_fds))
ML_(record_fd_open_named)(tid, RES);
}
+ } else if (ARG2 == VKI_F_GETOWN_EX) {
+ POST_MEM_WRITE(ARG3, sizeof(struct vki_f_owner_ex));
}
}

View File

@ -0,0 +1,65 @@
--- valgrind-3.7.0/configure.in.jj 2011-11-05 12:13:30.000000000 +0100
+++ valgrind-3.7.0/configure.in 2011-12-09 17:48:21.409848842 +0100
@@ -775,6 +775,13 @@ case "${GLIBC_VERSION}" in
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.15)
+ AC_MSG_RESULT(2.15 family)
+ AC_DEFINE([GLIBC_2_15], 1, [Define to 1 if you're using glibc 2.15.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
AC_MSG_RESULT(Darwin)
AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
@@ -788,7 +795,7 @@ case "${GLIBC_VERSION}" in
*)
AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.14])
+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.15])
AC_MSG_ERROR([or Darwin libc])
;;
esac
--- valgrind-3.7.0/config.h.in.jj 2011-10-26 23:25:55.000000000 +0200
+++ valgrind-3.7.0/config.h.in 2011-12-09 17:47:42.385804043 +0100
@@ -39,6 +39,9 @@
/* Define to 1 if you're using glibc 2.14.x */
#undef GLIBC_2_14
+/* Define to 1 if you're using glibc 2.15.x */
+#undef GLIBC_2_15
+
/* Define to 1 if you're using glibc 2.2.x */
#undef GLIBC_2_2
--- valgrind-3.7.0/configure.jj 2011-11-05 12:24:39.000000000 +0100
+++ valgrind-3.7.0/configure 2011-12-09 17:48:58.371930777 +0100
@@ -6402,6 +6402,16 @@ $as_echo "#define GLIBC_2_14 1" >>confde
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.15)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.15 family" >&5
+$as_echo "2.15 family" >&6; }
+
+$as_echo "#define GLIBC_2_15 1" >>confdefs.h
+
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
$as_echo "Darwin" >&6; }
@@ -6422,7 +6432,7 @@ $as_echo "#define BIONIC_LIBC 1" >>confd
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
$as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
- as_fn_error "Valgrind requires glibc version 2.2 - 2.14" "$LINENO" 5
+ as_fn_error "Valgrind requires glibc version 2.2 - 2.15" "$LINENO" 5
as_fn_error "or Darwin libc" "$LINENO" 5
;;
esac

View File

@ -15,8 +15,8 @@ main (void)
return 0; return 0;
} }
--- valgrind-3.3.0/coregrind/m_syswrap/syswrap-linux.c.jj 2007-12-11 00:18:43.000000000 +0100 --- valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c.jj 2007-12-11 00:18:43.000000000 +0100
+++ valgrind-3.3.0/coregrind/m_syswrap/syswrap-linux.c 2008-03-03 11:35:15.000000000 +0100 +++ valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c 2008-03-03 11:35:15.000000000 +0100
@@ -2455,10 +2455,15 @@ PRE(sys_openat) @@ -2455,10 +2455,15 @@ PRE(sys_openat)
int, dfd, const char *, filename, int, flags); int, dfd, const char *, filename, int, flags);
} }

View File

@ -0,0 +1,72 @@
--- valgrind-3.7.0/include/vki/vki-linux.h.jj 2011-10-26 23:24:31.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-linux.h 2012-01-27 16:11:53.373379491 +0100
@@ -1730,6 +1730,15 @@ typedef struct vki_sg_scsi_id { /* used
#define VKI_SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1 */
//----------------------------------------------------------------------
+// From linux-2.6.34/include/scsi/scsi.h and scsi/scsi_ioctl.h
+//----------------------------------------------------------------------
+
+#define VKI_SCSI_IOCTL_DOORLOCK 0x5380 /* Lock the eject mechanism. */
+#define VKI_SCSI_IOCTL_DOORUNLOCK 0x5381 /* Unlock the mechanism. */
+#define VKI_SCSI_IOCTL_GET_IDLUN 0x5382
+#define VKI_SCSI_IOCTL_GET_BUS_NUMBER 0x5386
+
+//----------------------------------------------------------------------
// From linux-2.6.8.1/include/linux/cdrom.h
//----------------------------------------------------------------------
--- valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c.jj 2012-01-27 13:27:26.000000000 +0100
+++ valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c 2012-01-27 16:18:05.377177786 +0100
@@ -3935,6 +3935,10 @@ PRE(sys_ioctl)
case VKI_SNDRV_TIMER_IOCTL_STOP:
case VKI_SNDRV_TIMER_IOCTL_CONTINUE:
case VKI_SNDRV_TIMER_IOCTL_PAUSE:
+
+ /* SCSI no operand */
+ case VKI_SCSI_IOCTL_DOORLOCK:
+ case VKI_SCSI_IOCTL_DOORUNLOCK:
PRINT("sys_ioctl ( %ld, 0x%lx )",ARG1,ARG2);
PRE_REG_READ2(long, "ioctl",
unsigned int, fd, unsigned int, request);
@@ -4420,6 +4424,14 @@ PRE(sys_ioctl)
VKI_SIZEOF_STRUCT_HD_DRIVEID );
break;
+ /* SCSI */
+ case VKI_SCSI_IOCTL_GET_IDLUN: /* 0x5382 */
+ PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_IDLUN)", ARG3, 2*sizeof(int));
+ break;
+ case VKI_SCSI_IOCTL_GET_BUS_NUMBER: /* 0x5386 */
+ PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", ARG3, sizeof(int));
+ break;
+
/* CD ROM stuff (??) */
case VKI_CDROM_GET_MCN:
PRE_MEM_READ( "ioctl(CDROM_GET_MCN)", ARG3,
@@ -5521,6 +5533,10 @@ POST(sys_ioctl)
case VKI_SNDRV_TIMER_IOCTL_STOP:
case VKI_SNDRV_TIMER_IOCTL_CONTINUE:
case VKI_SNDRV_TIMER_IOCTL_PAUSE:
+
+ /* SCSI no operand */
+ case VKI_SCSI_IOCTL_DOORLOCK:
+ case VKI_SCSI_IOCTL_DOORUNLOCK:
break;
/* Real Time Clock (/dev/rtc) ioctls */
@@ -5587,6 +5603,14 @@ POST(sys_ioctl)
POST_MEM_WRITE(ARG3, VKI_SIZEOF_STRUCT_HD_DRIVEID );
break;
+ /* SCSI */
+ case VKI_SCSI_IOCTL_GET_IDLUN: /* 0x5382 */
+ POST_MEM_WRITE(ARG3, 2*sizeof(int));
+ break;
+ case VKI_SCSI_IOCTL_GET_BUS_NUMBER: /* 0x5386 */
+ POST_MEM_WRITE(ARG3, sizeof(int));
+ break;
+
/* CD ROM stuff (??) */
case VKI_CDROMSUBCHNL:
POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_subchnl));

View File

@ -0,0 +1,60 @@
Disable some hanging tests, fix up bug125959-x86.c undefined behavior.
--- valgrind-3.7.0/helgrind/tests/Makefile.am.jj 2011-10-26 23:24:25.000000000 +0200
+++ valgrind-3.7.0/helgrind/tests/Makefile.am 2012-01-27 15:01:58.955624195 +0100
@@ -94,7 +94,6 @@ EXTRA_DIST = \
# XXX: tc18_semabuse uses operations that are unsupported on Darwin. It
# should be conditionally compiled like tc20_verifywrap is.
check_PROGRAMS = \
- annotate_hbefore \
cond_timedwait_invalid \
free_is_write \
hg01_all_ok \
--- valgrind-3.7.0/helgrind/tests/Makefile.in.jj 2011-11-05 12:26:51.000000000 +0100
+++ valgrind-3.7.0/helgrind/tests/Makefile.in 2012-01-27 15:02:40.285383038 +0100
@@ -46,8 +46,7 @@ host_triplet = @host@
DIST_COMMON = $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \
$(top_srcdir)/Makefile.tool-tests.am
-check_PROGRAMS = annotate_hbefore$(EXEEXT) \
- cond_timedwait_invalid$(EXEEXT) free_is_write$(EXEEXT) \
+check_PROGRAMS = cond_timedwait_invalid$(EXEEXT) free_is_write$(EXEEXT) \
hg01_all_ok$(EXEEXT) hg02_deadlock$(EXEEXT) \
hg03_inherit$(EXEEXT) hg04_race$(EXEEXT) hg05_race2$(EXEEXT) \
hg06_readshared$(EXEEXT) locked_vs_unlocked1$(EXEEXT) \
--- valgrind-3.7.0/none/tests/x86/bug125959-x86.c.jj 2011-10-26 23:24:38.000000000 +0200
+++ valgrind-3.7.0/none/tests/x86/bug125959-x86.c 2012-01-27 15:00:11.648250429 +0100
@@ -22,7 +22,8 @@ static int lookup ( int i )
int main(void)
{
- int i, j;
+ int i;
+ unsigned int j;
for (i = 0; i < 256; i++)
buf[i] = (unsigned char) i;
--- valgrind-3.7.0/gdbserver_tests/Makefile.am.jj 2011-10-26 23:24:26.000000000 +0200
+++ valgrind-3.7.0/gdbserver_tests/Makefile.am 2012-01-27 14:56:43.369465872 +0100
@@ -102,9 +102,7 @@ check_PROGRAMS = \
clean_after_fork \
fork_chain \
passsigalrm \
- sleepers \
main_pic \
- t \
watchpoints
AM_CFLAGS += $(AM_FLAG_M3264_PRI)
--- valgrind-3.7.0/gdbserver_tests/Makefile.in.jj 2011-11-05 12:26:51.000000000 +0100
+++ valgrind-3.7.0/gdbserver_tests/Makefile.in 2012-01-27 14:57:30.278191493 +0100
@@ -47,8 +47,7 @@ DIST_COMMON = $(dist_noinst_SCRIPTS) $(s
$(srcdir)/Makefile.in $(top_srcdir)/Makefile.all.am \
$(top_srcdir)/Makefile.tool-tests.am
check_PROGRAMS = clean_after_fork$(EXEEXT) fork_chain$(EXEEXT) \
- passsigalrm$(EXEEXT) sleepers$(EXEEXT) main_pic$(EXEEXT) \
- t$(EXEEXT) watchpoints$(EXEEXT)
+ passsigalrm$(EXEEXT) main_pic$(EXEEXT) watchpoints$(EXEEXT)
subdir = gdbserver_tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in

View File

@ -1,31 +1,20 @@
Summary: Tool for finding memory management bugs in programs Summary: Tool for finding memory management bugs in programs
Name: valgrind Name: valgrind
Version: 3.6.1 Version: 3.7.0
Release: 7%{?dist} Release: 1%{?dist}
Epoch: 1 Epoch: 1
Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2 Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2
Patch1: valgrind-3.6.1-cachegrind-improvements.patch Patch1: valgrind-3.7.0-cachegrind-improvements.patch
Patch2: valgrind-3.6.1-openat.patch Patch2: valgrind-3.7.0-openat.patch
Patch3: valgrind-3.6.1-glibc-2.10.1.patch Patch3: valgrind-3.7.0-helgrind-race-supp.patch
Patch4: valgrind-3.6.1-helgrind-race-supp.patch Patch4: valgrind-3.7.0-stat_h.patch
Patch5: valgrind-3.6.1-stat_h.patch Patch5: valgrind-3.7.0-config_h.patch
Patch6: valgrind-3.6.1-config_h.patch Patch6: valgrind-3.7.0-capget.patch
Patch7: valgrind-3.6.1-capget.patch Patch7: valgrind-3.7.0-glibc-2.15.patch
Patch8: valgrind-3.6.1-glibc-2.14.patch Patch8: valgrind-3.7.0-pie.patch
Patch9: valgrind-3.6.1-s390x-1.patch Patch9: valgrind-3.7.0-tests.patch
Patch10: valgrind-3.6.1-s390x-2.patch Patch10: valgrind-3.7.0-f-sgetown-ex.patch
Patch11: valgrind-3.6.1-s390x-3.patch Patch11: valgrind-3.7.0-scsi-ioctls.patch
Patch12: valgrind-3.6.1-s390x-4.patch
Patch13: valgrind-3.6.1-xlc_dbl_u32-test.patch
Patch14: valgrind-3.6.1-helgrind-tests.patch
Patch15: valgrind-3.6.1-ppc64-pwrite64.patch
Patch16: valgrind-3.6.1-pie.patch
Patch17: valgrind-3.6.1-gen_insn_test.patch
Patch18: valgrind-3.6.1-x86-ldso-strlen.patch
Patch19: valgrind-3.6.1-ppc64-build.patch
Patch20: valgrind-3.6.1-tests-_GNU_SOURCE.patch
Patch21: valgrind-3.6.1-x86_64-memcpy-memmove.patch
Patch22: valgrind-3.6.1-plt-unwind-info.patch
License: GPLv2 License: GPLv2
URL: http://www.valgrind.org/ URL: http://www.valgrind.org/
Group: Development/Debuggers Group: Development/Debuggers
@ -111,19 +100,6 @@ for details.
%patch9 -p1 %patch9 -p1
%patch10 -p1 %patch10 -p1
%patch11 -p1 %patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
chmod 755 none/tests/s390x/filter_stderr || :
%build %build
CC=gcc CC=gcc
@ -223,8 +199,10 @@ rm -rf $RPM_BUILD_ROOT
%endif %endif
%changelog %changelog
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.6.1-7 * Fri Jan 27 2012 Jakub Jelinek <jakub@redhat.com> 3.7.0-1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - update to 3.7.0 (#769213, #782910, #772343)
- handle some further SCSI ioctls (#783936)
- handle fcntl F_SETOWN_EX and F_GETOWN_EX (#770746)
* Wed Aug 17 2011 Adam Jackson <ajax@redhat.com> 3.6.1-6 * Wed Aug 17 2011 Adam Jackson <ajax@redhat.com> 3.6.1-6
- rebuild for rpm 4.9.1 trailing / bug - rebuild for rpm 4.9.1 trailing / bug