summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/valgrind
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
commit972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch)
tree97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/recipes-devtools/valgrind
downloadpoky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-devtools/valgrind')
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch96
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/add-ptest.patch243
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/enable.building.on.4.x.kernel.patch36
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch53
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/force-nostabs.patch42
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/glibc-2.20.patch30
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/pass-maltivec-only-if-it-supported.patch68
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch67
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/remove-ppc-tests-failing-build.patch75
-rwxr-xr-xmeta/recipes-devtools/valgrind/valgrind/run-ptest12
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/sepbuildfix.patch235
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.9.0.bb100
12 files changed, 1057 insertions, 0 deletions
diff --git a/meta/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch b/meta/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch
new file mode 100644
index 0000000000..07774f38a9
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch
@@ -0,0 +1,96 @@
1From 0bf4b0ac18d1ea41b32ad781d214b295ca1998f3 Mon Sep 17 00:00:00 2001
2From: Aneesh Bansal <aneesh.bansal@freescale.com>
3Date: Mon, 21 Nov 2011 17:31:39 +0530
4Subject: [PATCH] Added support for PPC instructions mfatbu, mfatbl.
5
6Upstream-Status: Pending
7
8Signed-off-by: Aneesh Bansal <aneesh.bansal@freescale.com>
9---
10Currently 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 :
11dis_proc_ctl(ppc)(mfspr,SPR)(0x20F)
12disInstr(ppc): unhandled instruction: 0x7C0F82A6
13
14
15 VEX/priv/guest_ppc_defs.h | 2 ++
16 VEX/priv/guest_ppc_helpers.c | 18 ++++++++++++++++++
17 VEX/priv/guest_ppc_toIR.c | 22 ++++++++++++++++++++++
18 3 files changed, 42 insertions(+), 0 deletions(-)
19
20diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
21index dd3c62e..11a34aa 100644
22--- a/VEX/priv/guest_ppc_defs.h
23+++ b/VEX/priv/guest_ppc_defs.h
24@@ -146,6 +146,8 @@ extern UInt ppc32g_dirtyhelper_MFSPR_268_269 ( UInt );
25
26 extern UInt ppc32g_dirtyhelper_MFSPR_287 ( void );
27
28+extern UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt );
29+
30 extern void ppc32g_dirtyhelper_LVS ( VexGuestPPC32State* gst,
31 UInt vD_idx, UInt sh,
32 UInt shift_right );
33diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
34index 11aa428..b49ea3f 100644
35--- a/VEX/priv/guest_ppc_helpers.c
36+++ b/VEX/priv/guest_ppc_helpers.c
37@@ -119,6 +119,24 @@ UInt ppc32g_dirtyhelper_MFSPR_287 ( void )
38 # endif
39 }
40
41+/* CALLED FROM GENERATED CODE */
42+/* DIRTY HELPER (non-referentially transparent) */
43+UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt r527 )
44+{
45+# if defined(__powerpc__) || defined(_AIX)
46+ UInt spr;
47+ if (r527) {
48+ __asm__ __volatile__("mfspr %0,527" : "=b"(spr));
49+ } else {
50+ __asm__ __volatile__("mfspr %0,526" : "=b"(spr));
51+ }
52+ return spr;
53+# else
54+ return 0;
55+# endif
56+}
57+
58+
59
60 /* CALLED FROM GENERATED CODE */
61 /* DIRTY HELPER (reads guest state, writes guest mem) */
62diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
63index f8d220d..37c8974 100644
64--- a/VEX/priv/guest_ppc_toIR.c
65+++ b/VEX/priv/guest_ppc_toIR.c
66@@ -5657,6 +5657,28 @@ static Bool dis_proc_ctl ( VexAbiInfo* vbi, UInt theInstr )
67 break;
68 }
69
70+
71+ case 526 /* 0x20E */:
72+ case 527 /* 0x20F */: {
73+ UInt arg = SPR==526 ? 0 : 1;
74+ IRTemp val = newTemp(Ity_I32);
75+ IRExpr** args = mkIRExprVec_1( mkU32(arg) );
76+ IRDirty* d = unsafeIRDirty_1_N(
77+ val,
78+ 0/*regparms*/,
79+ "ppc32g_dirtyhelper_MFSPR_526_527",
80+ fnptr_to_fnentry
81+ (vbi, &ppc32g_dirtyhelper_MFSPR_526_527),
82+ args
83+ );
84+ /* execute the dirty call, dumping the result in val. */
85+ stmt( IRStmt_Dirty(d) );
86+ putIReg( rD_addr,
87+ mkWidenFrom32(ty, mkexpr(val), False/*unsigned*/) );
88+ DIP("mfspr r%u,%u", rD_addr, (UInt)SPR);
89+ break;
90+ }
91+
92 default:
93 vex_printf("dis_proc_ctl(ppc)(mfspr,SPR)(0x%x)\n", SPR);
94 return False;
95--
961.7.0.4
diff --git a/meta/recipes-devtools/valgrind/valgrind/add-ptest.patch b/meta/recipes-devtools/valgrind/valgrind/add-ptest.patch
new file mode 100644
index 0000000000..225f84305f
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/add-ptest.patch
@@ -0,0 +1,243 @@
1Modify vg_test wrapper to support PTEST formats
2
3Change the valgrind regression test script vg_regtest to
4support the yocto ptest stdout reporting format. The commit adds
5'--yocto-ptest' as an optional argument to vg_regtest, which alters
6the output to use the ptest infrastructure reporting format:
7 "[PASS|SKIP|FAIL]: testname"
8instead of valgrind's internal test reporting format. Without the added
9option, --yocto-ptest, the valgrind regression test output is unchanged.
10
11Enforce 30 seconds limit for the test.
12This resume execution of the remaining tests when valgrind hangs.
13
14Upstream-Status: Pending
15
16Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
17Signed-off-by: Tudor Florea <tudor.florea@enea.com>
18
19diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in
20index 224385f..3e0383b 100755
21--- a/tests/vg_regtest.in
22+++ b/tests/vg_regtest.in
23@@ -39,11 +39,11 @@
24 # --valgrind.)
25 # --keep-unfiltered: keep a copy of the unfiltered output/error output
26 # of each test by adding an extension .unfiltered.out
27-#
28 # --outer-valgrind: run this valgrind under the given outer valgrind.
29 # This valgrind must be configured with --enable-inner.
30 # --outer-tool: tool to use by the outer valgrind (default memcheck).
31 # --outer-args: use this as outer tool args.
32+# --yocto-ptest: output in yocto ptest format
33 #
34 # The easiest way is to run all tests in valgrind/ with (assuming you installed
35 # in $PREFIX):
36@@ -126,7 +126,7 @@ use strict;
37 my $usage="\n"
38 . "Usage:\n"
39 . " vg_regtest [--all, --valgrind, --valgrind-lib, --keep-unfiltered\n"
40- . " --outer-valgrind, --outer-tool, --outer-args]\n"
41+ . " --outer-valgrind, --outer-tool, --outer-args, --yocto-ptest]\n"
42 . " Use EXTRA_REGTEST_OPTS to supply extra args for all tests\n"
43 . "\n";
44
45@@ -170,6 +170,7 @@ my $outer_args;
46
47 my $valgrind_lib = "$tests_dir/.in_place";
48 my $keepunfiltered = 0;
49+my $yoctoptest = 0;
50
51 # default filter is the one named "filter_stderr" in the test's directory
52 my $default_stderr_filter = "filter_stderr";
53@@ -226,6 +227,8 @@ sub process_command_line()
54 $valgrind_lib = $1;
55 } elsif ($arg =~ /^--keep-unfiltered$/) {
56 $keepunfiltered = 1;
57+ } elsif ($arg =~ /^--yocto-ptest$/) {
58+ $yoctoptest = 1;
59 } else {
60 die $usage;
61 }
62@@ -340,13 +343,28 @@ sub read_vgtest_file($)
63 #----------------------------------------------------------------------------
64 # Since most of the program time is spent in system() calls, need this to
65 # propagate a Ctrl-C enabling us to quit.
66-sub mysystem($)
67+# Enforce 30 seconds limit for the test.
68+# This resume execution of the remaining tests if valgrind hangs.
69+sub mysystem($)
70 {
71- my $exit_code = system($_[0]);
72- ($exit_code == 2) and exit 1; # 2 is SIGINT
73- return $exit_code;
74+ my $exit_code=0;
75+ eval {
76+ local $SIG{'ALRM'} = sub { die "timed out\n" };
77+ alarm(30);
78+ $exit_code = system($_[0]);
79+ alarm (0);
80+ ($exit_code == 2) and die "SIGINT\n"; # 2 is SIGINT
81+ };
82+ if ($@) {
83+ if ($@ eq "timed out\n") {
84+ print "timed out\n";
85+ return 1;
86+ }
87+ if ($@ eq "SIGINT\n") {
88+ exit 1;
89+ }
90+ }
91 }
92-
93 # if $keepunfiltered, copies $1 to $1.unfiltered.out
94 # renames $0 tp $1
95 sub filtered_rename($$)
96@@ -394,19 +412,21 @@ sub do_diffs($$$$)
97 # A match; remove .out and any previously created .diff files.
98 unlink("$name.$mid.out");
99 unlink(<$name.$mid.diff*>);
100- return;
101+ return 0;
102 }
103 }
104 }
105 # If we reach here, none of the .exp files matched.
106- print "*** $name failed ($mid) ***\n";
107+ print "*** $name failed ($mid) ***\n" if ($yoctoptest == 0) ;
108 push(@failures, sprintf("%-40s ($mid)", "$fullname"));
109 $num_failures{$mid}++;
110+ return 1;
111 }
112
113 sub do_one_test($$)
114 {
115 my ($dir, $vgtest) = @_;
116+ my $diffStatus = 0;
117 $vgtest =~ /^(.*)\.vgtest/;
118 my $name = $1;
119 my $fullname = "$dir/$name";
120@@ -425,7 +445,11 @@ sub do_one_test($$)
121 } elsif (256 == $prereq_res) {
122 # Nb: weird Perl-ism -- exit code of '1' is seen by Perl as 256...
123 # Prereq failed, skip.
124- printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:");
125+ if ($yoctoptest == 0) {
126+ printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:");
127+ } else {
128+ printf("SKIP: $fullname\n");
129+ }
130 return;
131 } else {
132 # Bad prereq; abort.
133@@ -438,7 +462,7 @@ sub do_one_test($$)
134 if (defined $progB) {
135 # If there is a progB, let's start it in background:
136 printf("%-16s valgrind $extraopts $vgopts $prog $args (progB: $progB $argsB)\n",
137- "$name:");
138+ "$name:") if ($yoctoptest == 0);
139 # progB.done used to detect child has finished. See below.
140 # Note: redirection of stdout and stderr is before $progB to allow argsB
141 # to e.g. redirect stdoutB to stderrB
142@@ -452,7 +476,8 @@ sub do_one_test($$)
143 . "touch progB.done) &");
144 }
145 } else {
146- printf("%-16s valgrind $extraopts $vgopts $prog $args\n", "$name:");
147+ printf("%-16s valgrind $extraopts $vgopts $prog $args\n", "$name:")
148+ if ($yoctoptest == 0);
149 }
150
151 # Pass the appropriate --tool option for the directory (can be overridden
152@@ -487,7 +512,7 @@ sub do_one_test($$)
153 # Find all the .stdout.exp files. If none, use /dev/null.
154 my @stdout_exps = <$name.stdout.exp*>;
155 @stdout_exps = ( "/dev/null" ) if (0 == scalar @stdout_exps);
156- do_diffs($fullname, $name, "stdout", \@stdout_exps);
157+ $diffStatus |= do_diffs($fullname, $name, "stdout", \@stdout_exps);
158
159 # Filter stderr
160 $stderr_filter_args = $name if (! defined $stderr_filter_args);
161@@ -496,7 +521,7 @@ sub do_one_test($$)
162 # Find all the .stderr.exp files. At least one must exist.
163 my @stderr_exps = <$name.stderr.exp*>;
164 (0 != scalar @stderr_exps) or die "Could not find `$name.stderr.exp*'\n";
165- do_diffs($fullname, $name, "stderr", \@stderr_exps);
166+ $diffStatus |= do_diffs($fullname, $name, "stderr", \@stderr_exps);
167
168 if (defined $progB) {
169 # wait for the child to be finished
170@@ -520,7 +545,7 @@ sub do_one_test($$)
171 # Find all the .stdoutB.exp files. If none, use /dev/null.
172 my @stdoutB_exps = <$name.stdoutB.exp*>;
173 @stdoutB_exps = ( "/dev/null" ) if (0 == scalar @stdoutB_exps);
174- do_diffs($fullname, $name, "stdoutB", \@stdoutB_exps);
175+ $diffStatus |= do_diffs($fullname, $name, "stdoutB", \@stdoutB_exps);
176
177 # Filter stderr
178 $stderrB_filter_args = $name if (! defined $stderrB_filter_args);
179@@ -529,7 +554,7 @@ sub do_one_test($$)
180 # Find all the .stderrB.exp files. At least one must exist.
181 my @stderrB_exps = <$name.stderrB.exp*>;
182 (0 != scalar @stderrB_exps) or die "Could not find `$name.stderrB.exp*'\n";
183- do_diffs($fullname, $name, "stderrB", \@stderrB_exps);
184+ $diffStatus |= do_diffs($fullname, $name, "stderrB", \@stderrB_exps);
185 }
186
187 # Maybe do post-test check
188@@ -541,7 +566,7 @@ sub do_one_test($$)
189 # Find all the .post.exp files. If none, use /dev/null.
190 my @post_exps = <$name.post.exp*>;
191 @post_exps = ( "/dev/null" ) if (0 == scalar @post_exps);
192- do_diffs($fullname, $name, "post", \@post_exps);
193+ $diffStatus |= do_diffs($fullname, $name, "post", \@post_exps);
194 }
195 }
196
197@@ -550,6 +575,13 @@ sub do_one_test($$)
198 print("(cleanup operation failed: $cleanup)\n");
199 }
200
201+ if ($yoctoptest == 1) {
202+ if ($diffStatus == 0) {
203+ print("PASS: $fullname\n");
204+ } else {
205+ print("FAIL: $fullname\n");
206+ }
207+ }
208 $num_tests_done++;
209 }
210
211@@ -589,7 +621,7 @@ sub test_one_dir($$)
212 my $found_tests = (0 != (grep { $_ =~ /\.vgtest$/ } @fs));
213
214 if ($found_tests) {
215- print "-- Running tests in $full_dir $dashes\n";
216+ print "-- Running tests in $full_dir $dashes\n" if ($yoctoptest == 0);
217 }
218 foreach my $f (@fs) {
219 if (-d $f) {
220@@ -599,7 +631,7 @@ sub test_one_dir($$)
221 }
222 }
223 if ($found_tests) {
224- print "-- Finished tests in $full_dir $dashes\n";
225+ print "-- Finished tests in $full_dir $dashes\n" if ($yoctoptest == 0);
226 }
227
228 chdir("..");
229@@ -625,10 +657,12 @@ sub summarise_results
230 $num_failures{"stdout"}, plural($num_failures{"stdout"}),
231 $num_failures{"stderrB"}, plural($num_failures{"stderrB"}),
232 $num_failures{"stdoutB"}, plural($num_failures{"stdoutB"}),
233- $num_failures{"post"}, plural($num_failures{"post"}));
234+ $num_failures{"post"}, plural($num_failures{"post"}))
235+ if ($yoctoptest == 0);
236
237 foreach my $failure (@failures) {
238- print "$failure\n";
239+ print "$failure\n"
240+ if ($yoctoptest == 0);
241 }
242 print "\n";
243 }
diff --git a/meta/recipes-devtools/valgrind/valgrind/enable.building.on.4.x.kernel.patch b/meta/recipes-devtools/valgrind/valgrind/enable.building.on.4.x.kernel.patch
new file mode 100644
index 0000000000..a90fcc510c
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/enable.building.on.4.x.kernel.patch
@@ -0,0 +1,36 @@
1Enable building valgrind on host with 4.x kernel.
2
3For OpenEmbedded builds we should be checking something like
4OLDEST_KERNEL instead of `uname -r`, but this is good enough for now.
5
6Building on 4.x* currently fails with:
7 configure:5556: checking for the kernel version
8 configure:5579: result: unsupported (4.0.0-rc3-00111-gaffb817)
9 configure:5581: error: Valgrind works on kernels 2.4, 2.6
10
11Upstream-Status: Pending
12
13--- valgrind-3.9.0/configure.ac.orig 2015-03-13 19:17:01.247310868 +0100
14+++ valgrind-3.9.0/configure.ac 2015-03-13 19:19:27.388316108 +0100
15@@ -276,9 +276,9 @@
16 kernel=`uname -r`
17
18 case "${kernel}" in
19- 2.6.*|3.*)
20- AC_MSG_RESULT([2.6.x/3.x family (${kernel})])
21- AC_DEFINE([KERNEL_2_6], 1, [Define to 1 if you're using Linux 2.6.x or Linux 3.x])
22+ 2.6.*|3.*|4.*)
23+ AC_MSG_RESULT([2.6.x/3.x/4.x family (${kernel})])
24+ AC_DEFINE([KERNEL_2_6], 1, [Define to 1 if you're using Linux 2.6.x or Linux 3.x or Linux 4.x])
25 ;;
26
27 2.4.*)
28@@ -288,7 +288,7 @@
29
30 *)
31 AC_MSG_RESULT([unsupported (${kernel})])
32- AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6])
33+ AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6, 3.x, 4.x])
34 ;;
35 esac
36
diff --git a/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch b/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch
new file mode 100644
index 0000000000..b054d05f7f
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch
@@ -0,0 +1,53 @@
1this is a temporary patch to workaround cross compilation.
2otherwise @PERL@ will be replaced to perl-native binary,
3this creates unusable scripts and fails FILERDEPENDS mechanism
4(esp. rpm)
5
6a better fix would need:
7 1. configure.ac should differentiate PERL and HOSTPERL
8 2. optionally remove ${STAGING_DIR} in #! line before do_install
9
108/31/2010 - created by Qing He <qing.he@intel.com>
11
12Upstream-Status: Inappropriate [configuration]
13
14diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in
15index 9dc9565..cc4ef05 100644
16--- a/cachegrind/cg_annotate.in
17+++ b/cachegrind/cg_annotate.in
18@@ -1,4 +1,4 @@
19-#! @PERL@
20+#! /usr/bin/perl
21
22 ##--------------------------------------------------------------------##
23 ##--- Cachegrind's annotator. cg_annotate.in ---##
24diff --git a/cachegrind/cg_diff.in b/cachegrind/cg_diff.in
25index 951066e..84c2dde 100644
26--- a/cachegrind/cg_diff.in
27+++ b/cachegrind/cg_diff.in
28@@ -1,4 +1,4 @@
29-#! @PERL@
30+#! /usr/bin/perl
31
32 ##--------------------------------------------------------------------##
33 ##--- Cachegrind's differencer. cg_diff.in ---##
34diff --git a/massif/ms_print.in b/massif/ms_print.in
35index e6ffdbf..fb45906 100755
36--- a/massif/ms_print.in
37+++ b/massif/ms_print.in
38@@ -1,4 +1,4 @@
39-#! @PERL@
40+#! /usr/bin/perl
41
42 ##--------------------------------------------------------------------##
43 ##--- Massif's results printer ms_print.in ---##
44diff --git a/perf/vg_perf.in b/perf/vg_perf.in
45index 2188a31..83ad024 100644
46--- a/perf/vg_perf.in
47+++ b/perf/vg_perf.in
48@@ -1,4 +1,4 @@
49-#! @PERL@
50+#! /usr/bin/perl
51 ##--------------------------------------------------------------------##
52 ##--- Valgrind performance testing script vg_perf ---##
53 ##--------------------------------------------------------------------##
diff --git a/meta/recipes-devtools/valgrind/valgrind/force-nostabs.patch b/meta/recipes-devtools/valgrind/valgrind/force-nostabs.patch
new file mode 100644
index 0000000000..849dfc50f9
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/force-nostabs.patch
@@ -0,0 +1,42 @@
1Suppress building ptest apps with the -gstabs option
2
3Force the configure tests for -gstabs compiler support to fail so that
4the regression tests don't try to build with the -gstabs option.
5Otherwise, the valgrind build when ptest is enabled fails with the
6error:
7 Stabs debuginfo not supported:
8 ../package/usr/lib/valgrind/ptest/memcheck/tests/deep_templates
9 ERROR: Function failed: split_and_strip_files
10
11Upstream-Status: Inappropriate [gstabs support is appropriate upstream,
12 but not for this distro]
13
14Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
15
16diff --git a/configure.ac b/configure.ac
17index 755dfb9..cc8b5e1 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -1743,22 +1743,7 @@ AM_CONDITIONAL(DWARF4, test x$ac_have_dwarf4 = xyes)
21 CFLAGS=$safe_CFLAGS
22
23
24-# does this compiler support -gstabs ?
25-
26-AC_MSG_CHECKING([if gcc accepts -gstabs])
27-
28-safe_CFLAGS=$CFLAGS
29-CFLAGS="-gstabs"
30-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
31- return 0;
32-]])], [
33-ac_have_gstabs=yes
34-AC_MSG_RESULT([yes])
35-], [
36 ac_have_gstabs=no
37-AC_MSG_RESULT([no])
38-])
39-CFLAGS=$safe_CFLAGS
40 AM_CONDITIONAL([HAVE_GSTABS], [test x$ac_have_gstabs = xyes])
41
42
diff --git a/meta/recipes-devtools/valgrind/valgrind/glibc-2.20.patch b/meta/recipes-devtools/valgrind/valgrind/glibc-2.20.patch
new file mode 100644
index 0000000000..fab4044d17
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/glibc-2.20.patch
@@ -0,0 +1,30 @@
1Backport of glibc 2.19 and 2.20 support.
2
3Upstream-Status: Backport
4Signed-off-by: Ross Burton <ross.burton@intel.com>
5
6diff --git a/configure.ac b/configure.ac
7index 229ab98..1c18108 100644
8--- a/configure.ac
9+++ b/configure.ac
10@@ -918,6 +918,20 @@ case "${GLIBC_VERSION}" in
11 DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
12 DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
13 ;;
14+ 2.19)
15+ AC_MSG_RESULT(2.19 family)
16+ AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.19.x])
17+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
18+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
19+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
20+ ;;
21+ 2.20)
22+ AC_MSG_RESULT(2.20 family)
23+ AC_DEFINE([GLIBC_2_20], 1, [Define to 1 if you're using glibc 2.20.x])
24+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
25+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
26+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
27+ ;;
28 darwin)
29 AC_MSG_RESULT(Darwin)
30 AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
diff --git a/meta/recipes-devtools/valgrind/valgrind/pass-maltivec-only-if-it-supported.patch b/meta/recipes-devtools/valgrind/valgrind/pass-maltivec-only-if-it-supported.patch
new file mode 100644
index 0000000000..12ad4c3f90
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/pass-maltivec-only-if-it-supported.patch
@@ -0,0 +1,68 @@
1Upstream-status: Backport
2
3r14566 | florian | 2014-09-24 17:02:54 -0500 (Wed, 24 Sep 2014) | 4 lines
4
5The testbuckets none/tests/ppc{32,64} did not build in case the
6toolchain did not support -maltivec -mabi=altivec.
7This should work now. Fixes BZ #338731
8
9Index: none/tests/ppc32/Makefile.am
10===================================================================
11--- a/none/tests/ppc32/Makefile.am (revision 14565)
12+++ b/none/tests/ppc32/Makefile.am (revision 14566)
13@@ -72,8 +72,12 @@
14 allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
15
16 if HAS_ALTIVEC
17+BUILD_FLAG_ALTIVEC = -maltivec
18+BUILD_FLAG_ABI_ALTIVEC = -mabi=altivec
19 ALTIVEC_FLAG = -DHAS_ALTIVEC
20 else
21+BUILD_FLAG_ALTIVEC =
22+BUILD_FLAG_ABI_ALTIVEC =
23 ALTIVEC_FLAG =
24 endif
25
26@@ -101,11 +105,12 @@
27 ISA_2_07_FLAG =
28 endif
29
30-jm_insns_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames -maltivec \
31- @FLAG_M32@ $(ALTIVEC_FLAG)
32+jm_insns_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames \
33+ @FLAG_M32@ $(ALTIVEC_FLAG) $(BUILD_FLAG_ALTIVEC)
34
35-testVMX_CFLAGS = $(AM_CFLAGS) -O -g -Wall -maltivec -mabi=altivec -DALTIVEC \
36- -DGCC_COMPILER @FLAG_M32@
37+testVMX_CFLAGS = $(AM_CFLAGS) -O -g -Wall -DALTIVEC \
38+ -DGCC_COMPILER @FLAG_M32@ $(BUILD_FLAG_ALTIVEC) \
39+ $(BUILD_FLAG_ABI_ALTIVEC)
40
41 test_isa_2_06_part1_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(VSX_FLAG) \
42 @FLAG_M32@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX)
43Index: none/tests/ppc64/Makefile.am
44===================================================================
45--- a/none/tests/ppc64/Makefile.am (revision 14565)
46+++ b/none/tests/ppc64/Makefile.am (revision 14566)
47@@ -50,8 +50,10 @@
48 allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
49
50 if HAS_ALTIVEC
51+BUILD_FLAG_ALTIVEC = -maltivec
52 ALTIVEC_FLAG = -DHAS_ALTIVEC
53 else
54+BUILD_FLAG_ALTIVEC =
55 ALTIVEC_FLAG =
56 endif
57
58@@ -88,8 +90,8 @@
59 test_isa_2_06_part3_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(VSX_FLAG) \
60 @FLAG_M64@ $(ALTIVEC_FLAG) $(BUILD_FLAG_VSX)
61
62-jm_insns_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames -maltivec \
63- @FLAG_M64@ $(ALTIVEC_FLAG)
64+jm_insns_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames \
65+ @FLAG_M64@ $(ALTIVEC_FLAG) $(BUILD_FLAG_ALTIVEC)
66
67 test_dfp1_CFLAGS = $(AM_CFLAGS) -Winline -Wall -O -g -mregnames $(DFP_FLAG) \
68 @FLAG_M64@ $(BUILD_FLAGS_DFP)
diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch b/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch
new file mode 100644
index 0000000000..46dea60eb3
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch
@@ -0,0 +1,67 @@
1Remove tests that require thumb compiler flags
2
3Default compiler options for arm machines are incompatible with the
4'-mthumb' compiler option imposed by the intdiv and lrt test
5applications, so those two are removed from the ptest build.
6
7Upstream-Status: Pending
8
9Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
10
11diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am
12index 2a19f5b..ccdeb77 100644
13--- a/none/tests/arm/Makefile.am
14+++ b/none/tests/arm/Makefile.am
15@@ -16,15 +16,16 @@ EXTRA_DIST = \
16 vcvt_fixed_float_VFP.vgtest \
17 vfp.stdout.exp vfp.stderr.exp vfp.vgtest
18
19+# For yocto:
20+# Only include tests that don't require Thumb.
21+# Only use CFLAGS passed in by the build system.
22+# Some tests may fail, but all tests must compile.
23 check_PROGRAMS = \
24 allexec \
25- intdiv \
26- ldrt \
27 ldrt_arm \
28 neon128 \
29 neon64 \
30 v6intARM \
31- v6intThumb \
32 v6media \
33 vcvt_fixed_float_VFP \
34 vfp
35@@ -34,32 +35,3 @@ AM_CXXFLAGS += @FLAG_M32@
36 AM_CCASFLAGS += @FLAG_M32@
37
38 allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
39-
40-# These two are specific to their ARM/Thumb respectively and so we
41-# hardwire -marm/-mthumb. neon64 and neon128 are compilable on both,
42-# however, ask for them to be compiled on thumb, as that looks
43-# like that's going to be the more common use case. They also
44-# need special helping w.r.t -mfpu and -mfloat-abi, though.
45-# Also force -O0 since -O takes hundreds of MB of memory
46-# for v6intThumb.c.
47-v6intARM_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -marm
48-v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
49-
50-v6media_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
51-
52-vfp_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
53- -mfpu=neon \
54- -mthumb
55-
56-
57-neon128_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
58- -mfpu=neon \
59- -mthumb
60-
61-neon64_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
62- -mfpu=neon \
63- -mthumb
64-
65-intdiv_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a15 -mthumb
66-ldrt_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb
67-ldrt_arm_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm
diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-ppc-tests-failing-build.patch b/meta/recipes-devtools/valgrind/valgrind/remove-ppc-tests-failing-build.patch
new file mode 100644
index 0000000000..2a14e1852c
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/remove-ppc-tests-failing-build.patch
@@ -0,0 +1,75 @@
1Remove test apps not building with ppc and PTEST
2
3For mpc8316-rdb in none/tests/ppc32, the oe compiler options are
4inconsistent with the imposed test compiler options generating errors
5as follows:
6test_isa_2_07_part1
7test_isa_2_07_part2
8test_tm
9test_touch_tm
10 : unrecognized command line option '-mhtm'
11
12jm-insns
13testVMX
14 : AltiVec not supported in this target
15
16For the following tests, their inline assembler is inconsistent with
17the ppce300c3 variant:
18round.c:393
19power5+_round.c:98
20 : impossible constraint in 'asm'
21
22For the following tests, with both mpc8316-rdb and with qemuppc bsp,
23the inline assember is inconsistent with the oe compiler machine
24tuning:
25In memcheck/tests/ppc32
26 power_ISA2_05.c:56
27In none/tests/ppc32
28 test_dfp1.c:85
29 test_dfp2.c:160
30 test_dfp3.c:157
31 test_dfp4.c:73
32 test_dfp5.c:73
33 : impossible constraint in 'asm'
34
35Upstream-Status: Pending
36
37Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
38
39diff --git a/memcheck/tests/ppc32/Makefile.am b/memcheck/tests/ppc32/Makefile.am
40index bd70eea..1436e8e 100644
41--- a/memcheck/tests/ppc32/Makefile.am
42+++ b/memcheck/tests/ppc32/Makefile.am
43@@ -7,8 +7,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
44 power_ISA2_05.stderr.exp power_ISA2_05.stdout.exp power_ISA2_05.vgtest \
45 power_ISA2_05.stdout.exp_Without_FPPO
46
47-check_PROGRAMS = \
48- power_ISA2_05
49+check_PROGRAMS =
50
51 power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \
52 -I$(top_srcdir)/include @FLAG_M32@
53diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am
54index 4f581b6..91ce7e7 100644
55--- a/none/tests/ppc32/Makefile.am
56+++ b/none/tests/ppc32/Makefile.am
57@@ -50,16 +50,8 @@ check_PROGRAMS = \
58 allexec \
59 bug129390-ppc32 \
60 bug139050-ppc32 \
61- ldstrev lsw jm-insns mftocrf mcrfs round test_fx test_gx \
62- testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp \
63- test_isa_2_06_part1 \
64- test_isa_2_06_part2 \
65- test_isa_2_06_part3 \
66- test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \
67- test_isa_2_07_part1 \
68- test_isa_2_07_part2 \
69- test_tm \
70- test_touch_tm
71+ ldstrev lsw mftocrf mcrfs test_fx test_gx \
72+ twi tw xlc_dbl_u32 power6_bcmp
73
74 AM_CFLAGS += @FLAG_M32@
75 AM_CXXFLAGS += @FLAG_M32@
diff --git a/meta/recipes-devtools/valgrind/valgrind/run-ptest b/meta/recipes-devtools/valgrind/valgrind/run-ptest
new file mode 100755
index 0000000000..f9a72ec4a9
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -0,0 +1,12 @@
1#!/bin/sh
2
3# run-ptest - 'ptest' test infrastructure shell script that
4# wraps the valgrind regression script vg_regtest.
5# Must be run in the /usr/lib/valgrind/ptest directory.
6#
7# Dave Lerner <dave.lerner@windriver.com>
8###############################################################
9VALGRINDLIB=@libdir@/valgrind
10tests/vg_regtest --all \
11 --valgrind=/usr/bin/valgrind --valgrind-lib=$VALGRINDLIB \
12 --yocto-ptest
diff --git a/meta/recipes-devtools/valgrind/valgrind/sepbuildfix.patch b/meta/recipes-devtools/valgrind/valgrind/sepbuildfix.patch
new file mode 100644
index 0000000000..5db0ef8a3f
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/sepbuildfix.patch
@@ -0,0 +1,235 @@
1Fix out of tree builds. The paths to these files need to be fully specified in
2the out of tree build case. glibc-2.X.supp is a generated file so the full path
3is deliberately not specified in that case.
4
5RP 2013/03/23
6
7Upstream-Status: Pending
8
9Index: valgrind-3.9.0/configure.ac
10===================================================================
11--- valgrind-3.9.0.orig/configure.ac
12+++ valgrind-3.9.0/configure.ac
13@@ -325,26 +325,26 @@ case "${host_os}" in
14 9.*)
15 AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
16 AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version])
17- DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}"
18- DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}"
19+ DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}"
20+ DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}"
21 ;;
22 10.*)
23 AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard])
24 AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version])
25- DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}"
26- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
27+ DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}"
28+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
29 ;;
30 11.*)
31 AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
32 AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version])
33- DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}"
34- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
35+ DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}"
36+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
37 ;;
38 12.*)
39 AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion])
40 AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version])
41- DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}"
42- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
43+ DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}"
44+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
45 ;;
46 *)
47 AC_MSG_RESULT([unsupported (${kernel})])
48@@ -799,124 +799,124 @@ case "${GLIBC_VERSION}" in
49 2.2)
50 AC_MSG_RESULT(2.2 family)
51 AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
52- DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
53- DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
54- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
55+ DEFAULT_SUPP="$srcdir/glibc-2.2.supp ${DEFAULT_SUPP}"
56+ DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
57+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
58 ;;
59
60 2.3)
61 AC_MSG_RESULT(2.3 family)
62 AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
63- DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
64- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
65- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
66+ DEFAULT_SUPP="$srcdir/glibc-2.3.supp ${DEFAULT_SUPP}"
67+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
68+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
69 ;;
70
71 2.4)
72 AC_MSG_RESULT(2.4 family)
73 AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
74- DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
75- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
76- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
77+ DEFAULT_SUPP="$srcdir/glibc-2.4.supp ${DEFAULT_SUPP}"
78+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
79+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
80 ;;
81
82 2.5)
83 AC_MSG_RESULT(2.5 family)
84 AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
85- DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
86- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
87- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
88+ DEFAULT_SUPP="$srcdir/glibc-2.5.supp ${DEFAULT_SUPP}"
89+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
90+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
91 ;;
92 2.6)
93 AC_MSG_RESULT(2.6 family)
94 AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
95- DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
96- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
97- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
98+ DEFAULT_SUPP="$srcdir/glibc-2.6.supp ${DEFAULT_SUPP}"
99+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
100+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
101 ;;
102 2.7)
103 AC_MSG_RESULT(2.7 family)
104 AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
105 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
106- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
107- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
108+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
109+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
110 ;;
111 2.8)
112 AC_MSG_RESULT(2.8 family)
113 AC_DEFINE([GLIBC_2_8], 1, [Define to 1 if you're using glibc 2.8.x])
114 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
115- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
116- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
117+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
118+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
119 ;;
120 2.9)
121 AC_MSG_RESULT(2.9 family)
122 AC_DEFINE([GLIBC_2_9], 1, [Define to 1 if you're using glibc 2.9.x])
123 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
124- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
125- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
126+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
127+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
128 ;;
129 2.10)
130 AC_MSG_RESULT(2.10 family)
131 AC_DEFINE([GLIBC_2_10], 1, [Define to 1 if you're using glibc 2.10.x])
132 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
133- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
134- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
135+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
136+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
137 ;;
138 2.11)
139 AC_MSG_RESULT(2.11 family)
140 AC_DEFINE([GLIBC_2_11], 1, [Define to 1 if you're using glibc 2.11.x])
141 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
142- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
143- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
144+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
145+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
146 ;;
147 2.12)
148 AC_MSG_RESULT(2.12 family)
149 AC_DEFINE([GLIBC_2_12], 1, [Define to 1 if you're using glibc 2.12.x])
150 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
151- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
152- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
153+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
154+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
155 ;;
156 2.13)
157 AC_MSG_RESULT(2.13 family)
158 AC_DEFINE([GLIBC_2_13], 1, [Define to 1 if you're using glibc 2.13.x])
159 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
160- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
161- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
162+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
163+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
164 ;;
165 2.14)
166 AC_MSG_RESULT(2.14 family)
167 AC_DEFINE([GLIBC_2_14], 1, [Define to 1 if you're using glibc 2.14.x])
168 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
169- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
170- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
171+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
172+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
173 ;;
174 2.15)
175 AC_MSG_RESULT(2.15 family)
176 AC_DEFINE([GLIBC_2_15], 1, [Define to 1 if you're using glibc 2.15.x])
177 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
178- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
179- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
180+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
181+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
182 ;;
183 2.16)
184 AC_MSG_RESULT(2.16 family)
185 AC_DEFINE([GLIBC_2_16], 1, [Define to 1 if you're using glibc 2.16.x])
186 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
187- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
188- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
189+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
190+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
191 ;;
192 2.17)
193 AC_MSG_RESULT(2.17 family)
194 AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
195 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
196- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
197- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
198+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
199+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
200 ;;
201 2.18)
202 AC_MSG_RESULT(2.18 family)
203 AC_DEFINE([GLIBC_2_18], 1, [Define to 1 if you're using glibc 2.18.x])
204 DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
205- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
206- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
207+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
208+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
209 ;;
210 darwin)
211 AC_MSG_RESULT(Darwin)
212@@ -926,7 +926,7 @@ case "${GLIBC_VERSION}" in
213 bionic)
214 AC_MSG_RESULT(Bionic)
215 AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic])
216- DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}"
217+ DEFAULT_SUPP="$srcdir/bionic.supp ${DEFAULT_SUPP}"
218 ;;
219
220 *)
221@@ -943,11 +943,11 @@ AC_SUBST(GLIBC_VERSION)
222 # attempt to detect whether such libraries are installed on the
223 # build machine (or even if any X facilities are present); just
224 # add the suppressions antidisirregardless.
225-DEFAULT_SUPP="xfree-4.supp ${DEFAULT_SUPP}"
226-DEFAULT_SUPP="xfree-3.supp ${DEFAULT_SUPP}"
227+DEFAULT_SUPP="$srcdir/xfree-4.supp ${DEFAULT_SUPP}"
228+DEFAULT_SUPP="$srcdir/xfree-3.supp ${DEFAULT_SUPP}"
229
230 # Add glibc and X11 suppressions for exp-sgcheck
231-DEFAULT_SUPP="exp-sgcheck.supp ${DEFAULT_SUPP}"
232+DEFAULT_SUPP="$srcdir/exp-sgcheck.supp ${DEFAULT_SUPP}"
233
234
235 #----------------------------------------------------------------------------
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.9.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.9.0.bb
new file mode 100644
index 0000000000..9e1ab5f201
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind_3.9.0.bb
@@ -0,0 +1,100 @@
1SUMMARY = "Valgrind memory debugger and instrumentation framework"
2HOMEPAGE = "http://valgrind.org/"
3BUGTRACKER = "http://valgrind.org/support/bug_reports.html"
4LICENSE = "GPLv2 & GPLv2+ & BSD"
5LIC_FILES_CHKSUM = "file://COPYING;md5=c46082167a314d785d012a244748d803 \
6 file://include/pub_tool_basics.h;beginline=1;endline=29;md5=e7071929a50d4b0fc27a3014b315b0f7 \
7 file://include/valgrind.h;beginline=1;endline=56;md5=92df8a1bde56fe2af70931ff55f6622f \
8 file://COPYING.DOCS;md5=8fdeb5abdb235a08e76835f8f3260215"
9
10X11DEPENDS = "virtual/libx11"
11DEPENDS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)}"
12PR = "r8"
13
14SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
15 file://fixed-perl-path.patch \
16 file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
17 file://sepbuildfix.patch \
18 file://glibc-2.20.patch \
19 file://force-nostabs.patch \
20 file://remove-arm-variant-specific.patch \
21 file://remove-ppc-tests-failing-build.patch \
22 file://enable.building.on.4.x.kernel.patch \
23 file://add-ptest.patch \
24 file://pass-maltivec-only-if-it-supported.patch \
25 file://run-ptest \
26 "
27
28SRC_URI[md5sum] = "0947de8112f946b9ce64764af7be6df2"
29SRC_URI[sha256sum] = "e6af71a06bc2534541b07743e1d58dc3caf744f38205ca3e5b5a0bdf372ed6f0"
30
31COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64).*-linux'
32COMPATIBLE_HOST_armv7a = 'arm.*-linux'
33
34inherit autotools ptest
35
36EXTRA_OECONF = "--enable-tls --without-mpicc"
37EXTRA_OECONF_armv7a = "--enable-tls -host=armv7-none-linux-gnueabi --without-mpicc"
38EXTRA_OEMAKE = "-w"
39PARALLEL_MAKE = ""
40
41do_install_append () {
42 install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/
43}
44
45RDEPENDS_${PN} += "perl"
46
47FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug/*"
48
49# valgrind needs debug information for ld.so at runtime in order to
50# redirect functions like strlen.
51RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
52
53RDEPENDS_${PN}-ptest += " sed perl glibc-utils"
54
55do_compile_ptest() {
56 oe_runmake check
57}
58
59
60do_install_ptest() {
61 chmod +x ${B}/tests/vg_regtest
62
63 # The test application binaries are not automatically installed.
64 # Grab them from the build directory.
65 #
66 # The regression tests require scripts and data files that are not
67 # copied to the build directory. They must be copied from the
68 # source directory.
69 saved_dir=$PWD
70 for parent_dir in ${S} ${B} ; do
71 cd $parent_dir
72
73 # exclude shell or the package won't install
74 rm -rf none/tests/shell* 2>/dev/null
75
76 subdirs="tests cachegrind/tests callgrind/tests drd/tests helgrind/tests massif/tests memcheck/tests none/tests"
77
78 # Get the vg test scripts, filters, and expected files
79 for dir in $subdirs ; do
80 find $dir | cpio -pvdu ${D}${PTEST_PATH}
81 done
82 cd $saved_dir
83 done
84
85 # clean out build artifacts before building the rpm
86 find ${D}${PTEST_PATH} \
87 \( -name "Makefile*" \
88 -o -name "*.o" \
89 -o -name "*.c" \
90 -o -name "*.S" \
91 -o -name "*.h" \) \
92 -exec rm {} \;
93
94 # needed by massif tests
95 cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
96
97 # handle multilib
98 sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
99}
100