aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/valgrind/valgrind-3.8.1
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/valgrind/valgrind-3.8.1')
-rw-r--r--meta/recipes-devtools/valgrind/valgrind-3.8.1/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch96
-rw-r--r--meta/recipes-devtools/valgrind/valgrind-3.8.1/configure-with-newer-glibc.patch41
-rw-r--r--meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_issue_caused_by_ccache.patch32
-rw-r--r--meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_unsupporting_kernel_3.patch26
-rw-r--r--meta/recipes-devtools/valgrind/valgrind-3.8.1/fixed-perl-path.patch53
5 files changed, 248 insertions, 0 deletions
diff --git a/meta/recipes-devtools/valgrind/valgrind-3.8.1/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch b/meta/recipes-devtools/valgrind/valgrind-3.8.1/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch
new file mode 100644
index 0000000000..07774f38a9
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind-3.8.1/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch
@@ -0,0 +1,96 @@
+From 0bf4b0ac18d1ea41b32ad781d214b295ca1998f3 Mon Sep 17 00:00:00 2001
+From: Aneesh Bansal <aneesh.bansal@freescale.com>
+Date: Mon, 21 Nov 2011 17:31:39 +0530
+Subject: [PATCH] Added support for PPC instructions mfatbu, mfatbl.
+
+Upstream-Status: Pending
+
+Signed-off-by: Aneesh Bansal <aneesh.bansal@freescale.com>
+---
+Currently Valgrind 3.7.0 does not have support for PPC instructions mfatbu and mfatbl. When we run a USDPAA application with VALGRIND, the following error is given by valgrind :
+dis_proc_ctl(ppc)(mfspr,SPR)(0x20F)
+disInstr(ppc): unhandled instruction: 0x7C0F82A6
+
+
+ VEX/priv/guest_ppc_defs.h | 2 ++
+ VEX/priv/guest_ppc_helpers.c | 18 ++++++++++++++++++
+ VEX/priv/guest_ppc_toIR.c | 22 ++++++++++++++++++++++
+ 3 files changed, 42 insertions(+), 0 deletions(-)
+
+diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
+index dd3c62e..11a34aa 100644
+--- a/VEX/priv/guest_ppc_defs.h
++++ b/VEX/priv/guest_ppc_defs.h
+@@ -146,6 +146,8 @@ extern UInt ppc32g_dirtyhelper_MFSPR_268_269 ( UInt );
+
+ extern UInt ppc32g_dirtyhelper_MFSPR_287 ( void );
+
++extern UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt );
++
+ extern void ppc32g_dirtyhelper_LVS ( VexGuestPPC32State* gst,
+ UInt vD_idx, UInt sh,
+ UInt shift_right );
+diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
+index 11aa428..b49ea3f 100644
+--- a/VEX/priv/guest_ppc_helpers.c
++++ b/VEX/priv/guest_ppc_helpers.c
+@@ -119,6 +119,24 @@ UInt ppc32g_dirtyhelper_MFSPR_287 ( void )
+ # endif
+ }
+
++/* CALLED FROM GENERATED CODE */
++/* DIRTY HELPER (non-referentially transparent) */
++UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt r527 )
++{
++# if defined(__powerpc__) || defined(_AIX)
++ UInt spr;
++ if (r527) {
++ __asm__ __volatile__("mfspr %0,527" : "=b"(spr));
++ } else {
++ __asm__ __volatile__("mfspr %0,526" : "=b"(spr));
++ }
++ return spr;
++# else
++ return 0;
++# endif
++}
++
++
+
+ /* CALLED FROM GENERATED CODE */
+ /* DIRTY HELPER (reads guest state, writes guest mem) */
+diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
+index f8d220d..37c8974 100644
+--- a/VEX/priv/guest_ppc_toIR.c
++++ b/VEX/priv/guest_ppc_toIR.c
+@@ -5657,6 +5657,28 @@ static Bool dis_proc_ctl ( VexAbiInfo* vbi, UInt theInstr )
+ break;
+ }
+
++
++ case 526 /* 0x20E */:
++ case 527 /* 0x20F */: {
++ UInt arg = SPR==526 ? 0 : 1;
++ IRTemp val = newTemp(Ity_I32);
++ IRExpr** args = mkIRExprVec_1( mkU32(arg) );
++ IRDirty* d = unsafeIRDirty_1_N(
++ val,
++ 0/*regparms*/,
++ "ppc32g_dirtyhelper_MFSPR_526_527",
++ fnptr_to_fnentry
++ (vbi, &ppc32g_dirtyhelper_MFSPR_526_527),
++ args
++ );
++ /* execute the dirty call, dumping the result in val. */
++ stmt( IRStmt_Dirty(d) );
++ putIReg( rD_addr,
++ mkWidenFrom32(ty, mkexpr(val), False/*unsigned*/) );
++ DIP("mfspr r%u,%u", rD_addr, (UInt)SPR);
++ break;
++ }
++
+ default:
+ vex_printf("dis_proc_ctl(ppc)(mfspr,SPR)(0x%x)\n", SPR);
+ return False;
+--
+1.7.0.4
diff --git a/meta/recipes-devtools/valgrind/valgrind-3.8.1/configure-with-newer-glibc.patch b/meta/recipes-devtools/valgrind/valgrind-3.8.1/configure-with-newer-glibc.patch
new file mode 100644
index 0000000000..d3cea234cb
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind-3.8.1/configure-with-newer-glibc.patch
@@ -0,0 +1,41 @@
+Add case for glibc 2.16 and correct error message to denote support until 2.16
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+Signed-off-by: Radu Moisan <radu.moisan@intel.com>
+
+Upstream-Status: Pending
+Index: valgrind-3.8.1/configure.in
+===================================================================
+--- valgrind-3.8.1.orig/configure.in
++++ valgrind-3.8.1/configure.in
+@@ -910,6 +910,20 @@ case "${GLIBC_VERSION}" in
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
++ 2.16)
++ AC_MSG_RESULT(2.16 family)
++ AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.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}"
++ ;;
++ 2.17)
++ AC_MSG_RESULT(2.17 family)
++ AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.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])
+@@ -923,7 +937,7 @@ case "${GLIBC_VERSION}" in
+
+ *)
+ AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
++ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17])
+ AC_MSG_ERROR([or Darwin libc])
+ ;;
+ esac
diff --git a/meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_issue_caused_by_ccache.patch b/meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_issue_caused_by_ccache.patch
new file mode 100644
index 0000000000..4658567b21
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_issue_caused_by_ccache.patch
@@ -0,0 +1,32 @@
+The script does not expect use of ccache, hence fix it to recognise it.
+
+2010/08/17
+Nitin A Kamble <nitin.a.kamble@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+
+Index: valgrind-3.5.0/coregrind/link_tool_exe_linux.in
+===================================================================
+--- valgrind-3.5.0.orig/coregrind/link_tool_exe_linux.in
++++ valgrind-3.5.0/coregrind/link_tool_exe_linux.in
+@@ -62,6 +62,11 @@ die "Bogus alt-load address"
+
+ # The cc invokation to do the final link
+ my $cc = $ARGV[1];
++my $next = 2;
++if ("$cc" eq "ccache") {
++ $cc = "$cc $ARGV[2]";
++ $next = 3;
++}
+
+ # and the 'restargs' are argv[2 ..]
+
+@@ -71,7 +76,7 @@ my $cc = $ARGV[1];
+ my $cmd="$cc -static -Wl,-Ttext=$ala";
+
+ # Add the rest of the parameters
+-foreach my $n (2 .. $#ARGV) {
++foreach my $n ($next .. $#ARGV) {
+ $cmd = "$cmd $ARGV[$n]";
+ }
+
diff --git a/meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_unsupporting_kernel_3.patch b/meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_unsupporting_kernel_3.patch
new file mode 100644
index 0000000000..346ffebb3d
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind-3.8.1/fix_unsupporting_kernel_3.patch
@@ -0,0 +1,26 @@
+valgrind: Add 3.x statements to "case" for supporting the kernel 3.x
+
+Signed-off-by: Lin Tong <tong.lin@intel.com>
+
+Upstream-Status: Pending
+
+diff --git a/configure.in b/configure.in
+index 3878619..1cb7dc7 100644
+--- a/configure.in
++++ b/configure.in
+@@ -229,10 +229,14 @@ case "${host_os}" in
+ AC_MSG_RESULT([2.4 family (${kernel})])
+ AC_DEFINE([KERNEL_2_4], 1, [Define to 1 if you're using Linux 2.4.x])
+ ;;
++ 3.*)
++ AC_MSG_RESULT([3 family (${kernel})])
++ AC_DEFINE([KERNEL_3], 1, [Define to 1 if you're using Linux 3.x])
++ ;;
+
+ *)
+ AC_MSG_RESULT([unsupported (${kernel})])
+- AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6])
++ AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6, 3.x])
+ ;;
+ esac
+
diff --git a/meta/recipes-devtools/valgrind/valgrind-3.8.1/fixed-perl-path.patch b/meta/recipes-devtools/valgrind/valgrind-3.8.1/fixed-perl-path.patch
new file mode 100644
index 0000000000..b054d05f7f
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind-3.8.1/fixed-perl-path.patch
@@ -0,0 +1,53 @@
+this is a temporary patch to workaround cross compilation.
+otherwise @PERL@ will be replaced to perl-native binary,
+this creates unusable scripts and fails FILERDEPENDS mechanism
+(esp. rpm)
+
+a better fix would need:
+ 1. configure.ac should differentiate PERL and HOSTPERL
+ 2. optionally remove ${STAGING_DIR} in #! line before do_install
+
+8/31/2010 - created by Qing He <qing.he@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+
+diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in
+index 9dc9565..cc4ef05 100644
+--- a/cachegrind/cg_annotate.in
++++ b/cachegrind/cg_annotate.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/perl
+
+ ##--------------------------------------------------------------------##
+ ##--- Cachegrind's annotator. cg_annotate.in ---##
+diff --git a/cachegrind/cg_diff.in b/cachegrind/cg_diff.in
+index 951066e..84c2dde 100644
+--- a/cachegrind/cg_diff.in
++++ b/cachegrind/cg_diff.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/perl
+
+ ##--------------------------------------------------------------------##
+ ##--- Cachegrind's differencer. cg_diff.in ---##
+diff --git a/massif/ms_print.in b/massif/ms_print.in
+index e6ffdbf..fb45906 100755
+--- a/massif/ms_print.in
++++ b/massif/ms_print.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/perl
+
+ ##--------------------------------------------------------------------##
+ ##--- Massif's results printer ms_print.in ---##
+diff --git a/perf/vg_perf.in b/perf/vg_perf.in
+index 2188a31..83ad024 100644
+--- a/perf/vg_perf.in
++++ b/perf/vg_perf.in
+@@ -1,4 +1,4 @@
+-#! @PERL@
++#! /usr/bin/perl
+ ##--------------------------------------------------------------------##
+ ##--- Valgrind performance testing script vg_perf ---##
+ ##--------------------------------------------------------------------##