From bfae63dabe761bfbfc1811b78117d79f8e365ef4 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 23 2015 06:57:19 +0000 Subject: import devtoolset-3-valgrind-3.10.1-1.el7 --- diff --git a/.devtoolset-3-valgrind.metadata b/.devtoolset-3-valgrind.metadata index 5535f2e..c8ef927 100644 --- a/.devtoolset-3-valgrind.metadata +++ b/.devtoolset-3-valgrind.metadata @@ -1 +1 @@ -9415e28933de9d6687f993c4bb797e6bd49583f1 SOURCES/valgrind-3.9.0.tar.bz2 +15518427de842547ffa84eff8b2b67f3b16581a8 SOURCES/valgrind-3.10.1.tar.bz2 diff --git a/.gitignore b/.gitignore index 16e4fba..103b81d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/valgrind-3.9.0.tar.bz2 +SOURCES/valgrind-3.10.1.tar.bz2 diff --git a/SOURCES/valgrind-3.9.0-amd64_gen_insn_test.patch b/SOURCES/valgrind-3.9.0-amd64_gen_insn_test.patch deleted file mode 100644 index c6dec0b..0000000 --- a/SOURCES/valgrind-3.9.0-amd64_gen_insn_test.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 56d49b46587a6faffc98662f7d22450df0294019 -Author: tom -Date: Fri Nov 1 10:46:28 2013 +0000 - - Clear direction flag after tests on amd64. BZ#326983. - - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13709 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/none/tests/amd64/gen_insn_test.pl b/none/tests/amd64/gen_insn_test.pl -index 409249e..863e560 100644 ---- a/none/tests/amd64/gen_insn_test.pl -+++ b/none/tests/amd64/gen_insn_test.pl -@@ -850,6 +850,7 @@ while (<>) - } - - # print qq| \"frstor %$stateargnum\\n\"\n|; -+ print qq| \"cld\\n\"\n|; - - print qq| :|; - diff --git a/SOURCES/valgrind-3.9.0-anon-typedef.patch b/SOURCES/valgrind-3.9.0-anon-typedef.patch deleted file mode 100644 index 22e9efb..0000000 --- a/SOURCES/valgrind-3.9.0-anon-typedef.patch +++ /dev/null @@ -1,73 +0,0 @@ -commit 836b51a998fe520728aab7c5e1b156cadaa20c20 -Author: mjw -Date: Sun Nov 24 17:19:35 2013 +0000 - - Bug 327916 - DW_TAG_typedef may have no name - - We already accepted DW_TAG_typedef without a name for Ada. But g++ for - OpenMP can also emit such nameless DW_TAG_typedefs. Just accept them. - Also fix up anonymous enum and typedef printing in tytypes.c. - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13718 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/coregrind/m_debuginfo/readdwarf3.c b/coregrind/m_debuginfo/readdwarf3.c -index b0a7a92..f64a97b 100644 ---- a/coregrind/m_debuginfo/readdwarf3.c -+++ b/coregrind/m_debuginfo/readdwarf3.c -@@ -2926,19 +2926,17 @@ static void parse_type_DIE ( /*MOD*/XArray* /* of TyEnt */ tyents, - = cook_die_using_form( cc, (UWord)cts.u.val, form ); - } - } -- /* Do we have something that looks sane? */ -- if (/* must have a name */ -- typeE.Te.TyTyDef.name == NULL -- /* However gcc gnat Ada generates minimal typedef -- such as the below => accept no name for Ada. -- <6><91cc>: DW_TAG_typedef -- DW_AT_abstract_ori: <9066> -- */ -- && parser->language != 'A' -- /* but the referred-to type can be absent */) -- goto bad_DIE; -- else -- goto acquire_Type; -+ /* Do we have something that looks sane? -+ gcc gnat Ada generates minimal typedef -+ such as the below -+ <6><91cc>: DW_TAG_typedef -+ DW_AT_abstract_ori: <9066> -+ g++ for OMP can generate artificial functions that have -+ parameters that refer to pointers to unnamed typedefs. -+ See https://bugs.kde.org/show_bug.cgi?id=273475 -+ So we cannot require a name for a DW_TAG_typedef. -+ */ -+ goto acquire_Type; - } - - if (dtag == DW_TAG_subroutine_type) { -diff --git a/coregrind/m_debuginfo/tytypes.c b/coregrind/m_debuginfo/tytypes.c -index 05df456..0fde46b 100644 ---- a/coregrind/m_debuginfo/tytypes.c -+++ b/coregrind/m_debuginfo/tytypes.c -@@ -265,8 +265,8 @@ void ML_(pp_TyEnt_C_ishly)( XArray* /* of TyEnt */ tyents, - VG_(printf)("&&"); - break; - case Te_TyEnum: -- if (!ent->Te.TyEnum.name) goto unhandled; -- VG_(printf)("enum %s", ent->Te.TyEnum.name); -+ VG_(printf)("enum %s", ent->Te.TyEnum.name ? ent->Te.TyEnum.name -+ : "" ); - break; - case Te_TyStOrUn: - VG_(printf)("%s %s", -@@ -287,8 +287,8 @@ void ML_(pp_TyEnt_C_ishly)( XArray* /* of TyEnt */ tyents, - } - break; - case Te_TyTyDef: -- if (!ent->Te.TyTyDef.name) goto unhandled; -- VG_(printf)("%s", ent->Te.TyTyDef.name); -+ VG_(printf)("%s", ent->Te.TyTyDef.name ? ent->Te.TyTyDef.name -+ : "" ); - break; - case Te_TyFn: - VG_(printf)("%s", ""); diff --git a/SOURCES/valgrind-3.9.0-dwz-alt-buildid.patch b/SOURCES/valgrind-3.9.0-dwz-alt-buildid.patch deleted file mode 100644 index ce30e3b..0000000 --- a/SOURCES/valgrind-3.9.0-dwz-alt-buildid.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 568d77ce8e0a508fbbd9e71e9938d6dab1639912 -Author: mjw -Date: Wed Nov 20 11:54:38 2013 +0000 - - dwz compressed alternate .debug_info and .debug_str not read correctly. - - Bug #327837. The buildid from the .gnu_debugaltlink section was parsed - incorrectly (from the wrong offset). Causing the debug alt file not to - be found. - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13715 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c -index e72e0d7..b7d574a 100644 ---- a/coregrind/m_debuginfo/readelf.c -+++ b/coregrind/m_debuginfo/readelf.c -@@ -2609,7 +2609,8 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di ) - vg_assert(aimg == NULL); - - if (debugaltlink_escn.img != NULL) { -- UInt buildid_offset = ML_(img_strlen)(debugaltlink_escn.img, 0)+1; -+ UInt buildid_offset = ML_(img_strlen)(debugaltlink_escn.img, -+ debugaltlink_escn.ioff)+1; - - vg_assert(buildid_offset < debugaltlink_escn.szB); - diff --git a/SOURCES/valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch b/SOURCES/valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch deleted file mode 100644 index 9e6c3c9..0000000 --- a/SOURCES/valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- valgrind/gdbserver_tests/mcinvokeWS.vgtest (revision 12990) -+++ valgrind/gdbserver_tests/mcinvokeWS.vgtest (working copy) -@@ -4,7 +4,8 @@ - args: 1 10000000 0 -S-S-S-S - vgopts: --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeWS - stderr_filter: filter_make_empty --prereq: test -f vgdb.ptraceinvoker -+# One some ppc64 installs this test just hangs -+prereq: test -f vgdb.ptraceinvoker && ! `../tests/arch_test ppc64` - progB: invoker - argsB: 10 --vgdb-prefix=./vgdb-prefix-mcinvokeWS --wait=60 -c v.wait 0 - # if the --wait is not enough, the test will fail or block -Index: gdbserver_tests/mcinvokeRU.vgtest -=================================================================== ---- valgrind/gdbserver_tests/mcinvokeRU.vgtest (revision 12990) -+++ valgrind/gdbserver_tests/mcinvokeRU.vgtest (working copy) -@@ -7,6 +7,8 @@ - # as the Valgrind process is always busy, we do not need the vgdb.ptraceinvoker prereq. - # We even disable ptrace invoker to avoid spurious attach error message - # on kernels where ptrace is restricted. -+# One some ppc64 installs this test just hangs -+prereq: ! `../tests/arch_test ppc64` - progB: invoker - argsB: 10 --vgdb-prefix=./vgdb-prefix-mcinvokeRU --max-invoke-ms=0 --wait=60 -c v.wait 0 - # if the --wait is not enough, the test will fail or block. diff --git a/SOURCES/valgrind-3.9.0-glibc-2.19.patch b/SOURCES/valgrind-3.9.0-glibc-2.19.patch deleted file mode 100644 index 9566c01..0000000 --- a/SOURCES/valgrind-3.9.0-glibc-2.19.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -ur valgrind-3.9.0.orig/config.h.in valgrind-3.9.0/config.h.in ---- valgrind-3.9.0.orig/config.h.in 2014-02-21 22:35:28.368908710 +0100 -+++ valgrind-3.9.0/config.h.in 2014-02-21 22:36:09.000000000 +0100 -@@ -57,6 +57,9 @@ - /* Define to 1 if you're using glibc 2.18.x */ - #undef GLIBC_2_18 - -+/* Define to 1 if you're using glibc 2.19.x */ -+#undef GLIBC_2_19 -+ - /* Define to 1 if you're using glibc 2.2.x */ - #undef GLIBC_2_2 - -diff -ur valgrind-3.9.0.orig/configure valgrind-3.9.0/configure ---- valgrind-3.9.0.orig/configure 2014-02-21 22:35:28.425909165 +0100 -+++ valgrind-3.9.0/configure 2014-02-21 23:20:33.425979851 +0100 -@@ -6689,6 +6689,16 @@ - DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" - ;; -+ 2.19) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5 -+$as_echo "2.19 family" >&6; } -+ -+$as_echo "#define GLIBC_2_19 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; } -@@ -6709,8 +6719,8 @@ - *) - { $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.17" "$LINENO" 5 -- as_fn_error $? "or Darwin libc" "$LINENO" 5 -+ as_fn_error $? "Valgrind requires glibc version 2.2 - 2.19" "$LINENO" 5 -+ as_fn_error $? "or Darwin or Bionic libc" "$LINENO" 5 - ;; - esac - -diff -ur valgrind-3.9.0.orig/configure.ac valgrind-3.9.0/configure.ac ---- valgrind-3.9.0.orig/configure.ac 2014-02-21 22:35:28.368908710 +0100 -+++ valgrind-3.9.0/configure.ac 2014-02-21 22:35:53.044106114 +0100 -@@ -918,6 +918,13 @@ - DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" - DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" - ;; -+ 2.19) -+ AC_MSG_RESULT(2.19 family) -+ AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.19.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]) -@@ -931,8 +938,8 @@ - - *) - AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}]) -- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17]) -- AC_MSG_ERROR([or Darwin libc]) -+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.19]) -+ AC_MSG_ERROR([or Darwin or Bionic libc]) - ;; - esac - diff --git a/SOURCES/valgrind-3.9.0-manpage-memcheck-options.patch b/SOURCES/valgrind-3.9.0-manpage-memcheck-options.patch deleted file mode 100644 index c50444e..0000000 --- a/SOURCES/valgrind-3.9.0-manpage-memcheck-options.patch +++ /dev/null @@ -1,245 +0,0 @@ -commit 323d397747ff81a5706cce63f45cc1b2109db252 -Author: mjw -Date: Thu Dec 12 21:20:48 2013 +0000 - - Bug 328711 valgrind.1 manpage "memcheck options" section is badly generated - - Add missing para tags inside listitems. (Miroslav Franc, mfranc@redhat.com) - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13758 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/memcheck/docs/mc-manual.xml b/memcheck/docs/mc-manual.xml -index a53bf86..e913e89 100644 ---- a/memcheck/docs/mc-manual.xml -+++ b/memcheck/docs/mc-manual.xml -@@ -610,14 +610,14 @@ when is specified. - in one of the following ways: - - -- a comma separated list of one or more of -- . -+ a comma separated list of one or more of -+ . - - -- to specify the complete set (all leak kinds). -+ to specify the complete set (all leak kinds). - - -- for the empty set. -+ for the empty set. - - - -@@ -721,16 +721,16 @@ is - one of the following ways: - - -- a comma separated list of one or more of -- . -+ a comma separated list of one or more of -+ . - - -- to specify the complete set (all leak kinds). -+ to specify the complete set (all leak kinds). - It is equivalent to -- . -+ . - - -- for the empty set. -+ for the empty set. - - - -@@ -763,17 +763,17 @@ is - The heuristic set is specified in one of the following ways: - - -- a comma separated list of one or more of -- . -+ a comma separated list of one or more of -+ . - - -- to activate the complete set of -+ to activate the complete set of - heuristics. - It is equivalent to -- . -+ . - - -- for the empty set. -+ for the empty set. - - - -@@ -797,18 +797,24 @@ is - These options provide an alternative way to specify the leak kinds to show: - - -+ - is equivalent to - . -+ - - -+ - is equivalent to - . -+ - - -+ - is equivalent to - . - Note that has no effect - if is specified. -+ - - - ---- valgrind-3.9.0/docs/valgrind.1.orig 2013-12-12 22:34:11.912168437 +0100 -+++ valgrind-3.9.0/docs/valgrind.1 2013-12-12 22:34:18.686421525 +0100 -@@ -2,12 +2,12 @@ - .\" Title: VALGRIND - .\" Author: [see the "Author" section] - .\" Generator: DocBook XSL Stylesheets v1.78.1 --.\" Date: 11/01/2013 -+.\" Date: 12/12/2013 - .\" Manual: Release 3.9.0 - .\" Source: Release 3.9.0 - .\" Language: English - .\" --.TH "VALGRIND" "1" "11/01/2013" "Release 3.9.0" "Release 3.9.0" -+.TH "VALGRIND" "1" "12/12/2013" "Release 3.9.0" "Release 3.9.0" - .\" ----------------------------------------------------------------- - .\" * Define some portability stuff - .\" ----------------------------------------------------------------- -@@ -1080,8 +1080,8 @@ - .IP \(bu 2.3 - .\} - a comma separated list of one or more of -- \fBdefinite indirect possible reachable\fR\&. -- .RE -+\fBdefinite indirect possible reachable\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1091,10 +1091,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBall\fR to specify the complete set (all leak kinds)\&. -- It is equivalent to -- \fB\-\-show\-leak\-kinds=definite,indirect,possible,reachable\fR\&. -- .RE -+\fBall\fR -+to specify the complete set (all leak kinds)\&. It is equivalent to -+\fB\-\-show\-leak\-kinds=definite,indirect,possible,reachable\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1104,8 +1104,9 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBnone\fR for the empty set\&. -- .RE -+\fBnone\fR -+for the empty set\&. -+.RE - .sp - .RE - .PP -@@ -1130,8 +1131,8 @@ - .IP \(bu 2.3 - .\} - a comma separated list of one or more of -- \fBstdstring newarray multipleinheritance\fR\&. -- .RE -+\fBstdstring newarray multipleinheritance\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1141,11 +1142,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBall\fR to activate the complete set of -- heuristics\&. -- It is equivalent to -- \fB\-\-leak\-check\-heuristics=stdstring,newarray,multipleinheritance\fR\&. -- .RE -+\fBall\fR -+to activate the complete set of heuristics\&. It is equivalent to -+\fB\-\-leak\-check\-heuristics=stdstring,newarray,multipleinheritance\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1155,8 +1155,9 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fBnone\fR for the empty set\&. -- .RE -+\fBnone\fR -+for the empty set\&. -+.RE - .sp - Note that these heuristics are dependent on the layout of the objects produced by the C++ compiler\&. They have been tested with some gcc versions (e\&.g\&. 4\&.4 and 4\&.7)\&. They might not work properly with other C++ compilers\&. - .RE -@@ -1173,9 +1174,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=yes\fR is equivalent to -- \fB\-\-show\-leak\-kinds=definite,possible\fR\&. -- .RE -+\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=yes\fR -+is equivalent to -+\fB\-\-show\-leak\-kinds=definite,possible\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1185,9 +1187,10 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=no\fR is equivalent to -- \fB\-\-show\-leak\-kinds=definite\fR\&. -- .RE -+\fB\-\-show\-reachable=no \-\-show\-possibly\-lost=no\fR -+is equivalent to -+\fB\-\-show\-leak\-kinds=definite\fR\&. -+.RE - .sp - .RS 4 - .ie n \{\ -@@ -1197,11 +1200,14 @@ - .sp -1 - .IP \(bu 2.3 - .\} --\fB\-\-show\-reachable=yes\fR is equivalent to -- \fB\-\-show\-leak\-kinds=all\fR\&. -- Note that \fB\-\-show\-possibly\-lost=no\fR has no effect -- if \fB\-\-show\-reachable=yes\fR is specified\&. -- .RE -+\fB\-\-show\-reachable=yes\fR -+is equivalent to -+\fB\-\-show\-leak\-kinds=all\fR\&. Note that -+\fB\-\-show\-possibly\-lost=no\fR -+has no effect if -+\fB\-\-show\-reachable=yes\fR -+is specified\&. -+.RE - .sp - .RE - .PP diff --git a/SOURCES/valgrind-3.9.0-ppc64-priority.patch b/SOURCES/valgrind-3.9.0-ppc64-priority.patch deleted file mode 100644 index cf593e4..0000000 --- a/SOURCES/valgrind-3.9.0-ppc64-priority.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit df77b4d9c15823519165f6e9a206b2c40ac68389 -Author: mjw -Date: Mon Mar 10 14:45:32 2014 +0000 - - Enable sys_getpriority and sys_setpriority for ppc64. - - Bug 331830 - ppc64: WARNING: unhandled syscall: 96/97 - (Miroslav Franc, mfranc@redhat.com) - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13861 a5019735-40e9-0310-863c-91ae7b9d1cf9 - ---- a/coregrind/m_syswrap/syswrap-ppc64-linux.c -+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c -@@ -792,8 +792,8 @@ static SyscallTableEntry syscall_table[] = { - GENX_(__NR_fchmod, sys_fchmod), // 94 - - GENX_(__NR_fchown, sys_fchown), // 95 --// _____(__NR_getpriority, sys_getpriority), // 96 --// _____(__NR_setpriority, sys_setpriority), // 97 -+ GENX_(__NR_getpriority, sys_getpriority), // 96 -+ GENX_(__NR_setpriority, sys_setpriority), // 97 - // _____(__NR_profil, sys_profil), // 98 - GENXY(__NR_statfs, sys_statfs), // 99 - diff --git a/SOURCES/valgrind-3.9.0-s390-dup3.patch b/SOURCES/valgrind-3.9.0-s390-dup3.patch deleted file mode 100644 index 06578f6..0000000 --- a/SOURCES/valgrind-3.9.0-s390-dup3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c -index f9bc136..58ed0f8 100644 ---- a/coregrind/m_syswrap/syswrap-s390x-linux.c -+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c -@@ -1044,7 +1044,7 @@ static SyscallTableEntry syscall_table[] = { - LINXY(__NR_inotify_init1, sys_inotify_init1), // 324 - - LINXY(__NR_pipe2, sys_pipe2), // 325 -- // (__NR_dup3, ), -+ LINXY(__NR_dup3, sys_dup3), // 326 - LINXY(__NR_epoll_create1, sys_epoll_create1), // 327 - LINXY(__NR_preadv, sys_preadv), // 328 - LINX_(__NR_pwritev, sys_pwritev), // 329 diff --git a/SOURCES/valgrind-3.9.0-s390-fpr-pair.patch b/SOURCES/valgrind-3.9.0-s390-fpr-pair.patch deleted file mode 100644 index 5d9a9a1..0000000 --- a/SOURCES/valgrind-3.9.0-s390-fpr-pair.patch +++ /dev/null @@ -1,201 +0,0 @@ -commit 9b28d5ecf72accc80d267a3fcfd0bd4212ff34d8 -Author: florian -Date: Tue Dec 10 16:51:15 2013 +0000 - - The result of rounding a 128-bit BFP/DFP value to 32/64 bit needs to - be stored in a register pair. This constraint was not observed previously - and the result was stored in any FPR that happened to be chosen. If the - selected FPR was not identifying a proper FPR pair, a SIGILL was delivered. - Fixes BZ #328455. - - - git-svn-id: svn://svn.valgrind.org/vex/trunk@2801 8f6e269a-dfd6-0310-a8e1-e2731360e62c - -diff --git a/priv/host_s390_defs.c b/priv/host_s390_defs.c -index 0b61a5d..ce76285 100644 ---- a/VEX/priv/host_s390_defs.c -+++ b/VEX/priv/host_s390_defs.c -@@ -5861,7 +5861,6 @@ s390_insn_bfp128_convert(UChar size, s390_bfp_conv_t tag, HReg dst_hi, - } else { - /* From 16 bytes to smaller size */ - vassert(is_valid_fp128_regpair(op_hi, op_lo)); -- vassert(hregIsInvalid(dst_lo)); - } - - insn->tag = S390_INSN_BFP_CONVERT; -@@ -5891,11 +5890,11 @@ s390_insn_bfp128_convert_to(UChar size, s390_bfp_conv_t tag, HReg dst_hi, - - - s390_insn * --s390_insn_bfp128_convert_from(UChar size, s390_bfp_conv_t tag, HReg dst, -- HReg op_hi, HReg op_lo, -+s390_insn_bfp128_convert_from(UChar size, s390_bfp_conv_t tag, HReg dst_hi, -+ HReg dst_lo, HReg op_hi, HReg op_lo, - s390_bfp_round_t rounding_mode) - { -- return s390_insn_bfp128_convert(size, tag, dst, INVALID_HREG, op_hi, op_lo, -+ return s390_insn_bfp128_convert(size, tag, dst_hi, dst_lo, op_hi, op_lo, - rounding_mode); - } - -@@ -6192,7 +6191,6 @@ s390_insn_dfp128_convert(UChar size, s390_dfp_conv_t tag, HReg dst_hi, - } else { - /* From 16 bytes to smaller size */ - vassert(is_valid_fp128_regpair(op_hi, op_lo)); -- vassert(hregIsInvalid(dst_lo)); - } - - insn->tag = S390_INSN_DFP_CONVERT; -@@ -6222,11 +6220,11 @@ s390_insn_dfp128_convert_to(UChar size, s390_dfp_conv_t tag, HReg dst_hi, - - - s390_insn * --s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t tag, HReg dst, -- HReg op_hi, HReg op_lo, -+s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t tag, HReg dst_hi, -+ HReg dst_lo, HReg op_hi, HReg op_lo, - s390_dfp_round_t rounding_mode) - { -- return s390_insn_dfp128_convert(size, tag, dst, INVALID_HREG, op_hi, op_lo, -+ return s390_insn_dfp128_convert(size, tag, dst_hi, dst_lo, op_hi, op_lo, - rounding_mode); - } - -diff --git a/priv/host_s390_defs.h b/priv/host_s390_defs.h -index dafc8ae..5b6fc1f 100644 ---- a/VEX/priv/host_s390_defs.h -+++ b/VEX/priv/host_s390_defs.h -@@ -665,8 +665,8 @@ s390_insn *s390_insn_bfp128_compare(UChar size, HReg dst, HReg op1_hi, - s390_insn *s390_insn_bfp128_convert_to(UChar size, s390_bfp_conv_t, - HReg dst_hi, HReg dst_lo, HReg op); - s390_insn *s390_insn_bfp128_convert_from(UChar size, s390_bfp_conv_t, -- HReg dst, HReg op_hi, HReg op_lo, -- s390_bfp_round_t); -+ HReg dst_hi, HReg dst_lo, HReg op_hi, -+ HReg op_lo, s390_bfp_round_t); - s390_insn *s390_insn_dfp_binop(UChar size, s390_dfp_binop_t, HReg dst, - HReg op2, HReg op3, - s390_dfp_round_t rounding_mode); -@@ -699,8 +699,8 @@ s390_insn *s390_insn_dfp128_compare(UChar size, s390_dfp_cmp_t, HReg dst, - s390_insn *s390_insn_dfp128_convert_to(UChar size, s390_dfp_conv_t, - HReg dst_hi, HReg dst_lo, HReg op); - s390_insn *s390_insn_dfp128_convert_from(UChar size, s390_dfp_conv_t, -- HReg dst, HReg op_hi, HReg op_lo, -- s390_dfp_round_t); -+ HReg dst_hi, HReg dst_lo, HReg op_hi, -+ HReg op_lo, s390_dfp_round_t); - s390_insn *s390_insn_dfp128_reround(UChar size, HReg dst_hi, HReg dst_lo, - HReg op2, HReg op3_hi, HReg op3_lo, - s390_dfp_round_t); -diff --git a/priv/host_s390_isel.c b/priv/host_s390_isel.c -index aaccff6..3662ffd 100644 ---- a/VEX/priv/host_s390_isel.c -+++ b/VEX/priv/host_s390_isel.c -@@ -1257,7 +1257,8 @@ s390_isel_int_expr_wrk(ISelEnv *env, IRExpr *expr) - addInstr(env, s390_insn_move(8, f15, op_lo)); - - rounding_mode = get_bfp_rounding_mode(env, arg1); -- addInstr(env, s390_insn_bfp128_convert_from(size, conv, res, f13, f15, -+ addInstr(env, s390_insn_bfp128_convert_from(size, conv, res, -+ INVALID_HREG, f13, f15, - rounding_mode)); - return res; - } -@@ -1290,7 +1291,8 @@ s390_isel_int_expr_wrk(ISelEnv *env, IRExpr *expr) - addInstr(env, s390_insn_move(8, f15, op_lo)); - - rounding_mode = get_dfp_rounding_mode(env, arg1); -- addInstr(env, s390_insn_dfp128_convert_from(size, dconv, res, f13, -+ addInstr(env, s390_insn_dfp128_convert_from(size, dconv, res, -+ INVALID_HREG, f13, - f15, rounding_mode)); - return res; - } -@@ -2455,7 +2457,7 @@ s390_isel_float_expr_wrk(ISelEnv *env, IRExpr *expr) - - case Iop_F128toF64: - case Iop_F128toF32: { -- HReg op_hi, op_lo, f13, f15; -+ HReg op_hi, op_lo, f12, f13, f14, f15; - s390_bfp_round_t rounding_mode; - - conv = op == Iop_F128toF32 ? S390_BFP_F128_TO_F32 -@@ -2463,15 +2465,18 @@ s390_isel_float_expr_wrk(ISelEnv *env, IRExpr *expr) - - s390_isel_float128_expr(&op_hi, &op_lo, env, left); - -- /* We use non-virtual registers as pairs (f13, f15) */ -+ /* We use non-virtual registers as pairs (f13, f15) and (f12, f14)) */ -+ f12 = make_fpr(12); - f13 = make_fpr(13); -+ f14 = make_fpr(14); - f15 = make_fpr(15); - - /* operand --> (f13, f15) */ - addInstr(env, s390_insn_move(8, f13, op_hi)); - addInstr(env, s390_insn_move(8, f15, op_lo)); - -- dst = newVRegF(env); -+ /* result --> (f12, f14) */ -+ - /* load-rounded has a rounding mode field when the floating point - extension facility is installed. */ - if (s390_host_has_fpext) { -@@ -2480,8 +2485,12 @@ s390_isel_float_expr_wrk(ISelEnv *env, IRExpr *expr) - set_bfp_rounding_mode_in_fpc(env, irrm); - rounding_mode = S390_BFP_ROUND_PER_FPC; - } -- addInstr(env, s390_insn_bfp128_convert_from(size, conv, dst, f13, f15, -- rounding_mode)); -+ -+ addInstr(env, s390_insn_bfp128_convert_from(size, conv, f12, f14, -+ f13, f15, rounding_mode)); -+ dst = newVRegF(env); -+ addInstr(env, s390_insn_move(8, dst, f12)); -+ - return dst; - } - } -@@ -3044,22 +3053,25 @@ s390_isel_dfp_expr_wrk(ISelEnv *env, IRExpr *expr) - } - - case Iop_D128toD64: { -- HReg op_hi, op_lo, f13, f15; -+ HReg op_hi, op_lo, f12, f13, f14, f15; - s390_dfp_round_t rounding_mode; - - conv = S390_DFP_D128_TO_D64; - - s390_isel_dfp128_expr(&op_hi, &op_lo, env, left); - -- /* We use non-virtual registers as pairs (f13, f15) */ -+ /* We use non-virtual registers as pairs (f13, f15) and (f12, f14) */ -+ f12 = make_fpr(12); - f13 = make_fpr(13); -+ f14 = make_fpr(14); - f15 = make_fpr(15); - - /* operand --> (f13, f15) */ - addInstr(env, s390_insn_move(8, f13, op_hi)); - addInstr(env, s390_insn_move(8, f15, op_lo)); - -- dst = newVRegF(env); -+ /* result --> (f12, f14) */ -+ - /* load-rounded has a rounding mode field when the floating point - extension facility is installed. */ - if (s390_host_has_fpext) { -@@ -3068,8 +3080,11 @@ s390_isel_dfp_expr_wrk(ISelEnv *env, IRExpr *expr) - set_dfp_rounding_mode_in_fpc(env, irrm); - rounding_mode = S390_DFP_ROUND_PER_FPC_0; - } -- addInstr(env, s390_insn_dfp128_convert_from(size, conv, dst, f13, f15, -- rounding_mode)); -+ addInstr(env, s390_insn_dfp128_convert_from(size, conv, f12, f14, -+ f13, f15, rounding_mode)); -+ dst = newVRegF(env); -+ addInstr(env, s390_insn_move(8, dst, f12)); -+ - return dst; - } - diff --git a/SOURCES/valgrind-3.9.0-s390-risbg.patch b/SOURCES/valgrind-3.9.0-s390-risbg.patch deleted file mode 100644 index 781ae29..0000000 --- a/SOURCES/valgrind-3.9.0-s390-risbg.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- valgrind-3.9.0/VEX/priv/guest_s390_toIR.c.orig 2013-11-07 22:45:58.021660641 +0100 -+++ valgrind-3.9.0/VEX/priv/guest_s390_toIR.c 2013-11-07 22:46:12.319772145 +0100 -@@ -7606,7 +7606,7 @@ - put_gpr_dw0(r1, binop(Iop_And64, mkexpr(op2), mkU64(mask))); - } - assign(result, get_gpr_dw0(r1)); -- s390_cc_thunk_putS(S390_CC_OP_LOAD_AND_TEST, op2); -+ s390_cc_thunk_putS(S390_CC_OP_LOAD_AND_TEST, result); - - return "risbg"; - } diff --git a/SOURCES/valgrind-3.9.0-s390x-ld-supp.patch b/SOURCES/valgrind-3.9.0-s390x-ld-supp.patch deleted file mode 100644 index 4004a90..0000000 --- a/SOURCES/valgrind-3.9.0-s390x-ld-supp.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- valgrind-3.9.0/glibc-2.X.supp.in.orig 2013-11-24 20:39:55.165152689 +0100 -+++ valgrind-3.9.0/glibc-2.X.supp.in 2013-11-24 20:46:04.919736611 +0100 -@@ -236,3 +236,11 @@ - Memcheck:Cond - fun:_dl_relocate_object - } -+ -+# KDE#327943 - s390x missing index/strchr suppression for ld.so bad backtrace? -+{ -+ s390x-ld-so-index-dl_open_worker -+ Memcheck:Addr8 -+ fun:index -+ fun:dl_open_worker -+} diff --git a/SOURCES/valgrind-3.9.0-timer_create.patch b/SOURCES/valgrind-3.9.0-timer_create.patch deleted file mode 100644 index 7b07b63..0000000 --- a/SOURCES/valgrind-3.9.0-timer_create.patch +++ /dev/null @@ -1,105 +0,0 @@ - BZ#331380 Syscall param timer_create(evp) points to uninitialised byte(s) - - Only check struct sigevent actually used by the kernel. If SIGEV_THREAD_ID - is set check sigev_notify_thread_id, otherwise don't. - -diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c -index 9dadd84..1a7fa6b 100644 ---- a/coregrind/m_syswrap/syswrap-linux.c -+++ b/coregrind/m_syswrap/syswrap-linux.c -@@ -2175,8 +2175,18 @@ PRE(sys_timer_create) - PRE_REG_READ3(long, "timer_create", - vki_clockid_t, clockid, struct sigevent *, evp, - vki_timer_t *, timerid); -- if (ARG2 != 0) -- PRE_MEM_READ( "timer_create(evp)", ARG2, sizeof(struct vki_sigevent) ); -+ if (ARG2 != 0) { -+ struct vki_sigevent *evp = (struct vki_sigevent *) ARG2; -+ PRE_MEM_READ( "timer_create(evp.sigev_value)", (Addr)&evp->sigev_value, -+ sizeof(vki_sigval_t) ); -+ PRE_MEM_READ( "timer_create(evp.sigev_signo)", (Addr)&evp->sigev_signo, -+ sizeof(int) ); -+ PRE_MEM_READ( "timer_create(evp.sigev_notify)", (Addr)&evp->sigev_notify, -+ sizeof(int) ); -+ if ((evp->sigev_notify & VKI_SIGEV_THREAD_ID) != 0) -+ PRE_MEM_READ( "timer_create(evp.sigev_notify_thread_id)", -+ (Addr)&evp->vki_sigev_notify_thread_id, sizeof(int) ); -+ } - PRE_MEM_WRITE( "timer_create(timerid)", ARG3, sizeof(vki_timer_t) ); - } - POST(sys_timer_create) -diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h -index 14bb8bf..a3c4b3c 100644 ---- a/include/vki/vki-linux.h -+++ b/include/vki/vki-linux.h -@@ -544,6 +544,9 @@ typedef struct vki_siginfo { - #define VKI_SIGEV_PAD_SIZE ((VKI_SIGEV_MAX_SIZE - VKI___ARCH_SIGEV_PREAMBLE_SIZE) \ - / sizeof(int)) - -+/* This is the flag the kernel handles, userspace/glibc handles SEGEV_THEAD. */ -+#define VKI_SIGEV_THREAD_ID 4 -+ - typedef struct vki_sigevent { - vki_sigval_t sigev_value; - int sigev_signo; -@@ -559,6 +562,8 @@ typedef struct vki_sigevent { - } _sigev_un; - } vki_sigevent_t; - -+#define vki_sigev_notify_thread_id _sigev_un._tid -+ - //---------------------------------------------------------------------- - // From elsewhere... - //---------------------------------------------------------------------- -commit 763710cc391c5adc85712606bf9882f49ee43e7c -Author: mjw -Date: Mon Feb 24 15:09:21 2014 +0000 - - BZ#331380 cont. Don't crash if evp->sigev_notify is invalid. Fix scalar test. - - We check evp.sigev_notify_thread_id only if evp->sigev_notify has - SIGEV_THREAD_ID set. But before checking we need to make sure accessing - evp->sigev_notify is valid. - - Fix memcheck/tests/x86-linux/scalar.stderr.exp output. - We now produce separate warnings for the 3 different fields. - - git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13837 a5019735-40e9-0310-863c-91ae7b9d1cf9 - -diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c -index 1a7fa6b..1b1e65e 100644 ---- a/coregrind/m_syswrap/syswrap-linux.c -+++ b/coregrind/m_syswrap/syswrap-linux.c -@@ -2183,7 +2183,8 @@ PRE(sys_timer_create) - sizeof(int) ); - PRE_MEM_READ( "timer_create(evp.sigev_notify)", (Addr)&evp->sigev_notify, - sizeof(int) ); -- if ((evp->sigev_notify & VKI_SIGEV_THREAD_ID) != 0) -+ if (ML_(safe_to_deref)(&evp->sigev_notify, sizeof(int)) -+ && (evp->sigev_notify & VKI_SIGEV_THREAD_ID) != 0) - PRE_MEM_READ( "timer_create(evp.sigev_notify_thread_id)", - (Addr)&evp->vki_sigev_notify_thread_id, sizeof(int) ); - } -diff --git a/memcheck/tests/x86-linux/scalar.stderr.exp b/memcheck/tests/x86-linux/scalar.stderr.exp -index e1a2bf2..2114db9 100644 ---- a/memcheck/tests/x86-linux/scalar.stderr.exp -+++ b/memcheck/tests/x86-linux/scalar.stderr.exp -@@ -3602,7 +3602,17 @@ Syscall param timer_create(timerid) contains uninitialised byte(s) - ... - by 0x........: main (scalar.c:1158) - --Syscall param timer_create(evp) points to unaddressable byte(s) -+Syscall param timer_create(evp.sigev_value) points to unaddressable byte(s) -+ ... -+ by 0x........: main (scalar.c:1158) -+ Address 0x........ is not stack'd, malloc'd or (recently) free'd -+ -+Syscall param timer_create(evp.sigev_signo) points to unaddressable byte(s) -+ ... -+ by 0x........: main (scalar.c:1158) -+ Address 0x........ is not stack'd, malloc'd or (recently) free'd -+ -+Syscall param timer_create(evp.sigev_notify) points to unaddressable byte(s) - ... - by 0x........: main (scalar.c:1158) - Address 0x........ is not stack'd, malloc'd or (recently) free'd diff --git a/SOURCES/valgrind-3.9.0-xabort.patch b/SOURCES/valgrind-3.9.0-xabort.patch deleted file mode 100644 index 1d0b43f..0000000 --- a/SOURCES/valgrind-3.9.0-xabort.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ae58d7305de27aa96abf715456a07045018cda98 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Tue, 26 Nov 2013 22:49:55 +0100 -Subject: [PATCH] Bug 328100 XABORT not implemented. - -XABORT can be called even when there is no current transaction. -In such a case XABORT acts as a NOP. Implement xabort as nop. ---- - priv/guest_amd64_toIR.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c -index a17c8f4..7ea5748 100644 ---- a/VEX/priv/guest_amd64_toIR.c -+++ b/VEX/priv/guest_amd64_toIR.c -@@ -20270,6 +20270,16 @@ Long dis_ESC_NONE ( - return delta; - } - /* END HACKY SUPPORT FOR xbegin */ -+ /* BEGIN HACKY SUPPORT FOR xabort */ -+ if (modrm == 0xF8 && !have66orF2orF3(pfx) && sz == 1 -+ && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) { -+ delta++; /* mod/rm byte */ -+ abyte = getUChar(delta); delta++; -+ /* There is never a real transaction in progress, so do nothing. */ -+ DIP("xabort $%d", (Int)abyte); -+ return delta; -+ } -+ /* END HACKY SUPPORT FOR xabort */ - goto decode_failure; - - case 0xC8: /* ENTER */ --- -1.8.3.1 - diff --git a/SPECS/valgrind.spec b/SPECS/valgrind.spec index e7a7005..494975b 100644 --- a/SPECS/valgrind.spec +++ b/SPECS/valgrind.spec @@ -2,8 +2,8 @@ Summary: Tool for finding memory management bugs in programs Name: %{?scl_prefix}valgrind -Version: 3.9.0 -Release: 8.3%{?dist} +Version: 3.10.1 +Release: 1%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -12,6 +12,38 @@ Group: Development/Debuggers # Only necessary for RHEL, will be ignored on Fedora BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# Only arches that are supported upstream as multilib and that the distro +# has multilib builds for should set build_multilib 1. In practice that +# is only x86_64 and ppc64 (but not in fedora 21 and later, and never +# for ppc64le). +%global build_multilib 0 + +%ifarch x86_64 + %global build_multilib 1 +%endif + +%ifarch ppc64 + %if 0%{?rhel} + %global build_multilib 1 + %endif + %if 0%{?fedora} + %global build_multilib (%fedora < 21) + %endif +%endif + +# Note s390x doesn't have an openmpi port available. +%ifarch %{ix86} x86_64 ppc ppc64 ppc64le %{arm} aarch64 +%global build_openmpi 1 +%else +%global build_openmpi 0 +%endif + +# Don't run dwz or generate minisymtab, valgrind doesn't handle compressed +# DWARF very well and it might read its own vgpreload libraries. Generating +# minisymtabs doesn't really work for the staticly linked tools. +%define _find_debuginfo_dwz_opts %{nil} +%undefine _include_minidebuginfo + Source0: http://www.valgrind.org/downloads/valgrind-%{version}.tar.bz2 # Needs investigation and pushing upstream @@ -26,52 +58,16 @@ Patch3: valgrind-3.9.0-stat_h.patch # Make ld.so supressions slightly less specific. Patch4: valgrind-3.9.0-ldso-supp.patch -# On some ppc64 installs these test just hangs -Patch5: valgrind-3.9.0-gdbserver_tests-mcinvoke-ppc64.patch - -# KDE#326983 - insn_basic test might crash because of setting DF flag -Patch6: valgrind-3.9.0-amd64_gen_insn_test.patch - -# KDE#327837 - dwz compressed alternate .debug_info/str not read correctly. -Patch7: valgrind-3.9.0-dwz-alt-buildid.patch - -# KDE#327284 - s390x VEX miscompilation of -march=z10 binary -Patch8: valgrind-3.9.0-s390-risbg.patch - -# KDE#327916 - DW_TAG_typedef may have no name -Patch9: valgrind-3.9.0-anon-typedef.patch - -# KDE#327943 - s390x missing index/strchr suppression for ld.so bad backtrace? -Patch10: valgrind-3.9.0-s390x-ld-supp.patch - -# KDE#328100 - XABORT not implemented -Patch11: valgrind-3.9.0-xabort.patch - -# KDE#328711 - valgrind.1 manpage "memcheck options" section is bad -Patch12: valgrind-3.9.0-manpage-memcheck-options.patch - -# KDE#328455 - s390x SIGILL after emitting wrong register pair for ldxbr -Patch13: valgrind-3.9.0-s390-fpr-pair.patch - -# KDE#331337 - s390x WARNING: unhandled syscall: 326 (dup3) -Patch14: valgrind-3.9.0-s390-dup3.patch - -# KDE#331380 - Syscall param timer_create(evp) points to uninitialised byte(s) -Patch15: valgrind-3.9.0-timer_create.patch - -# Accept glibc 2.19 as valid (upstream valgrind svn r13829) -Patch16: valgrind-3.9.0-glibc-2.19.patch - -# KDE#331830 - ppc64: WARNING: unhandled syscall: 96/97 -Patch17: valgrind-3.9.0-ppc64-priority.patch # DTS specific. Patch1001: valgrind-3.9.0-mpiwrapper.patch -%ifarch x86_64 ppc64 + +%if %{build_multilib} # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so %endif + %if 0%{?fedora} >= 15 BuildRequires: glibc-devel >= 2.14 %else @@ -81,7 +77,8 @@ BuildRequires: glibc-devel >= 2.12 BuildRequires: glibc-devel >= 2.5 %endif %endif -%ifarch %{ix86} x86_64 ppc ppc64 %{arm} + +%if %{build_openmpi} BuildRequires: openmpi-devel >= 1.3.3 %endif @@ -102,7 +99,8 @@ BuildRequires: procps %{?scl:Requires(post): /sbin/restorecon} %endif -ExclusiveArch: %{ix86} x86_64 ppc ppc64 s390x %{arm} +ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 + %ifarch %{ix86} %define valarch x86 %define valsecarch %{nil} @@ -113,22 +111,30 @@ ExclusiveArch: %{ix86} x86_64 ppc ppc64 s390x %{arm} %endif %ifarch ppc %define valarch ppc32 -%define valsecarch ppc64 +%define valsecarch %{nil} %endif %ifarch ppc64 -%define valarch ppc64 -%define valsecarch ppc32 + %define valarch ppc64be + %if %{build_multilib} + %define valsecarch ppc32 + %else + %define valsecarch %{nil} + %endif +%endif +%ifarch ppc64le +%define valarch ppc64le +%define valsecarch %{nil} %endif %ifarch s390x %define valarch s390x %define valsecarch %{nil} %endif %ifarch armv7hl -%define valarch armv7hl +%define valarch arm %define valsecarch %{nil} %endif -%ifarch armv5tel -%define valarch armv5tel +%ifarch aarch64 +%define valarch arm64 %define valsecarch %{nil} %endif @@ -166,23 +172,7 @@ Valgrind User Manual for details. %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%ifarch s390x -%patch10 -p1 -%endif - -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 # DTS Only needed for RHEL6 since that has diffrent openmpi and compat-openmpi # packages that might differ per minor version. @@ -190,6 +180,7 @@ Valgrind User Manual for details. %patch1001 -p1 %endif + %build # We need to use the software collection compiler and binutils if available. # The configure checks might otherwise miss support for various newer @@ -197,12 +188,12 @@ Valgrind User Manual for details. %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} CC=gcc -%ifarch x86_64 ppc64 +%if %{build_multilib} # Ugly hack - libgcc 32-bit package might not be installed -mkdir -p libgcc/32 -ar r libgcc/32/libgcc_s.a -ar r libgcc/libgcc_s_32.a -CC="gcc -B `pwd`/libgcc/" +mkdir -p shared/libgcc/32 +ar r shared/libgcc/32/libgcc_s.a +ar r shared/libgcc/libgcc_s_32.a +CC="gcc -B `pwd`/shared/libgcc/" %endif # Old openmpi-devel has version depended paths for mpicc. @@ -220,7 +211,7 @@ CC="gcc -B `pwd`/libgcc/" # and the test suite. OPTFLAGS="`echo " %{optflags} " | sed 's/ -m\(64\|3[21]\) / /g;s/ -fexceptions / /g;s/ -fstack-protector / / g;s/ -Wp,-D_FORTIFY_SOURCE=2 / /g;s/ -O2 / /g;s/ -mcpu=\([a-z0-9]\+\) / /g;s/^ //;s/ $//'`" %configure CC="$CC" CFLAGS="$OPTFLAGS" CXXFLAGS="$OPTFLAGS" \ -%ifarch %{ix86} x86_64 ppc ppc64 %{arm} +%if %{build_openmpi} --with-mpicc=%{mpiccpath} \ %endif GDB=%{_bindir}/gdb @@ -257,11 +248,7 @@ pushd $RPM_BUILD_ROOT%{_libdir}/valgrind/ rm -f *-%{valsecarch}-* || : for i in *-%{valarch}-*; do j=`echo $i | sed 's/-%{valarch}-/-%{valsecarch}-/'` -%ifarch ppc - ln -sf ../../lib64/valgrind/$j $j -%else ln -sf ../../lib/valgrind/$j $j -%endif done popd %endif @@ -282,6 +269,9 @@ done %endif %check +# Make sure a basic binary runs. +./vg-in-place /bin/true + # Build the test files with the software collection compiler if available. %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} # Make sure no extra CFLAGS leak through, the testsuite sets all flags @@ -289,10 +279,7 @@ done make %{?_smp_mflags} CFLAGS="" check || : echo ===============TESTING=================== -# XXX WORKAROUND use nonexp-regtest so gdbserver_tests are not run. -# They might hang the build. -# ./close_fds make regtest || : -./close_fds make nonexp-regtest || : +./close_fds make regtest || : # Make sure test failures show up in build.log # Gather up the diffs (at most the first 20 lines for each one) @@ -333,7 +320,7 @@ echo ===============END TESTING=============== %{_libdir}/valgrind/*.a %{_libdir}/pkgconfig/* -%ifarch %{ix86} x86_64 ppc ppc64 %{arm} +%if %{build_openmpi} %files openmpi %defattr(-,root,root) %dir %{_libdir}/valgrind @@ -353,6 +340,9 @@ fi %endif %changelog +* Thu Dec 18 2014 Mark Wielaard - 3.10.1-1 +- Upgrade to 3.10.1. + * Wed May 28 2014 Mark Wielaard - 3.9.0-8.3 - Fix %%post to be rhel6 only (#1101849)