From d7db8c879d22d6948e7ca2b2957ecbfdd17e97eb Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 10 Aug 2021 08:03:28 -0400 Subject: [PATCH] import gcc-toolset-10-valgrind-3.16.0-6.el8_4 --- .gcc-toolset-10-valgrind.metadata | 1 + .gitignore | 1 + SOURCES/valgrind-3.16.0-387-float.patch | 64 + SOURCES/valgrind-3.16.0-pkglibexecdir.patch | 117 + SOURCES/valgrind-3.16.0-ppc-L-field.patch | 29 + SOURCES/valgrind-3.16.0-some-Wl-z-now.patch | 72 + ...valgrind-3.16.0-some-stack-protector.patch | 118 + SOURCES/valgrind-3.16.1-REX-prefix-JMP.patch | 38 + .../valgrind-3.16.1-dl_runtime_resolve.patch | 206 ++ SOURCES/valgrind-3.16.1-epoll.patch | 117 + .../valgrind-3.16.1-sched_getsetattr.patch | 201 ++ ...lgrind-3.9.0-cachegrind-improvements.patch | 54 + .../valgrind-3.9.0-helgrind-race-supp.patch | 15 + SOURCES/valgrind-3.9.0-ldso-supp.patch | 28 + SPECS/valgrind.spec | 1947 +++++++++++++++++ 15 files changed, 3008 insertions(+) create mode 100644 .gcc-toolset-10-valgrind.metadata create mode 100644 .gitignore create mode 100644 SOURCES/valgrind-3.16.0-387-float.patch create mode 100644 SOURCES/valgrind-3.16.0-pkglibexecdir.patch create mode 100644 SOURCES/valgrind-3.16.0-ppc-L-field.patch create mode 100644 SOURCES/valgrind-3.16.0-some-Wl-z-now.patch create mode 100644 SOURCES/valgrind-3.16.0-some-stack-protector.patch create mode 100644 SOURCES/valgrind-3.16.1-REX-prefix-JMP.patch create mode 100644 SOURCES/valgrind-3.16.1-dl_runtime_resolve.patch create mode 100644 SOURCES/valgrind-3.16.1-epoll.patch create mode 100644 SOURCES/valgrind-3.16.1-sched_getsetattr.patch create mode 100644 SOURCES/valgrind-3.9.0-cachegrind-improvements.patch create mode 100644 SOURCES/valgrind-3.9.0-helgrind-race-supp.patch create mode 100644 SOURCES/valgrind-3.9.0-ldso-supp.patch create mode 100644 SPECS/valgrind.spec diff --git a/.gcc-toolset-10-valgrind.metadata b/.gcc-toolset-10-valgrind.metadata new file mode 100644 index 0000000..364b313 --- /dev/null +++ b/.gcc-toolset-10-valgrind.metadata @@ -0,0 +1 @@ +cf9fba00b597d9baa3f673cc0960b23a40473ff1 SOURCES/valgrind-3.16.0.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dcde9c4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/valgrind-3.16.0.tar.bz2 diff --git a/SOURCES/valgrind-3.16.0-387-float.patch b/SOURCES/valgrind-3.16.0-387-float.patch new file mode 100644 index 0000000..b64866e --- /dev/null +++ b/SOURCES/valgrind-3.16.0-387-float.patch @@ -0,0 +1,64 @@ +commit 6aa4f7e7e76b40c183fb29650540d119ce1b4a4a +Author: Julian Seward +Date: Thu Jun 11 09:01:52 2020 +0200 + + expr_is_guardable, stmt_is_guardable, add_guarded_stmt_to_end_of: handle GetI/PutI cases. + + This fixes #422715. + +diff --git a/VEX/priv/guest_generic_bb_to_IR.c b/VEX/priv/guest_generic_bb_to_IR.c +index 2f204c5b0..0cee970e4 100644 +--- a/VEX/priv/guest_generic_bb_to_IR.c ++++ b/VEX/priv/guest_generic_bb_to_IR.c +@@ -425,6 +425,7 @@ static Bool expr_is_guardable ( const IRExpr* e ) + case Iex_ITE: + case Iex_CCall: + case Iex_Get: ++ case Iex_GetI: + case Iex_Const: + case Iex_RdTmp: + return True; +@@ -450,6 +451,7 @@ static Bool stmt_is_guardable ( const IRStmt* st ) + case Ist_NoOp: + case Ist_IMark: + case Ist_Put: ++ case Ist_PutI: + return True; + // These are definitely not guardable, or at least it's way too much + // hassle to do so. +@@ -506,7 +508,7 @@ static void add_guarded_stmt_to_end_of ( /*MOD*/IRSB* bb, + // Put(offs, e) ==> Put(offs, ITE(guard, e, Get(offs, sizeof(e)))) + // Which when flattened out is: + // t1 = Get(offs, sizeof(e)) +- // t2 = ITE(guard, e, t2) ++ // t2 = ITE(guard, e, t1) + // Put(offs, t2) + Int offset = st->Ist.Put.offset; + IRExpr* e = st->Ist.Put.data; +@@ -519,6 +521,26 @@ static void add_guarded_stmt_to_end_of ( /*MOD*/IRSB* bb, + addStmtToIRSB(bb, IRStmt_Put(offset, IRExpr_RdTmp(t2))); + break; + } ++ case Ist_PutI: { ++ // PutI(descr,ix,bias, e) ==> Put(descr,ix,bias, ITE(guard, e, GetI(descr,ix,bias))) ++ // Which when flattened out is: ++ // t1 = GetI(descr,ix,bias) ++ // t2 = ITE(guard, e, t1) ++ // PutI(descr,ix,bias, t2) ++ IRPutI* details = st->Ist.PutI.details; ++ IRRegArray* descr = details->descr; ++ IRExpr* ix = details->ix; ++ Int bias = details->bias; ++ IRExpr* e = details->data; ++ IRType ty = typeOfIRExpr(bb->tyenv, e); ++ IRTemp t1 = newIRTemp(bb->tyenv, ty); ++ IRTemp t2 = newIRTemp(bb->tyenv, ty); ++ addStmtToIRSB(bb, IRStmt_WrTmp(t1, IRExpr_GetI(descr,ix,bias))); ++ addStmtToIRSB(bb, IRStmt_WrTmp(t2, IRExpr_ITE(IRExpr_RdTmp(guard), ++ e, IRExpr_RdTmp(t1)))); ++ addStmtToIRSB(bb, IRStmt_PutI(mkIRPutI(descr,ix,bias, IRExpr_RdTmp(t2)))); ++ break; ++ } + case Ist_Exit: { + // Exit(xguard, dst, jk, offsIP) + // ==> t1 = And1(xguard, guard) diff --git a/SOURCES/valgrind-3.16.0-pkglibexecdir.patch b/SOURCES/valgrind-3.16.0-pkglibexecdir.patch new file mode 100644 index 0000000..cd52729 --- /dev/null +++ b/SOURCES/valgrind-3.16.0-pkglibexecdir.patch @@ -0,0 +1,117 @@ +diff --git a/Makefile.all.am b/Makefile.all.am +index 3786e34..1befef5 100644 +--- a/Makefile.all.am ++++ b/Makefile.all.am +@@ -50,20 +50,20 @@ inplace-noinst_DSYMS: build-noinst_DSYMS + done + + # This is used by coregrind/Makefile.am and by /Makefile.am for doing +-# "make install". It copies $(noinst_PROGRAMS) into $prefix/lib/valgrind/. ++# "make install". It copies $(noinst_PROGRAMS) into $prefix/libexec/valgrind/. + # It needs to be depended on by an 'install-exec-local' rule. + install-noinst_PROGRAMS: $(noinst_PROGRAMS) +- $(mkinstalldirs) $(DESTDIR)$(pkglibdir); \ ++ $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir); \ + for f in $(noinst_PROGRAMS); do \ +- $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibdir); \ ++ $(INSTALL_PROGRAM) $$f $(DESTDIR)$(pkglibexecdir); \ + done + + # This is used by coregrind/Makefile.am and by /Makefile.am for doing +-# "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/lib/valgrind/. ++# "make uninstall". It removes $(noinst_PROGRAMS) from $prefix/libexec/valgrind/. + # It needs to be depended on by an 'uninstall-local' rule. + uninstall-noinst_PROGRAMS: + for f in $(noinst_PROGRAMS); do \ +- rm -f $(DESTDIR)$(pkglibdir)/$$f; \ ++ rm -f $(DESTDIR)$(pkglibexecdir)/$$f; \ + done + + # Similar to install-noinst_PROGRAMS. +@@ -71,15 +71,15 @@ uninstall-noinst_PROGRAMS: + # directories. XXX: not sure whether the resulting permissions will be + # correct when using 'cp -R'... + install-noinst_DSYMS: build-noinst_DSYMS +- $(mkinstalldirs) $(DESTDIR)$(pkglibdir); \ ++ $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir); \ + for f in $(noinst_DSYMS); do \ +- cp -R $$f.dSYM $(DESTDIR)$(pkglibdir); \ ++ cp -R $$f.dSYM $(DESTDIR)$(pkglibexecdir); \ + done + + # Similar to uninstall-noinst_PROGRAMS. + uninstall-noinst_DSYMS: + for f in $(noinst_DSYMS); do \ +- rm -f $(DESTDIR)$(pkglibdir)/$$f.dSYM; \ ++ rm -f $(DESTDIR)$(pkglibexecdir)/$$f.dSYM; \ + done + + # This needs to be depended on by a 'clean-local' rule. +diff --git a/Makefile.am b/Makefile.am +index 242b38a..3b7c806 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -58,7 +58,7 @@ DEFAULT_SUPP_FILES = @DEFAULT_SUPP@ + # default.supp, as it is built from the base .supp files at compile-time. + dist_noinst_DATA = $(SUPP_FILES) + +-vglibdir = $(pkglibdir) ++vglibdir = $(pkglibexecdir) + vglib_DATA = default.supp + + pkgconfigdir = $(libdir)/pkgconfig +diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am +index 94030fd..f09763a 100644 +--- a/coregrind/Makefile.am ++++ b/coregrind/Makefile.am +@@ -11,12 +11,12 @@ include $(top_srcdir)/Makefile.all.am + + AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@ += \ + -I$(top_srcdir)/coregrind \ +- -DVG_LIBDIR="\"$(pkglibdir)"\" \ ++ -DVG_LIBDIR="\"$(pkglibexecdir)"\" \ + -DVG_PLATFORM="\"@VGCONF_ARCH_PRI@-@VGCONF_OS@\"" + if VGCONF_HAVE_PLATFORM_SEC + AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@ += \ + -I$(top_srcdir)/coregrind \ +- -DVG_LIBDIR="\"$(pkglibdir)"\" \ ++ -DVG_LIBDIR="\"$(pkglibexecdir)"\" \ + -DVG_PLATFORM="\"@VGCONF_ARCH_SEC@-@VGCONF_OS@\"" + endif + +@@ -714,7 +714,7 @@ GDBSERVER_XML_FILES = \ + m_gdbserver/mips64-fpu.xml + + # so as to make sure these get copied into the install tree +-vglibdir = $(pkglibdir) ++vglibdir = $(pkglibexecdir) + vglib_DATA = $(GDBSERVER_XML_FILES) + + # so as to make sure these get copied into the tarball +diff --git a/mpi/Makefile.am b/mpi/Makefile.am +index 7ad9a25..471fee0 100644 +--- a/mpi/Makefile.am ++++ b/mpi/Makefile.am +@@ -18,16 +18,18 @@ EXTRA_DIST = \ + # libmpiwrap-.so + #---------------------------------------------------------------------------- + +-noinst_PROGRAMS = ++# These are really real libraries, so they should go to libdir, not libexec. ++mpidir = $(pkglibdir) ++mpi_PROGRAMS = + if BUILD_MPIWRAP_PRI +-noinst_PROGRAMS += libmpiwrap-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so ++mpi_PROGRAMS += libmpiwrap-@VGCONF_ARCH_PRI@-@VGCONF_OS@.so + endif + if BUILD_MPIWRAP_SEC +-noinst_PROGRAMS += libmpiwrap-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so ++mpi_PROGRAMS += libmpiwrap-@VGCONF_ARCH_SEC@-@VGCONF_OS@.so + endif + + if VGCONF_OS_IS_DARWIN +-noinst_DSYMS = $(noinst_PROGRAMS) ++mpi_DSYMS = $(mpi_PROGRAMS) + endif + + diff --git a/SOURCES/valgrind-3.16.0-ppc-L-field.patch b/SOURCES/valgrind-3.16.0-ppc-L-field.patch new file mode 100644 index 0000000..ee1d225 --- /dev/null +++ b/SOURCES/valgrind-3.16.0-ppc-L-field.patch @@ -0,0 +1,29 @@ +commit fb6f7abcbc92506d302fb18a2c5fc853d2929248 +Author: Carl Love +Date: Tue Jun 9 10:42:03 2020 -0500 + + Power PC Fix extraction of the L field for sync instruction + + The L field is currently a two bit[22:21] field in ISA 3.0. The size of the + L field has changed over time. + + Currently the ISA 3.0 Valgrind sync instruction support code sets the + flag_L for the instruction L field to a five bit value that includes bits + that are marked reserved the sync instruction. This patch fixes the issue for ISA 3.0 + to only setting flag_L the specified two bits. + + Valgrind bugzilla: https://bugs.kde.org/show_bug.cgi?id=422677 + +diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c +index 582c59ec0..c4965a19e 100644 +--- a/VEX/priv/guest_ppc_toIR.c ++++ b/VEX/priv/guest_ppc_toIR.c +@@ -8777,7 +8777,7 @@ static Bool dis_memsync ( UInt theInstr ) + /* X-Form, XL-Form */ + UChar opc1 = ifieldOPC(theInstr); + UInt b11to25 = IFIELD(theInstr, 11, 15); +- UChar flag_L = ifieldRegDS(theInstr); ++ UChar flag_L = IFIELD(theInstr, 21, 2); //ISA 3.0 + UInt b11to20 = IFIELD(theInstr, 11, 10); + UInt M0 = IFIELD(theInstr, 11, 5); + UChar rD_addr = ifieldRegDS(theInstr); diff --git a/SOURCES/valgrind-3.16.0-some-Wl-z-now.patch b/SOURCES/valgrind-3.16.0-some-Wl-z-now.patch new file mode 100644 index 0000000..79c3662 --- /dev/null +++ b/SOURCES/valgrind-3.16.0-some-Wl-z-now.patch @@ -0,0 +1,72 @@ +commit d3c977726064ba09fed6dfc7daf22b16824c97b4 +Author: Mark Wielaard +Date: Fri May 24 18:24:56 2019 +0200 + + Add -Wl,-z,now to some binaries. + +diff --git a/auxprogs/Makefile.am b/auxprogs/Makefile.am +index 1b7842b..e211eec 100644 +--- a/auxprogs/Makefile.am ++++ b/auxprogs/Makefile.am +@@ -32,7 +32,7 @@ valgrind_listener_SOURCES = valgrind-listener.c + valgrind_listener_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind + valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + valgrind_listener_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-valgrind_listener_LDFLAGS = $(AM_CFLAGS_PRI) ++valgrind_listener_LDFLAGS = $(AM_CFLAGS_PRI) -Wl,-z,now + if VGCONF_PLATVARIANT_IS_ANDROID + valgrind_listener_CFLAGS += -static + endif +@@ -51,7 +51,7 @@ valgrind_di_server_SOURCES = valgrind-di-server.c + valgrind_di_server_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind + valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + valgrind_di_server_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-valgrind_di_server_LDFLAGS = $(AM_CFLAGS_PRI) ++valgrind_di_server_LDFLAGS = $(AM_CFLAGS_PRI) -Wl,-z,now + if VGCONF_PLATVARIANT_IS_ANDROID + valgrind_di_server_CFLAGS += -static + endif +@@ -86,7 +86,7 @@ getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = getoff.c + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fstack-protector-strong + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ ++getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ -Wl,-z,now + if HAVE_DLINFO_RTLD_DI_TLS_MODID + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDADD = $(LDADD) -ldl + endif +diff --git a/cachegrind/Makefile.am b/cachegrind/Makefile.am +index f572741..1c07e50 100644 +--- a/cachegrind/Makefile.am ++++ b/cachegrind/Makefile.am +@@ -27,7 +27,7 @@ cg_merge_SOURCES = cg_merge.c + cg_merge_CPPFLAGS = $(AM_CPPFLAGS_PRI) + cg_merge_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + cg_merge_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-cg_merge_LDFLAGS = $(AM_CFLAGS_PRI) ++cg_merge_LDFLAGS = $(AM_CFLAGS_PRI) -Wl,-z,now + # If there is no secondary platform, and the platforms include x86-darwin, + # then the primary platform must be x86-darwin. Hence: + if ! VGCONF_HAVE_PLATFORM_SEC +diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am +index 3c73210..fb6b7bb 100644 +--- a/coregrind/Makefile.am ++++ b/coregrind/Makefile.am +@@ -57,7 +57,7 @@ RANLIB = ${LTO_RANLIB} + valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) + valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong + valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ ++valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ -Wl,-z,now + # If there is no secondary platform, and the platforms include x86-darwin, + # then the primary platform must be x86-darwin. Hence: + if ! VGCONF_HAVE_PLATFORM_SEC +@@ -96,7 +96,7 @@ endif + vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI) + vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong + vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI) +-vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ ++vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ -Wl,-z,now + if VGCONF_PLATVARIANT_IS_ANDROID + vgdb_CFLAGS += -static + endif diff --git a/SOURCES/valgrind-3.16.0-some-stack-protector.patch b/SOURCES/valgrind-3.16.0-some-stack-protector.patch new file mode 100644 index 0000000..bde2aa5 --- /dev/null +++ b/SOURCES/valgrind-3.16.0-some-stack-protector.patch @@ -0,0 +1,118 @@ +commit b73fb7a614e1b5d60af23fb0752b5cead995e02e +Author: Mark Wielaard +Date: Sun Apr 14 00:30:05 2019 +0200 + + Remove no-stack-protector, add stack-protector-strong to some. + +diff --git a/auxprogs/Makefile.am b/auxprogs/Makefile.am +index 56cc5ef..1b7842b 100644 +--- a/auxprogs/Makefile.am ++++ b/auxprogs/Makefile.am +@@ -30,7 +30,7 @@ bin_PROGRAMS = valgrind-listener valgrind-di-server + + valgrind_listener_SOURCES = valgrind-listener.c + valgrind_listener_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind +-valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) ++valgrind_listener_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + valgrind_listener_CCASFLAGS = $(AM_CCASFLAGS_PRI) + valgrind_listener_LDFLAGS = $(AM_CFLAGS_PRI) + if VGCONF_PLATVARIANT_IS_ANDROID +@@ -49,7 +49,7 @@ endif + + valgrind_di_server_SOURCES = valgrind-di-server.c + valgrind_di_server_CPPFLAGS = $(AM_CPPFLAGS_PRI) -I$(top_srcdir)/coregrind +-valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) ++valgrind_di_server_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + valgrind_di_server_CCASFLAGS = $(AM_CCASFLAGS_PRI) + valgrind_di_server_LDFLAGS = $(AM_CFLAGS_PRI) + if VGCONF_PLATVARIANT_IS_ANDROID +@@ -84,7 +84,7 @@ endif + + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_SOURCES = getoff.c + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CPPFLAGS = $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) +-getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) ++getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CFLAGS = $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -fstack-protector-strong + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_CCASFLAGS = $(AM_CCASFLAGS_PRI) + getoff_@VGCONF_ARCH_PRI@_@VGCONF_OS@_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ + if HAVE_DLINFO_RTLD_DI_TLS_MODID +diff --git a/cachegrind/Makefile.am b/cachegrind/Makefile.am +index f8447a1..f572741 100644 +--- a/cachegrind/Makefile.am ++++ b/cachegrind/Makefile.am +@@ -25,7 +25,7 @@ bin_PROGRAMS = cg_merge + + cg_merge_SOURCES = cg_merge.c + cg_merge_CPPFLAGS = $(AM_CPPFLAGS_PRI) +-cg_merge_CFLAGS = $(AM_CFLAGS_PRI) ++cg_merge_CFLAGS = $(AM_CFLAGS_PRI) -fstack-protector-strong + cg_merge_CCASFLAGS = $(AM_CCASFLAGS_PRI) + cg_merge_LDFLAGS = $(AM_CFLAGS_PRI) + # If there is no secondary platform, and the platforms include x86-darwin, +diff --git a/configure.ac b/configure.ac +index f8c798b..ccc8f52 100755 +--- a/configure.ac ++++ b/configure.ac +@@ -2188,24 +2188,24 @@ AC_LANG(C) + AC_SUBST(FLAG_FALIGNED_NEW) + + # does this compiler support -fno-stack-protector ? +-AC_MSG_CHECKING([if gcc accepts -fno-stack-protector]) +- +-safe_CFLAGS=$CFLAGS +-CFLAGS="-fno-stack-protector -Werror" +- +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ +- return 0; +-]])], [ +-no_stack_protector=yes +-FLAG_FNO_STACK_PROTECTOR="-fno-stack-protector" +-AC_MSG_RESULT([yes]) +-], [ +-no_stack_protector=no ++#AC_MSG_CHECKING([if gcc accepts -fno-stack-protector]) ++# ++#safe_CFLAGS=$CFLAGS ++#CFLAGS="-fno-stack-protector -Werror" ++# ++#AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ ++# return 0; ++#]])], [ ++#no_stack_protector=yes ++#FLAG_FNO_STACK_PROTECTOR="-fno-stack-protector" ++#AC_MSG_RESULT([yes]) ++#], [ ++#no_stack_protector=no + FLAG_FNO_STACK_PROTECTOR="" +-AC_MSG_RESULT([no]) +-]) +-CFLAGS=$safe_CFLAGS +- ++#AC_MSG_RESULT([no]) ++#]) ++#CFLAGS=$safe_CFLAGS ++# + AC_SUBST(FLAG_FNO_STACK_PROTECTOR) + + # does this compiler support -finline-functions ? +diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am +index 94030fd..3c73210 100644 +--- a/coregrind/Makefile.am ++++ b/coregrind/Makefile.am +@@ -55,7 +55,7 @@ AR = ${LTO_AR} + RANLIB = ${LTO_RANLIB} + + valgrind_CPPFLAGS = $(AM_CPPFLAGS_PRI) +-valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) ++valgrind_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong + valgrind_CCASFLAGS = $(AM_CCASFLAGS_PRI) + valgrind_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ + # If there is no secondary platform, and the platforms include x86-darwin, +@@ -94,7 +94,7 @@ vgdb_SOURCES += vgdb-invoker-solaris.c + endif + + vgdb_CPPFLAGS = $(AM_CPPFLAGS_PRI) +-vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) ++vgdb_CFLAGS = $(AM_CFLAGS_PRI) $(LTO_CFLAGS) -fstack-protector-strong + vgdb_CCASFLAGS = $(AM_CCASFLAGS_PRI) + vgdb_LDFLAGS = $(AM_CFLAGS_PRI) @LIB_UBSAN@ + if VGCONF_PLATVARIANT_IS_ANDROID diff --git a/SOURCES/valgrind-3.16.1-REX-prefix-JMP.patch b/SOURCES/valgrind-3.16.1-REX-prefix-JMP.patch new file mode 100644 index 0000000..f780fb1 --- /dev/null +++ b/SOURCES/valgrind-3.16.1-REX-prefix-JMP.patch @@ -0,0 +1,38 @@ +commit e2dec0ff9b1e071779bee2c4e6fc82f8194b1c1d +Author: Mark Wielaard +Date: Sun Jul 26 21:17:23 2020 +0200 + + Handle REX prefixed JMP instruction. + + The NET Core runtime might generate a JMP with a REX prefix. + For Jv (32bit offset) and Jb (8bit offset) this is valid. + Prefixes that change operand size are ignored for such JMPs. + So remove the check for sz == 4 and force sz = 4 for Jv. + + https://bugs.kde.org/show_bug.cgi?id=422174 + +diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c +index fadf47d41..7888132eb 100644 +--- a/VEX/priv/guest_amd64_toIR.c ++++ b/VEX/priv/guest_amd64_toIR.c +@@ -21392,8 +21392,8 @@ Long dis_ESC_NONE ( + + case 0xE9: /* Jv (jump, 16/32 offset) */ + if (haveF3(pfx)) goto decode_failure; +- if (sz != 4) +- goto decode_failure; /* JRS added 2004 July 11 */ ++ sz = 4; /* Prefixes that change operand size are ignored for this ++ instruction. Operand size is forced to 32bit. */ + if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */ + d64 = (guest_RIP_bbstart+delta+sz) + getSDisp(sz,delta); + delta += sz; +@@ -21404,8 +21404,7 @@ Long dis_ESC_NONE ( + + case 0xEB: /* Jb (jump, byte offset) */ + if (haveF3(pfx)) goto decode_failure; +- if (sz != 4) +- goto decode_failure; /* JRS added 2004 July 11 */ ++ /* Prefixes that change operand size are ignored for this instruction. */ + if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */ + d64 = (guest_RIP_bbstart+delta+1) + getSDisp8(delta); + delta++; diff --git a/SOURCES/valgrind-3.16.1-dl_runtime_resolve.patch b/SOURCES/valgrind-3.16.1-dl_runtime_resolve.patch new file mode 100644 index 0000000..0a34759 --- /dev/null +++ b/SOURCES/valgrind-3.16.1-dl_runtime_resolve.patch @@ -0,0 +1,206 @@ +commit f4abcc05fdba3f25890a9b30b71d511ccc906d46 +Author: Mark Wielaard +Date: Mon Jul 27 22:43:28 2020 +0200 + + Incorrect call-graph tracking due to new _dl_runtime_resolve_xsave* + + Newer glibc have alternate ld.so _ld_runtime_resolve functions. + Namely _dl_runtime_resolve_xsave and _dl_runtime_resolve_xsave'2 + + This patch recognizes the xsave, xsvec and fxsave variants and + changes callgrind so that any variant counts as _dl_runtime_resolve. + + Original patch by paulo.cesar.pereira.de.andrade@gmail.com + https://bugs.kde.org/show_bug.cgi?id=415293 + +diff --git a/callgrind/fn.c b/callgrind/fn.c +index e9d8dd214..7cce1a0c7 100644 +--- a/callgrind/fn.c ++++ b/callgrind/fn.c +@@ -30,8 +30,11 @@ + + static fn_array current_fn_active; + +-static Addr runtime_resolve_addr = 0; +-static int runtime_resolve_length = 0; ++/* x86_64 defines 4 variants. */ ++#define MAX_RESOLVE_ADDRS 4 ++static int runtime_resolve_addrs = 0; ++static Addr runtime_resolve_addr[MAX_RESOLVE_ADDRS]; ++static int runtime_resolve_length[MAX_RESOLVE_ADDRS]; + + // a code pattern is a list of tuples (start offset, length) + struct chunk_t { int start, len; }; +@@ -56,6 +59,9 @@ static Bool check_code(obj_node* obj, + /* first chunk of pattern should always start at offset 0 and + * have at least 3 bytes */ + CLG_ASSERT((pat->chunk[0].start == 0) && (pat->chunk[0].len >2)); ++ ++ /* and we cannot be called more than MAX_RESOLVE_ADDRS times */ ++ CLG_ASSERT(runtime_resolve_addrs < MAX_RESOLVE_ADDRS); + + CLG_DEBUG(1, "check_code: %s, pattern %s, check %d bytes of [%x %x %x...]\n", + obj->name, pat->name, pat->chunk[0].len, code[0], code[1], code[2]); +@@ -93,8 +99,9 @@ static Bool check_code(obj_node* obj, + pat->name, obj->name + obj->last_slash_pos, + addr - obj->start, addr, pat->len); + +- runtime_resolve_addr = addr; +- runtime_resolve_length = pat->len; ++ runtime_resolve_addr[runtime_resolve_addrs] = addr; ++ runtime_resolve_length[runtime_resolve_addrs] = pat->len; ++ runtime_resolve_addrs++; + return True; + } + } +@@ -138,8 +145,9 @@ static Bool search_runtime_resolve(obj_node* obj) + "x86-glibc2.8", 30, {{ 0,12 }, { 16,14 }, { 30,0}} }; + + if (VG_(strncmp)(obj->name, "/lib/ld", 7) != 0) return False; +- if (check_code(obj, code, &pat)) return True; +- if (check_code(obj, code_28, &pat_28)) return True; ++ Bool pat_p = check_code(obj, code, &pat); ++ Bool pat_28_p = check_code(obj, code_28, &pat_28); ++ if (pat_p || pat_28_p) return True; + return False; + #endif + +@@ -186,9 +194,98 @@ static Bool search_runtime_resolve(obj_node* obj) + static struct pattern pat = { + "amd64-def", 110, {{ 0,62 }, { 66,44 }, { 110,0 }} }; + ++ static UChar code_xsavec[] = { ++ /* 0*/ 0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xe4, 0xc0, ++ /* 8*/ 0x48, 0x2b, 0x25, 0x00, 0x00, 0x00, 0x00, /* sub (%rip),%rsp */ ++ /*15*/ 0x48, ++ /*16*/ 0x89, 0x04, 0x24, 0x48, 0x89, 0x4c, 0x24, 0x08, ++ /*24*/ 0x48, 0x89, 0x54, 0x24, 0x10, 0x48, 0x89, 0x74, ++ /*32*/ 0x24, 0x18, 0x48, 0x89, 0x7c, 0x24, 0x20, 0x4c, ++ /*40*/ 0x89, 0x44, 0x24, 0x28, 0x4c, 0x89, 0x4c, 0x24, ++ /*48*/ 0x30, 0xb8, 0xee, 0x00, 0x00, 0x00, 0x31, 0xd2, ++ /*56*/ 0x48, 0x89, 0x94, 0x24, 0x50, 0x02, 0x00, 0x00, ++ /*64*/ 0x48, 0x89, 0x94, 0x24, 0x58, 0x02, 0x00, 0x00, ++ /*72*/ 0x48, 0x89, 0x94, 0x24, 0x60, 0x02, 0x00, 0x00, ++ /*80*/ 0x48, 0x89, 0x94, 0x24, 0x68, 0x02, 0x00, 0x00, ++ /*88*/ 0x48, 0x89, 0x94, 0x24, 0x70, 0x02, 0x00, 0x00, ++ /*96*/ 0x48, 0x89, 0x94, 0x24, 0x78, 0x02, 0x00, 0x00, ++ /*04*/ 0x0f, 0xc7, 0x64, 0x24, 0x40, 0x48, 0x8b, 0x73, ++ /*112*/0x10, 0x48, 0x8b, 0x7b, 0x08, ++ /*117*/0xe8, 0x00, 0x00, 0x00, 0x00, /* callq <_dl_fixup> */ ++ /*122*/0x49, 0x89, 0xc3, 0xb8, 0xee, 0x00, ++ /*128*/0x00, 0x00, 0x31, 0xd2, 0x0f, 0xae, 0x6c, 0x24, ++ /*136*/0x40, 0x4c, 0x8b, 0x4c, 0x24, 0x30, 0x4c, 0x8b, ++ /*144*/0x44, 0x24, 0x28, 0x48, 0x8b, 0x7c, 0x24, 0x20, ++ /*152*/0x48, 0x8b, 0x74, 0x24, 0x18, 0x48, 0x8b, 0x54, ++ /*160*/0x24, 0x10, 0x48, 0x8b, 0x4c, 0x24, 0x08, 0x48, ++ /*168*/0x8b, 0x04, 0x24, 0x48, 0x89, 0xdc, 0x48, 0x8b, ++ /*176*/0x1c, 0x24, 0x48, 0x83, 0xc4, 0x18, 0xf2, 0x41, ++ /*184*/0xff, 0xe3 }; ++ static struct pattern pat_xsavec = { ++ "amd64-xsavec", 186, {{ 0,11 }, { 15,103 }, {122,64}, { 186,0 }} }; ++ ++ static UChar code_xsave[] = { ++ /* 0*/ 0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xe4, 0xc0, ++ /* 8*/ 0x48, 0x2b, 0x25, 0x00, 0x00, 0x00, 0x00, /* sub (%rip),%rsp */ ++ /*15*/ 0x48, ++ /*16*/ 0x89, 0x04, 0x24, 0x48, 0x89, 0x4c, 0x24, 0x08, ++ /*24*/ 0x48, 0x89, 0x54, 0x24, 0x10, 0x48, 0x89, 0x74, ++ /*32*/ 0x24, 0x18, 0x48, 0x89, 0x7c, 0x24, 0x20, 0x4c, ++ /*40*/ 0x89, 0x44, 0x24, 0x28, 0x4c, 0x89, 0x4c, 0x24, ++ /*48*/ 0x30, 0xb8, 0xee, 0x00, 0x00, 0x00, 0x31, 0xd2, ++ /*56*/ 0x48, 0x89, 0x94, 0x24, 0x40, 0x02, 0x00, 0x00, ++ /*64*/ 0x48, 0x89, 0x94, 0x24, 0x48, 0x02, 0x00, 0x00, ++ /*72*/ 0x48, 0x89, 0x94, 0x24, 0x50, 0x02, 0x00, 0x00, ++ /*80*/ 0x48, 0x89, 0x94, 0x24, 0x58, 0x02, 0x00, 0x00, ++ /*88*/ 0x48, 0x89, 0x94, 0x24, 0x60, 0x02, 0x00, 0x00, ++ /*96*/ 0x48, 0x89, 0x94, 0x24, 0x68, 0x02, 0x00, 0x00, ++ /*104*/0x48, 0x89, 0x94, 0x24, 0x70, 0x02, 0x00, 0x00, ++ /*112*/0x48, 0x89, 0x94, 0x24, 0x78, 0x02, 0x00, 0x00, ++ /*120*/0x0f, 0xae, 0x64, 0x24, 0x40, 0x48, 0x8b, 0x73, ++ /*128*/0x10, 0x48, 0x8b, 0x7b, 0x08, ++ /*133*/0xe8, 0x00, 0x00, 0x00, 0x00, /* callq <_dl_fixup> */ ++ /*138*/0x49, 0x89, 0xc3, 0xb8, 0xee, 0x00, ++ /*144*/0x00, 0x00, 0x31, 0xd2, 0x0f, 0xae, 0x6c, 0x24, ++ /*152*/0x40, 0x4c, 0x8b, 0x4c, 0x24, 0x30, 0x4c, 0x8b, ++ /*160*/0x44, 0x24, 0x28, 0x48, 0x8b, 0x7c, 0x24, 0x20, ++ /*168*/0x48, 0x8b, 0x74, 0x24, 0x18, 0x48, 0x8b, 0x54, ++ /*176*/0x24, 0x10, 0x48, 0x8b, 0x4c, 0x24, 0x08, 0x48, ++ /*184*/0x8b, 0x04, 0x24, 0x48, 0x89, 0xdc, 0x48, 0x8b, ++ /*192*/0x1c, 0x24, 0x48, 0x83, 0xc4, 0x18, 0xf2, 0x41, ++ /*200*/0xff, 0xe3 }; ++ static struct pattern pat_xsave = { ++ "amd64-xsave", 202, {{ 0,11 }, { 15,119 }, {138,64}, { 202,0 }} }; ++ ++ static UChar code_fxsave[] = { ++ /* 0*/ 0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xe4, 0xf0, ++ /* 8*/ 0x48, 0x81, 0xec, 0x40, 0x02, 0x00, 0x00, 0x48, ++ /*16*/ 0x89, 0x04, 0x24, 0x48, 0x89, 0x4c, 0x24, 0x08, ++ /*24*/ 0x48, 0x89, 0x54, 0x24, 0x10, 0x48, 0x89, 0x74, ++ /*32*/ 0x24, 0x18, 0x48, 0x89, 0x7c, 0x24, 0x20, 0x4c, ++ /*40*/ 0x89, 0x44, 0x24, 0x28, 0x4c, 0x89, 0x4c, 0x24, ++ /*48*/ 0x30, 0x0f, 0xae, 0x44, 0x24, 0x40, 0x48, 0x8b, ++ /*56*/ 0x73, 0x10, 0x48, 0x8b, 0x7b, 0x08, ++ /*62*/ 0xe8, 0x00, 0x00, 0x00, 0x00, /* callq <_dl_fixup> */ ++ /*67*/ 0x49, 0x89, 0xc3, 0x0f, 0xae, ++ /*72*/ 0x4c, 0x24, 0x40, 0x4c, 0x8b, 0x4c, 0x24, 0x30, ++ /*80*/ 0x4c, 0x8b, 0x44, 0x24, 0x28, 0x48, 0x8b, 0x7c, ++ /*88*/ 0x24, 0x20, 0x48, 0x8b, 0x74, 0x24, 0x18, 0x48, ++ /*96*/ 0x8b, 0x54, 0x24, 0x10, 0x48, 0x8b, 0x4c, 0x24, ++ /*104*/0x08, 0x48, 0x8b, 0x04, 0x24, 0x48, 0x89, 0xdc, ++ /*112*/0x48, 0x8b, 0x1c, 0x24, 0x48, 0x83, 0xc4, 0x18, ++ /*120*/0xf2, 0x41, 0xff, 0xe3 }; ++ static struct pattern pat_fxsave = { ++ "amd64-fxsave", 124, {{ 0,63 }, { 67,57 }, { 124,0 }} }; ++ + if ((VG_(strncmp)(obj->name, "/lib/ld", 7) != 0) && +- (VG_(strncmp)(obj->name, "/lib64/ld", 9) != 0)) return False; +- return check_code(obj, code, &pat); ++ (VG_(strncmp)(obj->name, "/lib64/ld", 9) != 0) && ++ (VG_(strncmp)(obj->name, "/usr/lib/ld", 11) != 0) && ++ (VG_(strncmp)(obj->name, "/usr/lib64/ld", 13) != 0)) return False; ++ Bool pat_p = check_code(obj, code, &pat); ++ Bool pat_xsavec_p = check_code(obj, code_xsavec, &pat_xsavec); ++ Bool pat_xsave_p = check_code(obj, code_xsave, &pat_xsave); ++ Bool pat_fxsave_p = check_code(obj, code_fxsave, &pat_fxsave); ++ if (pat_p || pat_xsavec_p || pat_xsave_p || pat_fxsave_p) return True; + #endif + + /* For other platforms, no patterns known */ +@@ -254,7 +351,7 @@ obj_node* new_obj_node(DebugInfo* di, obj_node* next) + i++; + } + +- if (runtime_resolve_addr == 0) search_runtime_resolve(obj); ++ if (runtime_resolve_addrs == 0) search_runtime_resolve(obj); + + return obj; + } +@@ -490,6 +587,7 @@ fn_node* CLG_(get_fn_node)(BB* bb) + DebugInfo* di; + UInt line_num; + fn_node* fn; ++ Int i; + + /* fn from debug info is idempotent for a BB */ + if (bb->fn) return bb->fn; +@@ -538,12 +636,14 @@ fn_node* CLG_(get_fn_node)(BB* bb) + } + if (0 == VG_(strcmp)(fnname, "_exit") && !exit_bb) + exit_bb = bb; +- +- if (runtime_resolve_addr && +- (bb_addr(bb) >= runtime_resolve_addr) && +- (bb_addr(bb) < runtime_resolve_addr + runtime_resolve_length)) { +- /* BB in runtime_resolve found by code check; use this name */ +- fnname = "_dl_runtime_resolve"; ++ ++ for (i = 0; i < runtime_resolve_addrs; i++) { ++ if ((bb_addr(bb) >= runtime_resolve_addr[i]) && ++ (bb_addr(bb) < runtime_resolve_addr[i] + runtime_resolve_length[i])) { ++ /* BB in runtime_resolve found by code check; use this name */ ++ fnname = "_dl_runtime_resolve"; ++ break; ++ } + } + + /* get fn_node struct for this function */ diff --git a/SOURCES/valgrind-3.16.1-epoll.patch b/SOURCES/valgrind-3.16.1-epoll.patch new file mode 100644 index 0000000..c6a0411 --- /dev/null +++ b/SOURCES/valgrind-3.16.1-epoll.patch @@ -0,0 +1,117 @@ +commit f326d68d762edf4b0e9604daa446b6f8ca25725a +Author: Mark Wielaard +Date: Sun Jul 26 22:40:22 2020 +0200 + + epoll_ctl warns for uninitialized padding on non-amd64 64bit arches + + struct vki_epoll_event is packed on x86_64, but not on other 64bit + arches. This means that on 64bit arches there can be padding in the + epoll_event struct. Seperately the data field is only used by user + space (which might not set the data field if it doesn't need to). + + Only check the events field on epoll_ctl. But assume both events + and data are both written to by epoll_[p]wait (exclude padding). + + https://bugs.kde.org/show_bug.cgi?id=422623 + +diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c +index 5b5b7eee6..929a4d9af 100644 +--- a/coregrind/m_syswrap/syswrap-linux.c ++++ b/coregrind/m_syswrap/syswrap-linux.c +@@ -2099,8 +2099,29 @@ PRE(sys_epoll_ctl) + SARG1, ( ARG2<3 ? epoll_ctl_s[ARG2] : "?" ), SARG3, ARG4); + PRE_REG_READ4(long, "epoll_ctl", + int, epfd, int, op, int, fd, struct vki_epoll_event *, event); +- if (ARG2 != VKI_EPOLL_CTL_DEL) +- PRE_MEM_READ( "epoll_ctl(event)", ARG4, sizeof(struct vki_epoll_event) ); ++ if (ARG2 != VKI_EPOLL_CTL_DEL) { ++ /* Just check the events field, the data field is for user space and ++ unused by the kernel. */ ++ struct vki_epoll_event *event = (struct vki_epoll_event *) ARG4; ++ PRE_MEM_READ( "epoll_ctl(event)", (Addr) &event->events, ++ sizeof(__vki_u32) ); ++ } ++} ++ ++/* RES event records have been written (exclude padding). */ ++static void epoll_post_helper ( ThreadId tid, SyscallArgs* arrghs, ++ SyscallStatus* status ) ++{ ++ vg_assert(SUCCESS); ++ if (RES > 0) { ++ Int i; ++ struct vki_epoll_event **events = (struct vki_epoll_event**)(Addr)ARG2; ++ for (i = 0; i < RES; i++) { ++ /* Assume both events and data are set (data is user space only). */ ++ POST_FIELD_WRITE(events[i]->events); ++ POST_FIELD_WRITE(events[i]->data); ++ } ++ } + } + + PRE(sys_epoll_wait) +@@ -2111,13 +2132,12 @@ PRE(sys_epoll_wait) + PRE_REG_READ4(long, "epoll_wait", + int, epfd, struct vki_epoll_event *, events, + int, maxevents, int, timeout); ++ /* Assume all (maxevents) events records should be (fully) writable. */ + PRE_MEM_WRITE( "epoll_wait(events)", ARG2, sizeof(struct vki_epoll_event)*ARG3); + } + POST(sys_epoll_wait) + { +- vg_assert(SUCCESS); +- if (RES > 0) +- POST_MEM_WRITE( ARG2, sizeof(struct vki_epoll_event)*RES ) ; ++ epoll_post_helper (tid, arrghs, status); + } + + PRE(sys_epoll_pwait) +@@ -2130,15 +2150,14 @@ PRE(sys_epoll_pwait) + int, epfd, struct vki_epoll_event *, events, + int, maxevents, int, timeout, vki_sigset_t *, sigmask, + vki_size_t, sigsetsize); ++ /* Assume all (maxevents) events records should be (fully) writable. */ + PRE_MEM_WRITE( "epoll_pwait(events)", ARG2, sizeof(struct vki_epoll_event)*ARG3); + if (ARG5) + PRE_MEM_READ( "epoll_pwait(sigmask)", ARG5, sizeof(vki_sigset_t) ); + } + POST(sys_epoll_pwait) + { +- vg_assert(SUCCESS); +- if (RES > 0) +- POST_MEM_WRITE( ARG2, sizeof(struct vki_epoll_event)*RES ) ; ++ epoll_post_helper (tid, arrghs, status); + } + + PRE(sys_eventfd) +commit b74f9f23c8758c77367f18368ea95baa858544cb +Author: Mark Wielaard +Date: Tue Aug 18 23:58:55 2020 +0200 + + Fix epoll_ctl setting of array event and data fields. + + Fix for https://bugs.kde.org/show_bug.cgi?id=422623 in commit ecf5ba119 + epoll_ctl warns for uninitialized padding on non-amd64 64bit arches + contained a bug. A pointer to an array is not a pointer to a pointer to + an array. Found by a Fedora user: + https://bugzilla.redhat.com/show_bug.cgi?id=1844778#c10 + +diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c +index 0850487e9..3f488795a 100644 +--- a/coregrind/m_syswrap/syswrap-linux.c ++++ b/coregrind/m_syswrap/syswrap-linux.c +@@ -2115,11 +2115,11 @@ static void epoll_post_helper ( ThreadId tid, SyscallArgs* arrghs, + vg_assert(SUCCESS); + if (RES > 0) { + Int i; +- struct vki_epoll_event **events = (struct vki_epoll_event**)(Addr)ARG2; ++ struct vki_epoll_event *events = (struct vki_epoll_event*)(Addr)ARG2; + for (i = 0; i < RES; i++) { + /* Assume both events and data are set (data is user space only). */ +- POST_FIELD_WRITE(events[i]->events); +- POST_FIELD_WRITE(events[i]->data); ++ POST_FIELD_WRITE(events[i].events); ++ POST_FIELD_WRITE(events[i].data); + } + } + } diff --git a/SOURCES/valgrind-3.16.1-sched_getsetattr.patch b/SOURCES/valgrind-3.16.1-sched_getsetattr.patch new file mode 100644 index 0000000..b95267d --- /dev/null +++ b/SOURCES/valgrind-3.16.1-sched_getsetattr.patch @@ -0,0 +1,201 @@ +commit a53adb79711ccfc76a4ee32b20253045cdab55c7 +Author: Mark Wielaard +Date: Mon Jul 27 16:36:17 2020 +0200 + + Handle linux syscalls sched_getattr and sched_setattr + + The only "special" thing about these syscalls is that the given + struct sched_attr determines its own size for future expansion. + + Original fix by "ISHIKAWA,chiaki" + + https://bugs.kde.org/show_bug.cgi?id=369029 + +diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h +index cdc73c1e6..eb0b320ca 100644 +--- a/coregrind/m_syswrap/priv_syswrap-linux.h ++++ b/coregrind/m_syswrap/priv_syswrap-linux.h +@@ -227,6 +227,8 @@ DECL_TEMPLATE(linux, sys_fremovexattr); + // syscalls. + DECL_TEMPLATE(linux, sys_sched_setparam); + DECL_TEMPLATE(linux, sys_sched_getparam); ++DECL_TEMPLATE(linux, sys_sched_setattr); ++DECL_TEMPLATE(linux, sys_sched_getattr); + DECL_TEMPLATE(linux, sys_sched_setscheduler); + DECL_TEMPLATE(linux, sys_sched_getscheduler); + DECL_TEMPLATE(linux, sys_sched_yield); +diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c +index 28d90135a..d6f3eb910 100644 +--- a/coregrind/m_syswrap/syswrap-amd64-linux.c ++++ b/coregrind/m_syswrap/syswrap-amd64-linux.c +@@ -846,9 +846,8 @@ static SyscallTableEntry syscall_table[] = { + LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 311 + LINX_(__NR_kcmp, sys_kcmp), // 312 + LINX_(__NR_finit_module, sys_finit_module), // 313 +-// LIN__(__NR_sched_setattr, sys_ni_syscall), // 314 +- +-// LIN__(__NR_sched_getattr, sys_ni_syscall), // 315 ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 314 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 315 + LINX_(__NR_renameat2, sys_renameat2), // 316 + // LIN__(__NR_seccomp, sys_ni_syscall), // 317 + LINXY(__NR_getrandom, sys_getrandom), // 318 +diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c +index 579542785..70700e53f 100644 +--- a/coregrind/m_syswrap/syswrap-arm-linux.c ++++ b/coregrind/m_syswrap/syswrap-arm-linux.c +@@ -1009,6 +1009,8 @@ static SyscallTableEntry syscall_main_table[] = { + LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 376 + LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 377 + ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 380 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 381 + LINX_(__NR_renameat2, sys_renameat2), // 382 + + LINXY(__NR_getrandom, sys_getrandom), // 384 +diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c +index 81e01456f..acca02442 100644 +--- a/coregrind/m_syswrap/syswrap-arm64-linux.c ++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c +@@ -806,8 +806,8 @@ static SyscallTableEntry syscall_main_table[] = { + LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 271 + LINX_(__NR_kcmp, sys_kcmp), // 272 + LINX_(__NR_finit_module, sys_finit_module), // 273 +- // (__NR_sched_setattr, sys_ni_syscall), // 274 +- // (__NR_sched_getattr, sys_ni_syscall), // 275 ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 274 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 275 + LINX_(__NR_renameat2, sys_renameat2), // 276 + // (__NR_seccomp, sys_ni_syscall), // 277 + LINXY(__NR_getrandom, sys_getrandom), // 278 +diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c +index 5b5b7eee6..56be3032d 100644 +--- a/coregrind/m_syswrap/syswrap-linux.c ++++ b/coregrind/m_syswrap/syswrap-linux.c +@@ -3677,6 +3677,41 @@ POST(sys_sched_getparam) + POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) ); + } + ++PRE(sys_sched_setattr) ++{ ++ struct vki_sched_attr *attr; ++ PRINT("sched_setattr ( %ld, %#" FMT_REGWORD "x, %#" ++ FMT_REGWORD "x )", SARG1, ARG2, ARG3 ); ++ PRE_REG_READ3(long, "sched_setattr", ++ vki_pid_t, pid, struct sched_attr *, p, unsigned int, flags); ++ /* We need to be able to read at least the size field. */ ++ PRE_MEM_READ( "sched_setattr(attr->size)", ARG2, sizeof(vki_uint32_t) ); ++ attr = (struct vki_sched_attr *)(Addr)ARG2; ++ if (ML_(safe_to_deref)(attr,sizeof(vki_uint32_t))) ++ PRE_MEM_READ( "sched_setattr(attr)", (Addr)attr, attr->size); ++} ++ ++PRE(sys_sched_getattr) ++{ ++ struct vki_sched_attr *attr; ++ PRINT("sched_getattr ( %ld, %#" FMT_REGWORD "x, %ld, %#" ++ FMT_REGWORD "x )", SARG1, ARG2, ARG3, ARG4 ); ++ PRE_REG_READ4(long, "sched_getattr", ++ vki_pid_t, pid, struct sched_attr *, p, ++ unsigned int, size, unsigned int, flags); ++ /* We need to be able to read at least the size field. */ ++ PRE_MEM_READ( "sched_setattr(attr->size)", ARG2, sizeof(vki_uint32_t) ); ++ /* And the kernel needs to be able to write to the whole struct size. */ ++ attr = (struct vki_sched_attr *)(Addr)ARG2; ++ if (ML_(safe_to_deref)(attr,sizeof(vki_uint32_t))) ++ PRE_MEM_WRITE( "sched_setattr(attr)", (Addr)attr, attr->size); ++} ++POST(sys_sched_getattr) ++{ ++ struct vki_sched_attr *attr = (struct vki_sched_attr *)(Addr)ARG2; ++ POST_MEM_WRITE( (Addr)attr, attr->size ); ++} ++ + PRE(sys_sched_getscheduler) + { + PRINT("sys_sched_getscheduler ( %ld )", SARG1); +diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c +index eed12a1bc..c19cb9e0e 100644 +--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c ++++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c +@@ -1016,6 +1016,9 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351 + LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352 + ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 355 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 356 ++ + LINXY(__NR_getrandom, sys_getrandom), // 359 + LINXY(__NR_memfd_create, sys_memfd_create), // 360 + +diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c +index d58200b49..b6422a765 100644 +--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c ++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c +@@ -998,6 +998,8 @@ static SyscallTableEntry syscall_table[] = { + LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351 + LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352 + ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 355 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 356 + LINX_(__NR_renameat2, sys_renameat2), // 357 + + LINXY(__NR_getrandom, sys_getrandom), // 359 +diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c +index a0a330aa2..3427fee16 100644 +--- a/coregrind/m_syswrap/syswrap-s390x-linux.c ++++ b/coregrind/m_syswrap/syswrap-s390x-linux.c +@@ -825,8 +825,8 @@ static SyscallTableEntry syscall_table[] = { + LINX_(__NR_kcmp, sys_kcmp), // 343 + // ?????(__NR_finit_module, ), // 344 + +-// ?????(__NR_sched_setattr, ), // 345 +-// ?????(__NR_sched_getattr, ), // 346 ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 345 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 346 + LINX_(__NR_renameat2, sys_renameat2), // 347 + // ?????(__NR_seccomp, ), // 348 + LINXY(__NR_getrandom, sys_getrandom), // 349 +diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c +index 332ed0bf2..b59d96f37 100644 +--- a/coregrind/m_syswrap/syswrap-x86-linux.c ++++ b/coregrind/m_syswrap/syswrap-x86-linux.c +@@ -1580,8 +1580,8 @@ static SyscallTableEntry syscall_table[] = { + LINX_(__NR_kcmp, sys_kcmp), // 349 + + // LIN__(__NR_finit_module, sys_ni_syscall), // 350 +-// LIN__(__NR_sched_setattr, sys_ni_syscall), // 351 +-// LIN__(__NR_sched_getattr, sys_ni_syscall), // 352 ++ LINX_(__NR_sched_setattr, sys_sched_setattr), // 351 ++ LINXY(__NR_sched_getattr, sys_sched_getattr), // 352 + LINX_(__NR_renameat2, sys_renameat2), // 353 + // LIN__(__NR_seccomp, sys_ni_syscall), // 354 + +diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h +index 75b583165..ef93b9258 100644 +--- a/include/vki/vki-linux.h ++++ b/include/vki/vki-linux.h +@@ -410,6 +410,23 @@ struct vki_sched_param { + int sched_priority; + }; + ++struct vki_sched_attr { ++ vki_uint32_t size; ++ vki_uint32_t sched_policy; ++ vki_uint64_t sched_flags; ++ ++ /* SCHED_NORMAL, SCHED_BATCH */ ++ vki_int32_t sched_nice; ++ ++ /* SCHED_FIFO, SCHED_RR */ ++ vki_uint32_t sched_priority; ++ ++ /* SCHED_DEADLINE */ ++ vki_uint64_t sched_runtime; ++ vki_uint64_t sched_deadline; ++ vki_uint64_t sched_period; ++}; ++ + #define VKI_TASK_COMM_LEN 16 + + //---------------------------------------------------------------------- diff --git a/SOURCES/valgrind-3.9.0-cachegrind-improvements.patch b/SOURCES/valgrind-3.9.0-cachegrind-improvements.patch new file mode 100644 index 0000000..c2680b1 --- /dev/null +++ b/SOURCES/valgrind-3.9.0-cachegrind-improvements.patch @@ -0,0 +1,54 @@ +--- valgrind-3.8.1/cachegrind/cg_sim.c.jj 2011-10-26 23:24:32.000000000 +0200 ++++ valgrind-3.8.1/cachegrind/cg_sim.c 2011-12-09 17:31:19.256023683 +0100 +@@ -42,27 +42,30 @@ typedef struct { + Int size; /* bytes */ + Int assoc; + Int line_size; /* bytes */ +- Int sets; + Int sets_min_1; + Int line_size_bits; + Int tag_shift; +- HChar desc_line[128]; /* large enough */ + UWord* tags; +-} cache_t2; ++ HChar desc_line[128]; ++} cache_t2 ++#ifdef __GNUC__ ++__attribute__ ((aligned (8 * sizeof (Int)))) ++#endif ++; + + /* By this point, the size/assoc/line_size has been checked. */ + static void cachesim_initcache(cache_t config, cache_t2* c) + { +- Int i; ++ Int sets; + + c->size = config.size; + c->assoc = config.assoc; + c->line_size = config.line_size; + +- c->sets = (c->size / c->line_size) / c->assoc; +- c->sets_min_1 = c->sets - 1; ++ sets = (c->size / c->line_size) / c->assoc; ++ c->sets_min_1 = sets - 1; + c->line_size_bits = VG_(log2)(c->line_size); +- c->tag_shift = c->line_size_bits + VG_(log2)(c->sets); ++ c->tag_shift = c->line_size_bits + VG_(log2)(sets); + + if (c->assoc == 1) { + VG_(sprintf)(c->desc_line, "%d B, %d B, direct-mapped", +@@ -72,11 +75,8 @@ static void cachesim_initcache(cache_t c + c->size, c->line_size, c->assoc); + } + +- c->tags = VG_(malloc)("cg.sim.ci.1", +- sizeof(UWord) * c->sets * c->assoc); +- +- for (i = 0; i < c->sets * c->assoc; i++) +- c->tags[i] = 0; ++ c->tags = VG_(calloc)("cg.sim.ci.1", ++ sizeof(UWord), sets * c->assoc); + } + + /* This attribute forces GCC to inline the function, getting rid of a diff --git a/SOURCES/valgrind-3.9.0-helgrind-race-supp.patch b/SOURCES/valgrind-3.9.0-helgrind-race-supp.patch new file mode 100644 index 0000000..759d151 --- /dev/null +++ b/SOURCES/valgrind-3.9.0-helgrind-race-supp.patch @@ -0,0 +1,15 @@ +--- valgrind/glibc-2.34567-NPTL-helgrind.supp.jj 2009-08-19 15:37:48.000000000 +0200 ++++ valgrind/glibc-2.34567-NPTL-helgrind.supp 2009-10-21 16:46:31.000000000 +0200 +@@ -88,6 +88,12 @@ + obj:*/lib*/libpthread-2.*so* + } + { ++ helgrind-glibc2X-102a ++ Helgrind:Race ++ fun:mythread_wrapper ++ obj:*vgpreload_helgrind*.so ++} ++{ + helgrind-glibc2X-103 + Helgrind:Race + fun:pthread_cond_*@@GLIBC_2.* diff --git a/SOURCES/valgrind-3.9.0-ldso-supp.patch b/SOURCES/valgrind-3.9.0-ldso-supp.patch new file mode 100644 index 0000000..d7a42c7 --- /dev/null +++ b/SOURCES/valgrind-3.9.0-ldso-supp.patch @@ -0,0 +1,28 @@ +--- valgrind/glibc-2.X.supp.in.jj 2011-10-26 23:24:45.000000000 +0200 ++++ valgrind/glibc-2.X.supp.in 2012-05-07 10:55:20.395942656 +0200 +@@ -124,7 +124,7 @@ + glibc-2.5.x-on-SUSE-10.2-(PPC)-2a + Memcheck:Cond + fun:index +- obj:*ld-@GLIBC_VERSION@.*.so ++ obj:*ld-@GLIBC_VERSION@*.so + } + { + glibc-2.5.x-on-SuSE-10.2-(PPC)-2b +@@ -136,14 +136,14 @@ + glibc-2.5.5-on-SuSE-10.2-(PPC)-2c + Memcheck:Addr4 + fun:index +- obj:*ld-@GLIBC_VERSION@.*.so ++ obj:*ld-@GLIBC_VERSION@*.so + } + { + glibc-2.3.5-on-SuSE-10.1-(PPC)-3 + Memcheck:Addr4 + fun:*wordcopy_fwd_dest_aligned* + fun:mem*cpy +- obj:*lib*@GLIBC_VERSION@.*.so ++ obj:*lib*@GLIBC_VERSION@*.so + } + + { diff --git a/SPECS/valgrind.spec b/SPECS/valgrind.spec new file mode 100644 index 0000000..12fa648 --- /dev/null +++ b/SPECS/valgrind.spec @@ -0,0 +1,1947 @@ +# For RHEL8 we need this before using any scl macro. +%global __python /usr/bin/python3 + +%{?scl:%scl_package valgrind} + +Summary: Tool for finding memory management bugs in programs +Name: %{?scl_prefix}valgrind +Version: 3.16.0 +Release: 6%{?dist} +Epoch: 1 +License: GPLv2+ +URL: http://www.valgrind.org/ + +# Only necessary for RHEL, will be ignored on Fedora + +# Are we building for a Software Collection? +%{?scl:%global is_scl 1} +%{!?scl:%global is_scl 0} + +# We never want the openmpi subpackage when building a software collecton. +# We always want it for fedora. +# We only want it for older rhel. But not s390x for too old rhel. +%if %{is_scl} + %global build_openmpi 0 +%else + %if 0%{?fedora} + %global build_openmpi 1 + %endif + %if 0%{?rhel} + %if 0%{?rhel} > 7 + %global build_openmpi 0 + %else + %ifarch s390x + %global build_openmpi (%{?rhel} > 6) + %else + %global build_openmpi 1 + %endif + %endif + %endif +%endif + +# We only want to build the valgrind-tools-devel package for Fedora proper +# as convenience. But not for DTS or RHEL. +%if %{is_scl} + %global build_tools_devel 0 +%else + %if 0%{?rhel} + %global build_tools_devel 0 + %else + %global build_tools_devel 1 + %endif +%endif + +# Whether to run the full regtest or only a limited set +# The full regtest includes gdb_server integration tests +# and experimental tools. +# Only run full regtests on fedora, but not on older rhel +# or when creating scl, the gdb_server tests might hang. +%if %{is_scl} + %global run_full_regtest 0 +%else + %if 0%{?fedora} + %global run_full_regtest 1 + %endif + %if 0%{?rhel} + %global run_full_regtest (%rhel >= 7) + %endif +%endif + +# Remove any pkgconfig provides for SCL devel packages. +# These should only be provided by the base packages. +%if %{is_scl} +%define __provides_exclude_from ^%{_libdir}/pkgconfig/.*.pc$ +%endif + +# Generating minisymtabs doesn't really work for the staticly linked +# tools. Note (below) that we don't strip the vgpreload libraries at all +# because valgrind might read and need the debuginfo in those (client) +# libraries for better error reporting and sometimes correctly unwinding. +# So those will already have their full symbol table. +%undefine _include_minidebuginfo + +Source0: ftp://sourceware.org/pub/valgrind/valgrind-%{version}.tar.bz2 + +# Needs investigation and pushing upstream +Patch1: valgrind-3.9.0-cachegrind-improvements.patch + +# KDE#211352 - helgrind races in helgrind's own mythread_wrapper +Patch2: valgrind-3.9.0-helgrind-race-supp.patch + +# Make ld.so supressions slightly less specific. +Patch3: valgrind-3.9.0-ldso-supp.patch + +# We want all executables and libraries in libexec instead of lib +# so they are only available for valgrind usage itself and so the +# same directory is used independent of arch. +Patch4: valgrind-3.16.0-pkglibexecdir.patch + +# Add some stack-protector +Patch5: valgrind-3.16.0-some-stack-protector.patch + +# Add some -Wl,z,now. +Patch6: valgrind-3.16.0-some-Wl-z-now.patch + +# KDE#422677 PPC sync instruction L field should only be 2 bits in ISA 3.0 +Patch7: valgrind-3.16.0-ppc-L-field.patch + +# KDE#422715 x86: vex: the `impossible' happened: expr_is_guardable +Patch8: valgrind-3.16.0-387-float.patch + +# KDE#422174 unhandled instruction bytes: 0x48 0xE9 (REX prefix JMP instr) +Patch9: valgrind-3.16.1-REX-prefix-JMP.patch + +# KDE#422623 epoll_ctl warns for uninit padding on non-amd64 64bit arches +Patch10: valgrind-3.16.1-epoll.patch + +# KDE#369029 handle linux syscalls sched_getattr and sched_setattr +Patch11: valgrind-3.16.1-sched_getsetattr.patch + +# KDE#415293 Incorrect call-graph tracking due to new _dl_runtime_resolve* +Patch12: valgrind-3.16.1-dl_runtime_resolve.patch + +BuildRequires: glibc-devel + +%if %{build_openmpi} +BuildRequires: openmpi-devel +%endif + +%if %{run_full_regtest} +BuildRequires: gdb +%endif + +# gdbserver_tests/filter_make_empty uses ps in test +BuildRequires: procps + +# Some testcases require g++ to build +BuildRequires: gcc-c++ + +# check_headers_and_includes uses Getopt::Long +%if 0%{?fedora} +BuildRequires: perl-generators +%endif +BuildRequires: perl(Getopt::Long) + +# We always autoreconf +BuildRequires: automake +BuildRequires: autoconf + +# For make check validating the documentation +BuildRequires: docbook-dtds + +%{?scl:Requires:%scl_runtime} + +# We need to fixup selinux file context when doing a scl build. +# In RHEL6 we might need to fix up the labels even though the +# meta package sets up a fs equivalence. See post. +%if 0%{?rhel} == 6 +%{?scl:Requires(post): /sbin/restorecon} +%endif + +# We could use %%valgrind_arches as defined in redhat-rpm-config +# But that is really for programs using valgrind, it defines the +# set of architectures that valgrind works correctly on. +ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64 + +# Define valarch, the architecture name that valgrind uses +# And only_arch, the configure option to only build for that arch. +%ifarch %{ix86} +%define valarch x86 +%define only_arch --enable-only32bit +%endif +%ifarch x86_64 +%define valarch amd64 +%define only_arch --enable-only64bit +%endif +%ifarch ppc +%define valarch ppc32 +%define only_arch --enable-only32bit +%endif +%ifarch ppc64 +%define valarch ppc64be +%define only_arch --enable-only64bit +%endif +%ifarch ppc64le +%define valarch ppc64le +%define only_arch --enable-only64bit +%endif +%ifarch s390x +%define valarch s390x +%define only_arch --enable-only64bit +%endif +%ifarch armv7hl +%define valarch arm +%define only_arch --enable-only32bit +%endif +%ifarch aarch64 +%define valarch arm64 +%define only_arch --enable-only64bit +%endif + +%description +Valgrind is an instrumentation framework for building dynamic analysis +tools. There are Valgrind tools that can automatically detect many +memory management and threading bugs, and profile your programs in +detail. You can also use Valgrind to build new tools. The Valgrind +distribution currently includes six production-quality tools: a memory +error detector (memcheck, the default tool), two thread error +detectors (helgrind and drd), a cache and branch-prediction profiler +(cachegrind), a call-graph generating cache and branch-prediction +profiler (callgrind), and a heap profiler (massif). + +%package devel +Summary: Development files for valgrind aware programs +Requires: %{?scl_prefix}valgrind = %{epoch}:%{version}-%{release} + +%description devel +Header files and libraries for development of valgrind aware programs. + +%if %{build_tools_devel} +%package tools-devel +Summary: Development files for building valgrind tools. +Requires: %{?scl_prefix}valgrind-devel = %{epoch}:%{version}-%{release} +Provides: %{name}-static = %{epoch}:%{version}-%{release} + +%description tools-devel +Header files and libraries for development of valgrind tools. +%endif + +%if %{build_openmpi} +%package openmpi +Summary: OpenMPI support for valgrind +Requires: %{?scl_prefix}valgrind = %{epoch}:%{version}-%{release} + +%description openmpi +A wrapper library for debugging OpenMPI parallel programs with valgrind. +See the section on Debugging MPI Parallel Programs with Valgrind in the +Valgrind User Manual for details. +%endif + +%prep +%setup -q -n %{?scl:%{pkg_name}}%{!?scl:%{name}}-%{version} + +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 + +# Old rhel gcc doesn't have -fstack-protector-strong. +%if 0%{?fedora} || 0%{?rhel} >= 7 +%patch5 -p1 +%patch6 -p1 +%endif + +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 + +%build + +# Some patches (might) touch Makefile.am or configure.ac files. +# Just always autoreconf so we don't need patches to prebuild files. +./autogen.sh + +# Old openmpi-devel has version depended paths for mpicc. +%if %{build_openmpi} +%if 0%{?fedora} >= 13 || 0%{?rhel} >= 6 +%define mpiccpath %{!?scl:%{_libdir}}%{?scl:%{_root_libdir}}/openmpi/bin/mpicc +%else +%define mpiccpath %{!?scl:%{_libdir}}%{?scl:%{_root_libdir}}/openmpi/*/bin/mpicc +%endif +%else +# We explicitly don't want the libmpi wrapper. So make sure that configure +# doesn't pick some random mpi compiler that happens to be installed. +%define mpiccpath /bin/false +%endif + +# Filter out "hardening" flags that don't make sense for valgrind. +# -fstack-protector just cannot work (valgrind would have to implement +# its own version since it doesn't link with glibc and handles stack +# setup itself). We patch some flags back in just for those helper +# programs where it does make sense. +# +# -Wl,-z,now doesn't make sense for static linked tools +# and would prevent using the vgpreload libraries on binaries that +# don't link themselves against libraries (like pthread) which symbols +# are needed (but only if the inferior itself would use them). +# +# -O2 doesn't work for the vgpreload libraries either. They are meant +# to not be optimized to show precisely what happened. valgrind adds +# -O2 itself wherever suitable. +# +# On ppc64[be] -fexceptions is troublesome. +# It might cause an undefined reference to `_Unwind_Resume' +# in libcoregrind-ppc64be-linux.a(libcoregrind_ppc64be_linux_a-readelf.o): +# In function `read_elf_symtab__ppc64be_linux. +# +# Also disable strict symbol checks because the vg_preload library +# will use hidden/undefined symbols from glibc like __libc_freeres. +%undefine _strict_symbol_defs_build + +%ifarch ppc64 +CFLAGS="`echo " %{optflags} " | sed 's/ -fstack-protector\([-a-z]*\) / / g;s/ -O2 / /g;s/ -fexceptions / /g;'`" +%else +CFLAGS="`echo " %{optflags} " | sed 's/ -fstack-protector\([-a-z]*\) / / g;s/ -O2 / /g;'`" +%endif +export CFLAGS + +# Older Fedora/RHEL only had __global_ldflags. +# Even older didn't even have that (so we don't need to scrub them). +%if 0%{?build_ldflags:1} +LDFLAGS="`echo " %{build_ldflags} " | sed 's/ -Wl,-z,now / / g;'`" +%else +%if 0%{?__global_ldflags:1} +LDFLAGS="`echo " %{__global_ldflags} " | sed 's/ -Wl,-z,now / / g;'`" +%endif +%endif +export LDFLAGS + +%configure \ + --with-mpicc=%{mpiccpath} \ + %{only_arch} \ + GDB=%{_bindir}/gdb + +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT install +mkdir docs/installed +mv $RPM_BUILD_ROOT%{_datadir}/doc/valgrind/* docs/installed/ +rm -f docs/installed/*.ps + +# We want the MPI wrapper installed under the openmpi libdir so the script +# generating the MPI library requires picks them up and sets up the right +# openmpi libmpi.so requires. Install symlinks in the original/upstream +# location for backwards compatibility. +%if %{build_openmpi} +pushd $RPM_BUILD_ROOT%{_libdir} +mkdir -p openmpi/valgrind +cd valgrind +mv libmpiwrap-%{valarch}-linux.so ../openmpi/valgrind/ +ln -s ../openmpi/valgrind/libmpiwrap-%{valarch}-linux.so +popd +%endif + +%if %{build_tools_devel} +%ifarch %{ix86} x86_64 +# To avoid multilib clashes in between i?86 and x86_64, +# tweak installed a little bit. +for i in HAVE_PTHREAD_CREATE_GLIBC_2_0 HAVE_PTRACE_GETREGS HAVE_AS_AMD64_FXSAVE64; do + sed -i -e 's,^\(#define '$i' 1\|/\* #undef '$i' \*/\)$,#ifdef __x86_64__\n# define '$i' 1\n#endif,' \ + $RPM_BUILD_ROOT%{_includedir}/valgrind/config.h +done +%endif +%else +# Remove files we aren't going to package. +# See tools-devel files. +rm $RPM_BUILD_ROOT%{_includedir}/valgrind/config.h +rm $RPM_BUILD_ROOT%{_includedir}/valgrind/libvex*h +rm $RPM_BUILD_ROOT%{_includedir}/valgrind/pub_tool_*h +rm -rf $RPM_BUILD_ROOT%{_includedir}/valgrind/vki +rm $RPM_BUILD_ROOT%{_libdir}/valgrind/*.a +%endif + +# We don't want debuginfo generated for the vgpreload libraries. +# Turn off execute bit so they aren't included in the debuginfo.list. +# We'll turn the execute bit on again in %%files. +chmod 644 $RPM_BUILD_ROOT%{_libexecdir}/valgrind/vgpreload*-%{valarch}-*so + +%check +# Make sure some info about the system is in the build.log +# Add || true because rpm on copr EPEL6 acts weirdly and we don't want +# to break the build. +uname -a +rpm -q glibc gcc binutils || true +%if %{run_full_regtest} +rpm -q gdb || true +%endif + +LD_SHOW_AUXV=1 /bin/true +cat /proc/cpuinfo + +# Make sure a basic binary runs. There should be no errors. +./vg-in-place --error-exitcode=1 /bin/true --help + +# Build the test files with the software collection compiler if available. +%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} +# Make sure no extra CFLAGS, CXXFLAGS or LDFLAGS leak through, +# the testsuite sets all flags necessary. See also configure above. +make %{?_smp_mflags} CFLAGS="" CXXFLAGS="" LDFLAGS="" check + +# Workaround https://bugzilla.redhat.com/show_bug.cgi?id=1434601 +# for gdbserver tests. +export PYTHONCOERCECLOCALE=0 + +echo ===============TESTING=================== +%if %{run_full_regtest} + make regtest || : +%else + make nonexp-regtest || : +%endif + +# Make sure test failures show up in build.log +# Gather up the diffs (at most the first 20 lines for each one) +MAX_LINES=20 +diff_files=`find gdbserver_tests */tests -name '*.diff*' | sort` +if [ z"$diff_files" = z ] ; then + echo "Congratulations, all tests passed!" >> diffs +else + for i in $diff_files ; do + echo "=================================================" >> diffs + echo $i >> diffs + echo "=================================================" >> diffs + if [ `wc -l < $i` -le $MAX_LINES ] ; then + cat $i >> diffs + else + head -n $MAX_LINES $i >> diffs + echo "" >> diffs + fi + done +fi +cat diffs +echo ===============END TESTING=============== + +%files +%doc COPYING NEWS README_* +%doc docs/installed/html docs/installed/*.pdf +%{_bindir}/* +%dir %{_libexecdir}/valgrind +# Install everything in the libdir except the .so. +# The vgpreload so files might need file mode adjustment. +%{_libexecdir}/valgrind/*[^o] +# Turn on executable bit again for vgpreload libraries. +# Was disabled in %%install to prevent debuginfo stripping. +%attr(0755,root,root) %{_libexecdir}/valgrind/vgpreload*-%{valarch}-*so +%{_mandir}/man1/* + +%files devel +%dir %{_includedir}/valgrind +%{_includedir}/valgrind/valgrind.h +%{_includedir}/valgrind/callgrind.h +%{_includedir}/valgrind/drd.h +%{_includedir}/valgrind/helgrind.h +%{_includedir}/valgrind/memcheck.h +%{_libdir}/pkgconfig/valgrind.pc + +%if %{build_tools_devel} +%files tools-devel +%{_includedir}/valgrind/config.h +%{_includedir}/valgrind/libvex*h +%{_includedir}/valgrind/pub_tool_*h +%{_includedir}/valgrind/vki +%dir %{_libdir}/valgrind +%{_libdir}/valgrind/*.a +%endif + +%if %{build_openmpi} +%files openmpi +%dir %{_libdir}/valgrind +%{_libdir}/openmpi/valgrind/libmpiwrap*.so +%{_libdir}/valgrind/libmpiwrap*.so +%endif + +%if 0%{?rhel} == 6 +%post +# There is a bug in rpm (rhbz#214737) that might cause post to be run +# even thought the binary isn't installed when installing two multilib +# versions at the same time. +if [ -x %{_bindir}/valgrind ]; then +# On RHEL6 the fs equivalency should be setup by the devtoolset meta +# package, but because of a rpm bug (rhbz#924044) it might not work. +%{?scl:/sbin/restorecon %{_bindir}/valgrind}%{!?scl:true} +fi +%endif + +%changelog +* Thu Jul 29 2021 Mark Wielaard - 3.16.0-6 +- Use __provides_exclude_from instead of filter_from_provides + +* Thu Jun 29 2021 Mark Wielaard - 3.16.0-5 +- Filter out pkgconfig provides + +* Wed Oct 21 2020 Mark Wielaard - 3.16.0-4 +- Add valgrind-3.16.1-REX-prefix-JMP.patch +- Add valgrind-3.16.1-epoll.patch +- Add valgrind-3.16.1-sched_getsetattr.patch +- Add valgrind-3.16.1-dl_runtime_resolve.patch + +* Wed Jun 24 2020 Mark Wielaard - 3.16.0-3 +- Add valgrind-3.16.0-ppc-L-field.patch +- Add valgrind-3.16.0-387-float.patch + +* Thu May 28 2020 Mark Wielaard - 3.16.0-2 +- Apply stack-protector and -Wl,z,now patches. + +* Wed May 27 2020 Mark Wielaard - 3.16.0-1 +- Update to upstream valgrind 3.16.0 final. + +* Tue May 19 2020 Mark Wielaard - 3.16.0-0.4.RC2 +- Add docbook-dtds to BuildRequires. + +* Tue May 19 2020 Mark Wielaard - 3.16.0-0.3.RC2 +- Update to upstream 3.16.0 RC2 + +* Fri May 1 2020 Mark Wielaard - 3.16.0-0.2.GIT +- Update to upstream 3.16.0 branch point (commit 55cdb7c4e) + +* Fri Apr 17 2020 Mark Wielaard - 3.16.0-0.1.GIT +- Update to upstream 3.16.0-GIT (commit 52d02fe23) + - Drop all streamed patches. + +* Wed Mar 4 2020 Mark Wielaard - 3.15.0-20 +- Add valgrind-3.15.0-z15.patch + +* Fri Feb 28 2020 Mark Wielaard - 3.15.0-19 +- Add valgrind-3.15.0-time64.patch +- Add valgrind-3.15.0-arm-preadv2-pwritev2.patch +- Add valgrind-3.15.0-avx_estimate_insn-test.patch +- Add valgrind-3.15.0-gcc-10-x86-amd64-asm-test.patch + +* Fri Feb 14 2020 Mark Wielaard - 3.15.0-18 +- Add valgrind-3.15.0-ppc64-sigframe.patch + +* Thu Feb 13 2020 Mark Wielaard - 3.15.0-17 +- Add valgrind-3.15.0-glibc-dtv-supp.patch + +* Wed Jan 29 2020 Mark Wielaard - 3.15.0-16 +- Add valgrind-3.15.0-s390x-HRcVec128.patch + +* Wed Jan 29 2020 Mark Wielaard - 3.15.0-15 +- Don't use valgrind-3.15.0-ptrace-siginfo.patch on ppc64[le] +- Add valgrind-3.15.0-s390x-compare-and-signal.patch + +* Fri Jan 24 2020 Mark Wielaard - 3.15.0-14 +- Add valgrind-3.15.0-gcc-10-i686-asm-test.patch +- Add valgrind-3.15.0-gcc10-ppc64-asm-constraints.patch + +* Thu Jan 23 2020 Mark Wielaard - 3.15.0-13 +- Add valgrind-3.15.0-gcc-10-typedef-enum.patch + +* Mon Sep 23 2019 Mark Wielaard - 3.15.0-12 +- Add valgrind-3.15.0-ptrace-siginfo.patch + +* Mon Aug 5 2019 Mark Wielaard - 3.15.0-11 +- Add valgrind-3.15.0-preadv2-pwritev2.patch +- Add valgrind-3.15.0-arm-membarrier.patch +- Add valgrind-3.15.0-z14-misc.patch + +* Sat Jul 27 2019 Fedora Release Engineering - 1:3.15.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed May 29 2019 Mark Wielaard - 3.15.0-9 +- Add valgrind-3.15.0-pkey.patch + +* Tue May 28 2019 Mark Wielaard - 3.15.0-8 +- Update valgrind-3.15.0-copy_file_range.patch. +- Add valgrind-3.15.0-avx-rdrand-f16c.patch. + +* Fri May 24 2019 Mark Wielaard - 3.15.0-7 +- Update valgrind-3.15.0-some-stack-protector.patch to include getoff. +- Add valgrind-3.15.0-some-Wl-z-now.patch + +* Fri May 24 2019 Mark Wielaard - 3.15.0-6 +- Add valgrind-3.15.0-s390x-wrap-drd.patch + +* Mon May 20 2019 Mark Wielaard - 3.15.0-5 +- Add valgrind-3.15.0-exp-sgcheck-no-aarch64.patch +- Add valgrind-3.15.0-scalar-arm64.patch +- Add valgrind-3.15.0-scalar-x86.patch + +* Tue May 7 2019 Mark Wielaard - 3.15.0-4 +- Add valgrind-3.15.0-arm64-ld-stpcpy.patch + +* Sun May 5 2019 Mark Wielaard - 3.15.0-3 +- Add valgrind-3.15.0-copy_file_range.patch + +* Thu Apr 25 2019 Mark Wielaard - 3.15.0-2 +- gdb has been fixed on fedora, run full regtests again. +- Add valgrind-3.15.0-ppc64-filter_gdb.patch + +* Tue Apr 16 2019 Mark Wielaard - 3.15.0-1 +- On ppc64[be] -fexceptions is troublesome. +- valgrind-3.15.0 final + Remove upstreamed patches + - valgrind-3.15.0-arm64-Ity_F16.patch + - valgrind-3.15.0-filter-libc-futex.patch + - valgrind-3.15.0-mmap-32bit.patch + +* Sun Apr 14 2019 Mark Wielaard - 3.15.0-0.8.RC2 +- Adding of stack-protector flag should only be done with newer gcc. +- Older rpm macros didn't provide build_ldflags. +- Add valgrind-3.15.0-arm64-Ity_F16.patch + +* Sun Apr 14 2019 Mark Wielaard - 3.15.0-0.7.RC2 +- Add valgrind-3.15.0-some-stack-protector.patch + +* Sat Apr 13 2019 Mark Wielaard - 3.15.0-0.6.RC2 +- Pass through most (hardening) flags, except -O2, -fstack-protector + and -Wl,-z,now. + +* Fri Apr 12 2019 Mark Wielaard - 3.15.0-0.5.RC2 +- No openmpi support on old s390x rhel. +- Disable s390x z13 support on rhel6 (too old binutils). +- Use an explicit ExclusiveArch, don't rely on %%valgrind_arches. +- Drop close_fds, it is no longer needed. +- Include any gdbserver_tests diffs for failing regtest. + +* Thu Apr 11 2019 Mark Wielaard - 3.15.0-0.4.RC2 +- Update to 3.15.0.RC2. +- Drop upstreamed patches: + - valgrind-3.15.0-s390x-get-startregs-constraint.patch + - valgrind-3.15.0-missing-a-c.patch + - valgrind-3.15.0-libstdc++-supp.patch + - valgrind-3.15.0-dhat-x86.patch + - valgrind-3.15.0-gdb-output1.patch + - valgrind-3.15.0-gdb-output2.patch +- Update valgrind-3.15.0-mmap-32bit.patch to upstream version. +- gdb on f30 and rawhide is currently broken, don't run_full_regtest. +- Any glibc-devel version is. +- Drop rhel5 special case for tools-devel. +- Use /bin/true --help as sanity test. + +* Wed Apr 10 2019 Mark Wielaard - 3.15.0-0.3.RC1 +- Enable full regtest on all fedora arches. +- Make sure that patched a.c is not newer than cgout-test. +- Update valgrind-3.15.0-gdb-output1.patch to upstream version. +- Add valgrind-3.15.0-filter-libc-futex.patch. +- Add valgrind-3.15.0-mmap-32bit.patch. + +* Tue Apr 9 2019 Mark Wielaard - 3.15.0-0.2.RC1 +- Add valgrind-3.15.0-s390x-get-startregs-constraint.patch +- Add valgrind-3.15.0-missing-a-c.patch +- Add valgrind-3.15.0-libstdc++-supp.patch +- Add valgrind-3.15.0-dhat-x86.patch +- Add valgrind-3.15.0-gdb-output1.patch +- Add valgrind-3.15.0-gdb-output2.patch + +* Mon Apr 8 2019 Mark Wielaard - 3.15.0-0.1.RC1 +- Remove patches to prebuild files and always ./autogen.sh. +- Only ever build primary arch. Put tools under libexec. +- Update to upstream 3.15.0-RC1. +- Drop all upstreamed patches. + +* Mon Mar 4 2019 Mark Wielaard - 3.14.0-16 +- Add valgrind-3.14.0-gettid.patch + +* Mon Mar 4 2019 Mark Wielaard - 3.14.0-15 +- Add valgrind-3.14.0-ppc64-quotactl.patch + +* Thu Feb 21 2019 Mark Wielaard - 3.14.0-14 +- Add valgrind-3.14.0-ppc-subfe.patch + +* Thu Feb 14 2019 Orion Poplawski - 1:3.14.0-13 +- Rebuild for openmpi 3.1.3 + +* Sun Feb 03 2019 Fedora Release Engineering - 1:3.14.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 24 2019 Mark Wielaard - 3.14.0-11 +- Add valgrind-3.14.0-s390x-vec-facility-bit.patch. + +* Wed Jan 9 2019 Mark Wielaard - 3.14.0-10 +- Add valgrind-3.14.0-rsp-clobber.patch +- Add valgrind-3.14.0-subrange_type-count.patch + +* Mon Dec 31 2018 Mark Wielaard - 3.14.0-9 +- Add valgrind-3.14.0-vbit-test-sec.patch +- Add valgrind-3.14.0-x86-Iop_Sar64.patch +- Add valgrind-3.14.0-power9-addex.patch + +* Thu Dec 20 2018 Mark Wielaard - 3.14.0-8 +- Update valgrind-3.14.0-jm-vmx-constraints.patch for ppc64. +- Show all diff files in check, not just the main/default one. + +* Fri Dec 14 2018 Mark Wielaard - 3.14.0-7 +- Add valgrind-3.14.0-arm64-ptrace-traceme.patch +- Add valgrind-3.14.0-mc_translate-vecret.patch + +* Wed Dec 12 2018 Mark Wielaard - 3.14.0-6 +- Add valgrind-3.14.0-final_tidyup.patch +- Add valgrind-3.14.0-ppc64-ldbrx.patch +- Add valgrind-3.14.0-ppc64-unaligned-words.patch +- Add valgrind-3.14.0-ppc64-lxvd2x.patch +- Add valgrind-3.14.0-ppc64-unaligned-vecs.patch +- Add valgrind-3.14.0-ppc64-lxvb16x.patch +- Add valgrind-3.14.0-set_AV_CR6.patch +- Add valgrind-3.14.0-undef_malloc_args.patch +- Add valgrind-3.14.0-jm-vmx-constraints.patch +- Add valgrind-3.14.0-sigkill.patch +- Add valgrind-3.14.0-ppc64-ptrace.patch + +* Sat Dec 1 2018 Mark Wielaard - 3.14.0-5 +- Add valgrind-3.14.0-wcsncmp.patch (#1645971) +- Replace valgrind-3.14.0-s390x-vec-float-point-{code,test}.patch + with upstream versions. + +* Fri Nov 23 2018 Mark Wielaard - 3.14.0-4 +- Add valgrind-3.14.0-get_otrack_shadow_offset_wrk-ppc.patch, + valgrind-3.14.0-new-strlen-IROps.patch, + valgrind-3.14.0-ppc-instr-new-IROps.patch, + valgrind-3.14.0-memcheck-new-IROps.patch, + valgrind-3.14.0-ppc-frontend-new-IROps.patch, + valgrind-3.14.0-transform-popcount64-ctznat64.patch and + valgrind-3.14.0-enable-ppc-Iop_Sar_Shr8.patch (#1652926) + +* Wed Nov 21 2018 Mark Wielaard - 3.14.0-3 +- Add valgrind-3.14.0-s390z-more-z13-fixes.patch. + +* Tue Nov 20 2018 Mark Wielaard - 3.14.0-2 +- Add valgrind-3.14.0-s390x-fix-reg-alloc-vr-vs-fpr.patch. +- Add valgrind-3.14.0-s390x-sign-extend-lochi.patch. +- Add valgrind-3.14.0-s390x-vec-reg-vgdb.patch. +- Add valgrind-3.14.0-s390x-vec-float-point-code.patch + and valgrind-3.14.0-s390x-vec-float-point-tests.patch +- Disable full regtests on fedora everywhere. + +* Tue Oct 9 2018 Mark Wielaard - 3.14.0-1 +- valgrind 3.14.0 final. + +* Thu Oct 4 2018 Mark Wielaard - 3.14.0-0.2.RC2 +- Upgrade to RC2. +- Drop valgrind-3.14.0-add-vector-h.patch. + +* Fri Sep 14 2018 Mark Wielaard - 3.14.0-0.1.GIT +- New upstream (pre-)release. +- Add valgrind-3.14.0-add-vector-h.patch. + +* Fri Aug 10 2018 Mark Wielaard - 3.13.0-28 +- Add valgrind-3.13.0-utime.patch + +* Fri Aug 3 2018 Mark Wielaard - 3.13.0-27 +- Add valgrind-3.13.0-ppc64-xsmaxcdp.patch + +* Fri Aug 3 2018 Mark Wielaard - 3.13.0-26 +- Use valgrind_arches for ExclusiveArch when defined. +- Use restorecon for scl on rhel6 to work around rpm bug (#1610676). + +* Tue Jul 31 2018 Mark Wielaard - 3.13.0-25 +- Add valgrind-3.13.0-x86-arch_prctl.patch (#1610304) + +* Tue Jul 31 2018 Florian Weimer - 3.13.0-24 +- Rebuild with fixed binutils + +* Fri Jul 27 2018 Mark Wielaard - 3.13.0-23 +- Remove valgrind-3.13.0-arm-disable-vfp-test.patch + +* Thu Jul 26 2018 Mark Wielaard - 3.13.0-22 +- Add valgrind-3.13.0-arch_prctl.patch (#1608824) + +* Thu Jul 12 2018 Mark Wielaard - 3.13.0-21 +- Add valgrind-3.13.0-separate-code.patch (#1600034) +- Add valgrind-3.13.0-arm-disable-vfp-test.patch + +* Thu Jul 5 2018 Mark Wielaard - 3.13.0-20 +- Don't try a full_regtest under scl, also don't adjust PATH. + +* Thu Apr 12 2018 Mark Wielaard - 3.13.0-19 +- Improved valgrind-3.13.0-arm64-hwcap.patch +- Add valgrind-3.13.0-arm64-ptrace.patch + +* Thu Apr 12 2018 Mark Wielaard - 3.13.0-18 +- Add valgrind-3.13.0-build-id-phdrs.patch (#1566639) + +* Tue Feb 27 2018 Mark Wielaard - 3.13.0-17 +- Add valgrind-3.13.0-ppc64-mtfprwa-constraint.patch. + +* Fri Feb 09 2018 Fedora Release Engineering - 1:3.13.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 23 2018 Mark Wielaard - 3.13.0-15 +- Split valgrind-tools-devel from valgrind-devel. +- Make building of libmpi wrapper explicit. + +* Mon Jan 22 2018 Mark Wielaard - 3.13.0-14 +- undefine _strict_symbol_defs_build. + +* Tue Jan 2 2018 Mark Wielaard - 3.13.0-13 +- Add additional fix to valgrind-3.13.0-debug-alt-file.patch. + +* Tue Dec 12 2017 Mark Wielaard - 3.13.0-12 +- Add valgrind-3.13.0-s390-cgijnl.patch. +- Use upstream version of valgrind-3.13.0-debug-alt-file.patch. + +* Sun Dec 10 2017 Mark Wielaard - 3.13.0-11 +- Add valgrind-3.13.0-debug-alt-file.patch. + +* Thu Nov 2 2017 Mark Wielaard - 3.13.0-10 +- Add valgrind-3.13.0-ppc64-timebase.patch. + +* Tue Oct 17 2017 Mark Wielaard - 3.13.0-9 +- Add valgrind-3.13.0-amd64-eflags-tests.patch +- Add valgrind-3.13.0-suppress-dl-trampoline-sse-avx.patch +- Add valgrind-3.13.0-static-tls.patch + +* Mon Oct 16 2017 Mark Wielaard - 3.13.0-8 +- Add valgrind-3.13.0-ppc64-vex-fixes.patch + +* Thu Aug 17 2017 Mark Wielaard - 3.13.0-7 +- Add valgrind-3.13.0-xml-socket.patch + +* Thu Aug 03 2017 Fedora Release Engineering - 1:3.13.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1:3.13.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 7 2017 Mark Wielaard +- Add --error-exitcode=1 to /bin/true check. + +* Thu Jun 29 2017 Mark Wielaard 3.13.0-4 +- Add valgrind-3.13.0-arm-index-hardwire.patch (#1466017) +- Add valgrind-3.13.0-ucontext_t.patch +- Add valgrind-3.13.0-gdb-8-testfix.patch +- Add valgrind-3.13.0-disable-vgdb-child.patch + +* Fri Jun 23 2017 Mark Wielaard 3.13.0-3 +- Add valgrind-3.13.0-arm64-hwcap.patch (#1464211) + +* Sat Jun 17 2017 Mark Wielaard 3.13.0-2 +- Add valgrind-3.13.0-ppc64-check-no-vsx.patch +- Add valgrind-3.13.0-epoll_pwait.patch (#1462258) +- Add valgrind-3.13.0-ppc64-diag.patch + +* Thu Jun 15 2017 Mark Wielaard - 3.13.0-1 +- valgrind 3.13.0 final. +- Drop all upstreamed patches. + +* Tue Jun 6 2017 Mark Wielaard - 3.13.0-0.2.RC1 +- Add valgrind-3.13.0-arm-dcache.patch +- Add valgrind-3.13.0-g++-4.4.patch +- Add valgrind-3.13.0-s390x-GI-strcspn.patch +- Add valgrind-3.13.0-xtree-callgrind.patch + +* Fri Jun 2 2017 Mark Wielaard - 3.13.0-0.1.RC1 +- Update description as suggested by Ivo Raisr. +- Workaround gdb/python bug in testsuite (#1434601) +- Update to upstream 3.13.0-RC1. +- Drop all upstreamed patches. + +* Tue Mar 28 2017 Mark Wielaard - 3.12.0-8 +- Add valgrind-3.12.0-powerpc-register-pair.patch +- Add valgrind-3.12.0-ppc64-isa-3_00.patch + +* Sat Feb 18 2017 Mark Wielaard - 3.12.0-7 +- Add valgrind-3.12.0-aarch64-syscalls.patch + +* Sat Feb 18 2017 Mark Wielaard - 3.12.0-6 +- Add valgrind-3.12.0-arm64-ppc64-prlimit64.patch +- Add valgrind-3.12.0-arm64-hint.patch +- Add valgrind-3.12.0-clone-spawn.patch +- Add valgrind-3.12.0-quick-fatal-sigs.patch +- Add valgrind-3.12.0-exit_group.patch +- Add valgrind-3.12.0-deregister-stack.patch +- Add valgrind-3.12.0-x86-gdt-and-ss.patch +- Add valgrind-3.12.0-cd-dvd-ioctl.patch +- Add valgrind-3.12.0-tests-cxx11_abi_0.patch +- Add valgrind-3.12.0-helgrind-dl_allocate_tls-supp.patch +- Add valgrind-3.12.0-ppc-xxsel.patch + +* Fri Feb 17 2017 Mark Wielaard - 3.12.0-5 +- Add valgrind-3.12.0-ppc64-r2.patch (#1424367) + +* Sat Feb 11 2017 Fedora Release Engineering - 1:3.12.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Nov 12 2016 Mark Wielaard - 3.12.0-3 +- Add valgrind-3.12.0-nocwd-cleanup.patch (#1390282) + +* Fri Oct 21 2016 Orion Poplawski - 1:3.12.0-2 +- Rebuild for openmpi 2.0 + +* Fri Oct 21 2016 Mark Wielaard - 3.12.0-1 +- Update to valgrind 3.12.0 release. + +* Thu Oct 20 2016 Mark Wielaard - 3.12.0-0.4-RC2 +- Update to 3.12.0-RC1. Drop integrated patches. +- Add valgrind-3.12.0-skip-cond-var.patch + +* Fri Sep 30 2016 Mark Wielaard - 3.12.0-0.3-BETA1 +- Clear CFLAGS, CXXFLAGS and LDFLAGS during make check. + +* Thu Sep 29 2016 Mark Wielaard - 3.12.0-0.2-BETA1 +- Add valgrind-3.12-beta1-ppc64be.patch. +- Enable gdb_server tests again. + +* Tue Sep 20 2016 Mark Wielaard - 3.12.0-0.1-BETA1 +- Update to valgrind 3.12.0 pre-release. + - Drop upstreamed patches. + - Disable exp-tests in %%check. GDB crashes on gdb_server tests. + +* Fri Jul 22 2016 Mark Wielaard - 3.11.0-26 +- Only build valgrind-openmpi when not creating a software collection. +- No support for multilib on secondary arches when creating scl. +- Touch up empty .exp files. + +* Thu Jul 21 2016 Mark Wielaard - 3.11.0-24 +- Mandatory Perl build-requires added +- Add valgrind-3.11.0-shr.patch +- Add valgrind-3.11.0-pcmpxstrx-0x70-0x19.patch +- Update valgrind-3.11.0-wrapmalloc.patch +- Add valgrind-3.11.0-sighandler-stack.patch + +* Tue Jun 21 2016 Mark Wielaard - 3.11.0-23 +- Update valgrind-3.11.0-ppoll-mask.patch (#1344082) + +* Mon May 30 2016 Mark Wielaard - 3.11.0-22 +- Add valgrind-3.11.0-arm64-handle_at.patch +- Add valgrind-3.11.0-ppc64-syscalls.patch + +* Fri Apr 29 2016 Mark Wielaard - 3.11.0-21 +- Add valgrind-3.11.0-deduppoolalloc.patch +- Add valgrind-3.11.0-ppc-bcd-addsub.patch +- Add valgrind-3.11.0-ppc64-vgdb-vr-regs.patch + +* Fri Apr 15 2016 Mark Wielaard - 3.11.0-20 +- Update valgrind-3.11.0-cxx-freeres.patch (x86 final_tidyup fix) +- Add valgrind-3.11.0-s390x-risbgn.patch + +* Sun Apr 03 2016 Mark Wielaard - 3.11.0-19 +- Add valgrind-3.11.0-cxx-freeres.patch (#1312647) +- Add valgrind-3.11.0-ppc64-separate-socketcalls.patch +- Add valgrind-3.11.0-isZeroU.patch +- Replace valgrind-3.11.0-arm64-ldpsw.patch with upstream version +- Add valgrind-3.11.0-ppc64-128bit-mod-carry.patch +- Add valgrind-3.11.0-amd64-fcom.patch +- Add valgrind-3.11.0-z13s.patch +- Add valgrind-3.11.0-gdb-test-filters.patch + +* Mon Mar 14 2016 Mark Wielaard - 3.11.0-18 +- Update valgrind-3.11.0-libstdc++-supp.patch. +- Add valgrind-3.11.0-arm64-ldr-literal-test.patch. +- Add valgrind-3.11.0-arm64-ldpsw.patch + +* Thu Mar 10 2016 Mark Wielaard - 3.11.0-17 +- Update valgrind-3.11.0-arm64-more-syscalls.patch +- Add valgrind-3.11.0-libstdc++-supp.patch (#1312647) + +* Wed Mar 09 2016 Mark Wielaard - 3.11.0-16 +- Add valgrind-3.11.0-ppoll-mask.patch +- Add valgrind-3.11.0-arm64-more-syscalls.patch + +* Wed Feb 24 2016 Mark Wielaard - 3.11.0-15 +- Add valgrind-3.11.0-s390-separate-socketcalls.patch +- Add valgrind-3.11.0-amd64-ld-index.patch + +* Thu Feb 18 2016 Mark Wielaard - 3.11.0-14 +- Update valgrind-3.11.0-futex.patch (fix helgrind/drd regression). +- Update valgrind-3.11.0-x86_unwind.patch (include amd64 fix). + +* Wed Feb 17 2016 Mark Wielaard - 3.11.0-13 +- Remove valgrind-3.11.0-no-stv.patch (gcc6 has been fixed). +- Add valgrind-3.11.0-futex.patch +- Add valgrind-3.11.0-s390x-popcnt.patch + +* Fri Feb 05 2016 Fedora Release Engineering - 1:3.11.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Sat Jan 30 2016 Mark Wielaard - 3.11.0-11 +- Add valgrind-3.11.0-no-stv.patch (GCC6 workaround). + +* Mon Jan 25 2016 Mark Wielaard - 3.11.0-10 +- Add valgrind-3.11.0-drd_std_thread.patch GCC6 build fix. + +* Fri Jan 22 2016 Mark Wielaard - 3.11.0-9 +- Fix valgrind-3.11.0-pthread_barrier.patch to apply with older patch. +- Fix multilib issue in config.h with HAVE_AS_AMD64_FXSAVE64. + +* Thu Jan 21 2016 Mark Wielaard - 3.11.0-8 +- Add valgrind-3.11.0-rlimit_data.patch +- Add valgrind-3.11.0-fclose.patch +- Add valgrind-3.11.0-pthread_spin_destroy.patch +- Add valgrind-3.11.0-socketcall-x86-linux.patch +- Don't strip debuginfo from vgpreload libaries. + Enable dwz for everything else again. +- Add valgrind-3.11.0-is_stmt.patch +- Add valgrind-3.11.0-x86_unwind.patch + +* Tue Jan 19 2016 Mark Wielaard - 3.11.0-7 +- Add valgrind-3.11.0-pthread_barrier.patch + +* Sat Jan 16 2016 Mark Wielaard - 3.11.0-6 +- Add valgrind-3.11.0-aspacemgr.patch (#1283774) + +* Sun Nov 15 2015 Mark Wielaard - 3.11.0-5 +- Add valgrind-3.11.0-wrapmalloc.patch + +* Mon Oct 12 2015 Mark Wielaard - 3.11.0-4 +- Fix parenthesis in valgrind-3.11.0-rexw-cvtps2pd.patch. +- Add valgrind-3.11.0-s390-hwcap.patch + +* Mon Oct 12 2015 Mark Wielaard - 3.11.0-3 +- Add valgrind-3.11.0-rexw-cvtps2pd.patch. + +* Thu Oct 01 2015 Mark Wielaard - 3.11.0-2 +- Add valgrind-3.11.0-no-rdrand.patch + +* Wed Sep 23 2015 Mark Wielaard - 3.11.0-1 +- Upgrade to valgrind 3.11.0 final +- Drop patches included upstream + - valgrind-3.11.0-ppc-dfp-guard.patch + - valgrind-3.11.0-ppc-ppr.patch + - valgrind-3.11.0-ppc-mbar.patch + - valgrind-3.11.0-glibc-futex-message.patch + - valgrind-3.11.0-arm64-libvex_test.patch + - valgrind-3.11.0-arm-warnings.patch + - valgrind-3.11.0-arm-no-cast-align.patch + - valgrind-3.11.0-ppc-vbit-test.patch +- Add arm64 syscall patches + - valgrind-3.11.0-arm64-xattr.patch + - valgrind-3.11.0-arm64-sigpending.patch + +* Sat Sep 19 2015 Mark Wielaard - 3.11.0-0.4.TEST1 +- Add valgrind-3.11.0-ppc-dfp-guard.patch +- Add valgrind-3.11.0-ppc-ppr.patch +- Add valgrind-3.11.0-ppc-mbar.patch + +* Fri Sep 18 2015 Mark Wielaard - 3.11.0-0.3.TEST1 +- Make sure some info about the system is in the build.log before check. +- Add valgrind-3.11.0-glibc-futex-message.patch +- Add valgrind-3.11.0-arm64-libvex_test.patch +- Add valgrind-3.11.0-arm-warnings.patch +- Add valgrind-3.11.0-arm-no-cast-align.patch +- Add valgrind-3.11.0-ppc-vbit-test.patch + +* Tue Sep 15 2015 Orion Poplawski - 1:3.11.0-0.2.TEST1 +- Rebuild for openmpi 1.10.0 + +* Thu Sep 10 2015 Mark Wielaard - 3.11.0-0.1.TEST1 +- Add BuildRequires perl(Getopt::Long) +- Upgrade to valgrind 3.11.0.TEST1 +- Remove upstreamed valgrind-3.10.1-gdb-file-warning.patch + +* Tue Aug 25 2015 Mark Wielaard - 3.10.1-22.svn20150825r15589 +- Drop valgrind-3.9.0-stat_h.patch. +- Add BuildRequires gcc-c++. +- Update to current valgrind svn (svn20150825r15589) +- Add valgrind-3.10.1-gdb-file-warning.patch + +* Mon Aug 17 2015 Mark Wielaard - 3.10.1-21.svn20150817r15561 +- Update to current valgrind svn. Drop patches now upstream. + +* Mon Aug 17 2015 Mark Wielaard - 3.10.1-20 +- Don't try to move around libmpiwrap when not building for openmpi (s390x) + +* Fri Aug 14 2015 Mark Wielaard - 3.10.1-19 +- Install libmpiwrap library under {_libdir}/openmpi/valgrind (#1238428) + +* Mon Aug 10 2015 Sandro Mani - 1:3.10.1-18 +- Rebuild for RPM MPI Requires Provides Change + +* Mon Aug 10 2015 Mark Wielaard - 3.10.1-17 +- Add setuid and setresgid to valgrind-3.10.1-aarch64-syscalls.patch. + +* Mon Aug 03 2015 Mark Wielaard - 3.10.1-16 +- Add valgrind-3.10.1-ppc64-hwcap2.patch + +* Wed Jul 08 2015 Mark Wielaard - 3.10.1-15 +- Update valgrind-3.10.1-s390x-fiebra.patch + +* Wed Jul 08 2015 Mark Wielaard - 3.10.1-14 +- Add valgrind-3.10.1-s390x-fiebra.patch + +* Tue Jul 07 2015 Mark Wielaard - 3.10.1-13 +- Add valgrind-3.10.1-di_notify_mmap.patch +- Add valgrind-3.10.1-memmove-ld_so-ppc64.patch + +* Fri Jun 19 2015 Mark Wielaard - 3.10.1-12 +- Add valgrind-3.10.1-kernel-4.0.patch. + +* Fri Jun 19 2015 Fedora Release Engineering - 1:3.10.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Jun 07 2015 Mark Wielaard - 3.10.1-10 +- Add valgrind-3.10.1-cfi-redzone.patch. + +* Wed Jun 03 2015 Mark Wielaard - 3.10.1-9 +- Add valgrind-3.10.1-memfd_create.patch. +- Add valgrind-3.10.1-syncfs.patch. +- Add valgrind-3.10.1-arm-process_vm_readv_writev.patch. +- Add valgrind-3.10.1-fno-ipa-icf.patch. +- Add valgrind-3.10.1-demangle-q.patch + +* Fri May 22 2015 Mark Wielaard - 3.10.1-8 +- Disable extended regtest on arm. The gdb tests hang for unknown reasons. + The reason is a glibc bug #1196181 which causes: + "GDB fails with Cannot parse expression `.L1055 4@r4'." + +* Wed Apr 22 2015 Mark Wielaard - 3.10.1-7 +- Add valgrind-3.10-1-ppc64-sigpending.patch +- Filter out -fstack-protector-strong and disable _hardened_build. + +* Wed Feb 18 2015 Mark Wielaard - 3.10.1-6 +- Add valgrind-3.10.1-send-recv-mmsg.patch +- Add mount and umount2 to valgrind-3.10.1-aarch64-syscalls.patch. +- Add valgrind-3.10.1-glibc-version-check.patch + +* Tue Feb 10 2015 Mark Wielaard - 3.10.1-5 +- Add accept4 to valgrind-3.10.1-aarch64-syscalls.patch. +- Add valgrind-3.10.1-ppc64-accept4.patch. + +* Sun Feb 08 2015 Mark Wielaard - 3.10.1-4 +- Add valgrind-3.10.1-aarch64-syscalls.patch. + +* Thu Feb 05 2015 Mark Wielaard - 3.10.1-3 +- Add valgrind-3.10-s390-spechelper.patch. + +* Tue Jan 13 2015 Mark Wielaard - 3.10.1-2 +- Add valgrind-3.10.1-mempcpy.patch. + +* Wed Nov 26 2014 Mark Wielaard - 3.10.1-1 +- Upgrade to 3.10.1 final. + +* Mon Nov 24 2014 Mark Wielaard - 3.10.1-0.1.TEST1 +- Upgrade to valgrind 3.10.1.TEST1 +- Remove patches that are now upstream: + - valgrind-3.10.0-old-ppc32-instr-magic.patch + - valgrind-3.10.0-aarch64-syscalls.patch + - valgrind-3.10.0-aarch64-dmb-sy.patch + - valgrind-3.10.0-aarch64-frint.patch + - valgrind-3.10.0-fcvtmu.patch + - valgrind-3.10.0-aarch64-fcvta.patch + +* Wed Nov 19 2014 Mark Wielaard - 3.10.0-6 +- Add getgroups/setgroups to valgrind-3.10.0-aarch64-syscalls.patch + +* Tue Nov 4 2014 Mark Wielaard - 3.10.0-5 +- Merge valgrind-3.10.0-aarch64-times.patch + and valgrind-3.10.0-aarch64-getsetsid.patch + into valgrind-3.10.0-aarch64-syscalls.patch + add fdatasync, msync, pread64, setreuid, setregid, + mknodat, fchdir, chroot, fchownat, fchmod and fchown. +- Add valgrind-3.10.0-aarch64-frint.patch +- Add valgrind-3.10.0-fcvtmu.patch +- Add valgrind-3.10.0-aarch64-fcvta.patch + +* Sat Oct 11 2014 Mark Wielaard - 3.10.0-4 +- Add valgrind-3.10.0-aarch64-times.patch +- Add valgrind-3.10.0-aarch64-getsetsid.patch +- Add valgrind-3.10.0-aarch64-dmb-sy.patch + +* Mon Sep 15 2014 Mark Wielaard - 3.10.0-3 +- Add valgrind-3.10.0-old-ppc32-instr-magic.patch. + +* Fri Sep 12 2014 Mark Wielaard - 3.10.0-2 +- Fix ppc32 multilib handling on ppc64[be]. +- Drop ppc64 secondary for ppc32 primary support. +- Except for armv7hl we don't support any other arm[32] arch. + +* Thu Sep 11 2014 Mark Wielaard - 3.10.0-1 +- Update to 3.10.0 final. +- Remove valgrind-3.10-configure-glibc-2.20.patch fixed upstream. + +* Mon Sep 8 2014 Mark Wielaard - 3.10.0-0.2.BETA2 +- Update to 3.10.0.BETA2. +- Don't run dwz or generate minisymtab. +- Remove valgrind-3.9.0-s390x-ld-supp.patch fixed upstream. +- Add valgrind-3.10-configure-glibc-2.20.patch. + +* Tue Sep 2 2014 Mark Wielaard - 3.10.0-0.1.BETA1 +- Update to official upstream 3.10.0 BETA1. + - Enables inlined frames in stacktraces. + +* Fri Aug 29 2014 Mark Wielaard - 3.9.0-26.svn20140829r14384 +- Update to upstream svn r14384 +- Enable gdb_server tests again for arm and aarch64 + +* Wed Aug 27 2014 Mark Wielaard - 3.9.0-25.svn20140827r14370 +- Update to upstream svn r14370 +- Remove ppc testfile copying (no longer patched in) + +* Mon Aug 18 2014 Mark Wielaard - 3.9.0-24.svn20140818r14303 +- Update to upstream svn r14303 +- Move fake libgcc into shared to not break post-regtest-checks. +- autogen.sh execution no longer needed in %%build. + +* Mon Aug 18 2014 Fedora Release Engineering - 1:3.9.0-23.svn20140809r14250 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Aug 9 2014 Mark Wielaard 3.9.0-22.svn20140809r14250 +- Update to upstream svn r14250 + - ppc64le support got integrated upstream. Remove patches: + valgrind-3.9.0-ppc64le-initial.patch + valgrind-3.9.0-ppc64le-functional.patch + valgrind-3.9.0-ppc64le-test.patch + valgrind-3.9.0-ppc64le-extra.patch + +* Sat Jul 19 2014 Mark Wielaard 3.9.0-21.svn20140718r14176 +- Disable full regtest on arm (gdb integration tests sometimes hang). + +* Fri Jul 18 2014 Mark Wielaard 3.9.0-20.svn20140718r14176 +- Update to upstream svn r14176 + Remove valgrind-3.9.0-arm64-user_regs.patch +- Add ppc64le support + valgrind-3.9.0-ppc64le-initial.patch + valgrind-3.9.0-ppc64le-functional.patch + valgrind-3.9.0-ppc64le-test.patch + valgrind-3.9.0-ppc64le-extra.patch + +* Tue Jul 15 2014 Mark Wielaard 3.9.0-19.svn20140715r14165 +- Add valgrind-3.9.0-arm64-user_regs.patch +- Disable full regtest on aarch64 (gdb integration tests sometimes hang). +- Enable openmpi support on aarch64. + +* Tue Jul 15 2014 Mark Wielaard 3.9.0-18.svn20140715r14165 +- Update to upstream svn r14165. +- Remove valgrind-3.9.0-ppc64-ifunc.patch. +- Remove valgrind-3.9.0-aarch64-glibc-2.19.90-gcc-4.9.patch +- Remove valgrind-3.9.0-format-security.patch +- Remove valgrind-3.9.0-msghdr.patch + +* Fri Jul 4 2014 Mark Wielaard 3.9.0-17.svn20140513r13961 +- Remove ppc multilib support (#1116110) +- Add valgrind-3.9.0-ppc64-ifunc.patch + +* Sun Jun 08 2014 Fedora Release Engineering - 1:3.9.0-16.svn20140513r13961 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 19 2014 Mark Wielaard +- Don't cleanup fake 32-bit libgcc created in %%build. + make regtest might depend on it to build -m32 binaries. + +* Fri May 16 2014 Mark Wielaard 3.9.0-15.svn20140513r13961 +- Add SHL_d_d_#imm to valgrind-3.9.0-aarch64-glibc-2.19.90-gcc-4.9.patch + +* Thu May 15 2014 Mark Wielaard 3.9.0-14.svn20140513r13961 +- Add valgrind-3.9.0-aarch64-glibc-2.19.90-gcc-4.9.patch + +* Tue May 13 2014 Mark Wielaard 3.9.0-13.svn20140513r13961 +- Update to upstream svn r13961. +- Remove valgrind-3.9.0-mpx.patch integrated upstream now. +- Add valgrind-3.9.0-msghdr.patch +- Add valgrind-3.9.0-format-security.patch + +* Thu May 8 2014 Mark Wielaard 3.9.0-12.svn20140319r13879 +- Add valgrind-3.9.0-mpx.patch (#1087933) + +* Wed Mar 19 2014 Mark Wielaard - 3.9.0-11.svn20140319r13879 +- Update to upstream svn r13879. arm64 make check now builds. + +* Tue Mar 18 2014 Mark Wielaard - 3.9.0-10.svn20140318r13876 +- Make sure basic binary (/bin/true) runs under valgrind. + And fail the whole build if not. The regtests are not zero-fail. +- Update to upstream svn r13876. +- Introduce build_openmpi and build_multilib in spec file. + +* Tue Mar 11 2014 Mark Wielaard - 3.9.0-9.svn20140311r13869 +- Enable aarch64 based on current upstream svn. Removed upstreamed patches. + Thanks to Marcin Juszkiewicz + +* Mon Mar 10 2014 Mark Wielaard - 3.9.0-8 +- Add valgrind-3.9.0-ppc64-priority.patch + +* Mon Feb 24 2014 Mark Wielaard +- Add upstream fixes to valgrind-3.9.0-timer_create.patch + +* Fri Feb 21 2014 Mark Wielaard - 3.9.0-7 +- Add valgrind-3.9.0-glibc-2.19.patch + +* Fri Feb 21 2014 Mark Wielaard - 3.9.0-6 +- Add valgrind-3.9.0-s390-dup3.patch +- Add valgrind-3.9.0-timer_create.patch + +* Thu Dec 12 2013 Mark Wielaard - 3.9.0-5 +- Add valgrind-3.9.0-manpage-memcheck-options.patch. +- Add valgrind-3.9.0-s390-fpr-pair.patch. + +* Thu Nov 28 2013 Mark Wielaard - 3.9.0-4 +- Add valgrind-3.9.0-xabort.patch. + +* Fri Nov 22 2013 Mark Wielaard - 3.9.0-3 +- Add valgrind-3.9.0-anon-typedef.patch. +- Add valgrind-3.9.0-s390x-ld-supp.patch + +* Wed Nov 20 2013 Mark Wielaard - 3.9.0-2 +- Add valgrind-3.9.0-dwz-alt-buildid.patch. +- Add valgrind-3.9.0-s390-risbg.patch. + +* Fri Nov 1 2013 Mark Wielaard - 3.9.0-1 +- Upgrade to valgrind 3.9.0 final. +- Remove support for really ancient GCCs (valgrind-3.9.0-config_h.patch). +- Add valgrind-3.9.0-amd64_gen_insn_test.patch. +- Remove and cleanup fake 32-bit libgcc package. + +* Mon Oct 28 2013 Mark Wielaard - 3.9.0-0.1.TEST1 +- Upgrade to valgrind 3.9.0.TEST1 +- Remove patches that are now upstream: + - valgrind-3.8.1-abbrev-parsing.patch + - valgrind-3.8.1-af-bluetooth.patch + - valgrind-3.8.1-aspacemgr_VG_N_SEGs.patch + - valgrind-3.8.1-avx2-bmi-fma.patch.gz + - valgrind-3.8.1-avx2-prereq.patch + - valgrind-3.8.1-bmi-conf-check.patch + - valgrind-3.8.1-capget.patch + - valgrind-3.8.1-cfi_dw_ops.patch + - valgrind-3.8.1-dwarf-anon-enum.patch + - valgrind-3.8.1-filter_gdb.patch + - valgrind-3.8.1-find-buildid.patch + - valgrind-3.8.1-gdbserver_exit.patch + - valgrind-3.8.1-gdbserver_tests-syscall-template-source.patch + - valgrind-3.8.1-glibc-2.17-18.patch + - valgrind-3.8.1-index-supp.patch + - valgrind-3.8.1-initial-power-isa-207.patch + - valgrind-3.8.1-manpages.patch + - valgrind-3.8.1-memcheck-mc_translate-Iop_8HLto16.patch + - valgrind-3.8.1-mmxext.patch + - valgrind-3.8.1-movntdqa.patch + - valgrind-3.8.1-new-manpages.patch + - valgrind-3.8.1-openat.patch + - valgrind-3.8.1-overlap_memcpy_filter.patch + - valgrind-3.8.1-pie.patch + - valgrind-3.8.1-pkg-config.patch + - valgrind-3.8.1-power-isa-205-deprecation.patch + - valgrind-3.8.1-ppc-32-mode-64-bit-instr.patch + - valgrind-3.8.1-ppc-setxattr.patch + - valgrind-3.8.1-proc-auxv.patch + - valgrind-3.8.1-ptrace-include-configure.patch + - valgrind-3.8.1-ptrace-setgetregset.patch + - valgrind-3.8.1-ptrace-thread-area.patch + - valgrind-3.8.1-regtest-fixlets.patch + - valgrind-3.8.1-s390-STFLE.patch + - valgrind-3.8.1-s390_tsearch_supp.patch + - valgrind-3.8.1-sendmsg-flags.patch + - valgrind-3.8.1-sigill_diag.patch + - valgrind-3.8.1-static-variables.patch + - valgrind-3.8.1-stpncpy.patch + - valgrind-3.8.1-text-segment.patch + - valgrind-3.8.1-wcs.patch + - valgrind-3.8.1-x86_amd64_features-avx.patch + - valgrind-3.8.1-xaddb.patch + - valgrind-3.8.1-zero-size-sections.patch +- Remove special case valgrind-3.8.1-enable-armv5.patch. +- Remove valgrind-3.8.1-x86-backtrace.patch, rely on new upstream fp/cfi + try-cache mechanism. + +* Mon Oct 14 2013 Mark Wielaard - 3.8.1-31 +- Fix multilib issue with HAVE_PTRACE_GETREGS in config.h. + +* Thu Sep 26 2013 Mark Wielaard - 3.8.1-30 +- Add valgrind-3.8.1-index-supp.patch (#1011713) + +* Wed Sep 25 2013 Mark Wielaard - 3.8.1-29 +- Filter out -mcpu= so tests are compiled with the right flags. (#996927). + +* Mon Sep 23 2013 Mark Wielaard - 3.8.1-28 +- Implement SSE4 MOVNTDQA insn (valgrind-3.8.1-movntdqa.patch) +- Don't BuildRequire /bin/ps, just BuildRequire procps + (procps-ng provides procps). + +* Thu Sep 05 2013 Mark Wielaard - 3.8.1-27 +- Fix power_ISA2_05 testcase (valgrind-3.8.1-power-isa-205-deprecation.patch) +- Fix ppc32 make check build (valgrind-3.8.1-initial-power-isa-207.patch) +- Add valgrind-3.8.1-mmxext.patch + +* Wed Aug 21 2013 Mark Wielaard - 3.8.1-26 +- Allow building against glibc 2.18. (#999169) + +* Thu Aug 15 2013 Mark Wielaard - 3.8.1-25 +- Add valgrind-3.8.1-s390-STFLE.patch + s390 message-security assist (MSA) instruction extension not implemented. + +* Wed Aug 14 2013 Mark Wielaard - 3.8.1-24 +- Add valgrind-3.8.1-power-isa-205-deprecation.patch + Deprecation of some ISA 2.05 POWER6 instructions. +- Fixup auto-foo generation of new manpage doc patch. + +* Wed Aug 14 2013 Mark Wielaard - 3.8.1-23 +- tests/check_isa-2_07_cap should be executable. + +* Tue Aug 13 2013 Mark Wielaard - 3.8.1-22 +- Add valgrind-3.8.1-initial-power-isa-207.patch + Initial ISA 2.07 support for POWER8-tuned libc. + +* Thu Aug 08 2013 Mark Wielaard - 3.8.1-21 +- Don't depend on docdir location and version in openmpi subpackage + description (#993938). +- Enable openmpi subpackage also on arm. + +* Thu Aug 08 2013 Mark Wielaard - 3.8.1-20 +- Add valgrind-3.8.1-ptrace-include-configure.patch (#992847) + +* Sun Aug 04 2013 Fedora Release Engineering - 1:3.8.1-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 18 2013 Petr Pisar - 1:3.8.1-18 +- Perl 5.18 rebuild + +* Mon Jul 08 2013 Mark Wielaard - 3.8.1-17 +- Add valgrind-3.8.1-dwarf-anon-enum.patch +- Cleanup valgrind-3.8.1-sigill_diag.patch .orig file changes (#949687). +- Add valgrind-3.8.1-ppc-setxattr.patch +- Add valgrind-3.8.1-new-manpages.patch +- Add valgrind-3.8.1-ptrace-thread-area.patch +- Add valgrind-3.8.1-af-bluetooth.patch + +* Tue May 28 2013 Michael Schwendt - 1:3.8.1-16 +- Provide virtual -static package in -devel subpackage (#609624). + +* Thu Apr 25 2013 Mark Wielaard 3.8.1-15 +- Add valgrind-3.8.1-zero-size-sections.patch. Resolves issues with zero + sized .eh_frame sections on ppc64. + +* Thu Apr 18 2013 Mark Wielaard 3.8.1-14 +- fixup selinux file context when doing a scl build. +- Enable regtest suite on ARM. +- valgrind-3.8.1-abbrev-parsing.patch, drop workaround, enable real fix. +- Fix -Ttext-segment configure check. Enables s390x again. +- BuildRequire ps for testsuite. + +* Tue Apr 02 2013 Mark Wielaard 3.8.1-13 +- Fix quoting in valgrind valgrind-3.8.1-enable-armv5.patch and + remove arm configure hunk from valgrind-3.8.1-text-segment.patch #947440 +- Replace valgrind-3.8.1-text-segment.patch with upstream variant. +- Add valgrind-3.8.1-regtest-fixlets.patch. + +* Wed Mar 20 2013 Mark Wielaard 3.8.1-12 +- Add valgrind-3.8.1-text-segment.patch +- Don't undefine _missing_build_ids_terminate_build. + +* Tue Mar 12 2013 Mark Wielaard 3.8.1-11 +- Add valgrind-3.8.1-manpages.patch + +* Fri Mar 01 2013 Mark Wielaard 3.8.1-10 +- Don't disable -debuginfo package generation, but do undefine + _missing_build_ids_terminate_build. + +* Thu Feb 28 2013 Mark Wielaard 3.8.1-9 +- Replace valgrind-3.8.1-sendmsg-flags.patch with upstream version. + +* Tue Feb 19 2013 Mark Wielaard 3.8.1-8 +- Add valgrind-3.8.1-sendmsg-flags.patch +- Add valgrind-3.8.1-ptrace-setgetregset.patch +- Add valgrind-3.8.1-static-variables.patch + +* Thu Feb 07 2013 Jon Ciesla 1:3.8.1-7 +- Merge review fixes, BZ 226522. + +* Wed Jan 16 2013 Mark Wielaard 3.8.1-6 +- Allow building against glibc-2.17. + +* Sun Nov 4 2012 Mark Wielaard 3.8.1-5 +- Add valgrind-3.8.1-stpncpy.patch (KDE#309427) +- Add valgrind-3.8.1-ppc-32-mode-64-bit-instr.patch (#810992, KDE#308573) +- Add valgrind-3.8.1-sigill_diag.patch (#810992, KDE#309425) + +* Tue Oct 16 2012 Mark Wielaard 3.8.1-4 +- Add valgrind-3.8.1-xaddb.patch (#866793, KDE#307106) + +* Mon Oct 15 2012 Mark Wielaard 3.8.1-3 +- Add valgrind-3.8.1-x86_amd64_features-avx.patch (KDE#307285) +- Add valgrind-3.8.1-gdbserver_tests-syscall-template-source.patch (KDE#307155) +- Add valgrind-3.8.1-overlap_memcpy_filter.patch (KDE#307290) +- Add valgrind-3.8.1-pkg-config.patch (#827219, KDE#307729) +- Add valgrind-3.8.1-proc-auxv.patch (KDE#253519) +- Add valgrind-3.8.1-wcs.patch (#755242, KDE#307828) +- Add valgrind-3.8.1-filter_gdb.patch (KDE#308321) +- Add valgrind-3.8.1-gdbserver_exit.patch (#862795, KDE#308341) +- Add valgrind-3.8.1-aspacemgr_VG_N_SEGs.patch (#730303, KDE#164485) +- Add valgrind-3.8.1-s390_tsearch_supp.patch (#816244, KDE#308427) + +* Fri Sep 21 2012 Mark Wielaard 3.8.1-2 +- Add valgrind-3.8.1-gdbserver_tests-mcinvoke-ppc64.patch +- Replace valgrind-3.8.1-cfi_dw_ops.patch with version as committed upstream. +- Remove erroneous printf change from valgrind-3.8.1-abbrev-parsing.patch. +- Add scalar testcase change to valgrind-3.8.1-capget.patch. + +* Thu Sep 20 2012 Mark Wielaard 3.8.1-1 +- Add partial backport of upstream revision 12884 + valgrind-3.8.0-memcheck-mc_translate-Iop_8HLto16.patch + without it AVX2 VPBROADCASTB insn is broken under memcheck. +- Add valgrind-3.8.0-cfi_dw_ops.patch (KDE#307038) + DWARF2 CFI reader: unhandled DW_OP_ opcode 0x8 (DW_OP_const1u and friends) +- Add valgrind-3.8.0-avx2-prereq.patch. +- Remove accidentially included diffs for gdbserver_tests and helgrind/tests + Makefile.in from valgrind-3.8.0-avx2-bmi-fma.patch.gz +- Remove valgrind-3.8.0-tests.patch tests no longer hang. +- Added SCL macros to support building as part of a Software Collection. +- Upgrade to valgrind 3.8.1. + +* Wed Sep 12 2012 Mark Wielaard 3.8.0-8 +- Add configure fixup valgrind-3.8.0-bmi-conf-check.patch + +* Wed Sep 12 2012 Mark Wielaard 3.8.0-7 +- Add valgrind-3.8.0-avx2-bmi-fma.patch (KDE#305728) + +* Tue Sep 11 2012 Mark Wielaard 3.8.0-6 +- Add valgrind-3.8.0-lzcnt-tzcnt-bugfix.patch (KDE#295808) +- Add valgrind-3.8.0-avx-alignment-check.patch (KDE#305926) + +* Mon Aug 27 2012 Mark Wielaard 3.8.0-5 +- Add valgrind-3.8.0-abbrev-parsing.patch for #849783 (KDE#305513). + +* Sun Aug 19 2012 Mark Wielaard 3.8.0-4 +- Add valgrind-3.8.0-find-buildid.patch workaround bug #849435 (KDE#305431). + +* Wed Aug 15 2012 Jakub Jelinek 3.8.0-3 +- fix up last change + +* Wed Aug 15 2012 Jakub Jelinek 3.8.0-2 +- tweak up to allow simultaneous installation + of valgrind-devel.{i686,x86_64} (#848146) + +* Fri Aug 10 2012 Jakub Jelinek 3.8.0-1 +- update to 3.8.0 release +- from CFLAGS/CXXFLAGS filter just fortification flags, not arch + specific flags +- on i?86 prefer to use CFI over %%ebp unwinding, as GCC 4.6+ + defaults to -fomit-frame-pointer + +* Tue Aug 07 2012 Mark Wielaard 3.8.0-0.1.TEST1.svn12858 +- Update to 3.8.0-TEST1 +- Clear CFLAGS CXXFLAGS LDFLAGS. +- Fix \ line continuation in configure line. + +* Fri Aug 03 2012 Mark Wielaard 3.7.0-7 +- Fixup shadowing warnings valgrind-3.7.0-dwz.patch +- Add valgrind-3.7.0-ref_addr.patch (#842659, KDE#298864) + +* Wed Jul 25 2012 Mark Wielaard 3.7.0-6 +- handle dwz DWARF compressor output (#842659, KDE#302901) +- allow glibc 2.16. + +* Sun Jul 22 2012 Fedora Release Engineering - 1:3.7.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon May 7 2012 Jakub Jelinek 3.7.0-4 +- adjust suppressions so that it works even with ld-2.15.so (#806854) +- handle DW_TAG_unspecified_type and DW_TAG_rvalue_reference_type + (#810284, KDE#278313) +- handle .debug_types sections (#810286, KDE#284124) + +* Sun Mar 4 2012 Peter Robinson 3.7.0-2 +- Fix building on ARM platform + +* Fri Jan 27 2012 Jakub Jelinek 3.7.0-1 +- update to 3.7.0 (#769213, #782910, #772343) +- handle some further SCSI ioctls (#783936) +- handle fcntl F_SETOWN_EX and F_GETOWN_EX (#770746) + +* Wed Aug 17 2011 Adam Jackson 3.6.1-6 +- rebuild for rpm 4.9.1 trailing / bug + +* Thu Jul 21 2011 Jakub Jelinek 3.6.1-5 +- handle PLT unwind info (#723790, KDE#277045) + +* Mon Jun 13 2011 Jakub Jelinek 3.6.1-4 +- fix memcpy/memmove redirection on x86_64 (#705790) + +* Wed Jun 8 2011 Jakub Jelinek 3.6.1-3 +- fix testing against glibc 2.14 + +* Wed Jun 8 2011 Jakub Jelinek 3.6.1-2 +- fix build on ppc64 (#711608) +- don't fail if s390x support patch hasn't been applied, + move testing into %%check (#708522) +- rebuilt against glibc 2.14 + +* Wed Feb 23 2011 Jakub Jelinek 3.6.1-1 +- update to 3.6.1 + +* Mon Feb 07 2011 Fedora Release Engineering - 1:3.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 28 2011 Jakub Jelinek 3.6.0-2 +- rebuilt against glibc 2.13 (#673046) +- hook in pwrite64 syscall on ppc64 (#672858) +- fix PIE handling on ppc/ppc64 (#665289) + +* Fri Nov 12 2010 Jakub Jelinek 3.6.0-1 +- update to 3.6.0 +- add s390x support (#632354) +- provide a replacement for str{,n}casecmp{,_l} (#626470) + +* Tue May 18 2010 Jakub Jelinek 3.5.0-18 +- rebuilt against glibc 2.12 + +* Mon Apr 12 2010 Jakub Jelinek 3.5.0-16 +- change pub_tool_basics.h not to include config.h (#579283) +- add valgrind-openmpi package for OpenMPI support (#565541) +- allow NULL second argument to capget (#450976) + +* Wed Apr 7 2010 Jakub Jelinek 3.5.0-15 +- handle i686 nopw insns with more than one data16 prefix (#574889) +- DWARF4 support +- handle getcpu and splice syscalls + +* Wed Jan 20 2010 Jakub Jelinek 3.5.0-14 +- fix build against latest glibc headers + +* Wed Jan 20 2010 Jakub Jelinek 3.5.0-13 +- DW_OP_mod is unsigned modulus instead of signed +- fix up valgrind.pc (#551277) + +* Mon Dec 21 2009 Jakub Jelinek 3.5.0-12 +- don't require offset field to be set in adjtimex's + ADJ_OFFSET_SS_READ mode (#545866) + +* Wed Dec 2 2009 Jakub Jelinek 3.5.0-10 +- add handling of a bunch of recent syscalls and fix some + other syscall wrappers (Dodji Seketeli) +- handle prelink created split of .bss into .dynbss and .bss + and similarly for .sbss and .sdynbss (#539874) + +* Wed Nov 4 2009 Jakub Jelinek 3.5.0-9 +- rebuilt against glibc 2.11 +- use upstream version of the ifunc support + +* Wed Oct 28 2009 Jakub Jelinek 3.5.0-8 +- add preadv/pwritev syscall support + +* Tue Oct 27 2009 Jakub Jelinek 3.5.0-7 +- add perf_counter_open syscall support (#531271) +- add handling of some sbb/adc insn forms on x86_64 (KDE#211410) + +* Fri Oct 23 2009 Jakub Jelinek 3.5.0-6 +- ppc and ppc64 fixes + +* Thu Oct 22 2009 Jakub Jelinek 3.5.0-5 +- add emulation of 0x67 prefixed loop* insns on x86_64 (#530165) + +* Wed Oct 21 2009 Jakub Jelinek 3.5.0-4 +- handle reading of .debug_frame in addition to .eh_frame +- ignore unknown DWARF3 expressions in evaluate_trivial_GX +- suppress helgrind race errors in helgrind's own mythread_wrapper +- fix compilation of x86 tests on x86_64 and ppc tests + +* Wed Oct 14 2009 Jakub Jelinek 3.5.0-3 +- handle many more DW_OP_* ops that GCC now uses +- handle the more compact form of DW_AT_data_member_location +- don't strip .debug_loc etc. from valgrind binaries + +* Mon Oct 12 2009 Jakub Jelinek 3.5.0-2 +- add STT_GNU_IFUNC support (Dodji Seketeli, #518247) +- wrap inotify_init1 syscall (Dodji Seketeli, #527198) +- fix mmap/mprotect handling in memcheck (KDE#210268) + +* Fri Aug 21 2009 Jakub Jelinek 3.5.0-1 +- update to 3.5.0 + +* Tue Jul 28 2009 Jakub Jelinek 3.4.1-7 +- handle futex ops newly added during last 4 years (#512121) + +* Sun Jul 26 2009 Fedora Release Engineering 3.4.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jul 13 2009 Jakub Jelinek 3.4.1-5 +- add support for DW_CFA_{remember,restore}_state + +* Mon Jul 13 2009 Jakub Jelinek 3.4.1-4 +- handle version 3 .debug_frame, .eh_frame, .debug_info and + .debug_line (#509197) + +* Mon May 11 2009 Jakub Jelinek 3.4.1-3 +- rebuilt against glibc 2.10.1 + +* Wed Apr 22 2009 Jakub Jelinek 3.4.1-2 +- redirect x86_64 ld.so strlen early (#495645) + +* Mon Mar 9 2009 Jakub Jelinek 3.4.1-1 +- update to 3.4.1 + +* Mon Feb 9 2009 Jakub Jelinek 3.4.0-3 +- update to 3.4.0 + +* Wed Apr 16 2008 Jakub Jelinek 3.3.0-3 +- add suppressions for glibc 2.8 +- add a bunch of syscall wrappers (#441709) + +* Mon Mar 3 2008 Jakub Jelinek 3.3.0-2 +- add _dl_start suppression for ppc/ppc64 + +* Mon Mar 3 2008 Jakub Jelinek 3.3.0-1 +- update to 3.3.0 +- split off devel bits into valgrind-devel subpackage + +* Thu Oct 18 2007 Jakub Jelinek 3.2.3-7 +- add suppressions for glibc >= 2.7 + +* Fri Aug 31 2007 Jakub Jelinek 3.2.3-6 +- handle new x86_64 nops (#256801, KDE#148447) +- add support for private futexes (KDE#146781) +- update License tag + +* Fri Aug 3 2007 Jakub Jelinek 3.2.3-5 +- add ppc64-linux symlink in valgrind ppc.rpm, so that when + rpm prefers 32-bit binaries over 64-bit ones 32-bit + /usr/bin/valgrind can find 64-bit valgrind helper binaries + (#249773) +- power5+ and power6 support (#240762) + +* Thu Jun 28 2007 Jakub Jelinek 3.2.3-4 +- pass GDB=%%{_prefix}/gdb to configure to fix default + --db-command (#220840) + +* Wed Jun 27 2007 Jakub Jelinek 3.2.3-3 +- add suppressions for glibc >= 2.6 +- avoid valgrind internal error if io_destroy syscall is + passed a bogus argument + +* Tue Feb 13 2007 Jakub Jelinek 3.2.3-2 +- fix valgrind.pc again + +* Tue Feb 13 2007 Jakub Jelinek 3.2.3-1 +- update to 3.2.3 + +* Wed Nov 8 2006 Jakub Jelinek 3.2.1-7 +- some cachegrind improvements (Ulrich Drepper) + +* Mon Nov 6 2006 Jakub Jelinek 3.2.1-6 +- fix valgrind.pc (#213149) +- handle Intel Core2 cache sizes in cachegrind (Ulrich Drepper) + +* Wed Oct 25 2006 Jakub Jelinek 3.2.1-5 +- fix valgrind on ppc/ppc64 where PAGESIZE is 64K (#211598) + +* Sun Oct 1 2006 Jakub Jelinek 3.2.1-4 +- adjust for glibc-2.5 + +* Wed Sep 27 2006 Jakub Jelinek 3.2.1-3 +- another DW_CFA_set_loc handling fix + +* Tue Sep 26 2006 Jakub Jelinek 3.2.1-2 +- fix openat handling (#208097) +- fix DW_CFA_set_loc handling + +* Tue Sep 19 2006 Jakub Jelinek 3.2.1-1 +- update to 3.2.1 bugfix release + - SSE3 emulation fixes, reduce memcheck false positive rate, + 4 dozens of bugfixes + +* Mon Aug 21 2006 Jakub Jelinek 3.2.0-5 +- handle the new i686/x86_64 nops (#203273) + +* Fri Jul 28 2006 Jeremy Katz - 1:3.2.0-4 +- rebuild to bring ppc back + +* Wed Jul 12 2006 Jesse Keating - 1:3.2.0-3.1 +- rebuild + +* Fri Jun 16 2006 Jakub Jelinek 3.2.0-3 +- handle [sg]et_robust_list syscall on ppc{32,64} + +* Fri Jun 16 2006 Jakub Jelinek 3.2.0-2 +- fix ppc64 symlink to 32-bit valgrind libdir +- handle a few extra ppc64 syscalls + +* Thu Jun 15 2006 Jakub Jelinek 3.2.0-1 +- update to 3.2.0 + - ppc64 support + +* Fri May 26 2006 Jakub Jelinek 3.1.1-3 +- handle [sg]et_robust_list syscalls on i?86/x86_64 +- handle *at syscalls on ppc +- ensure on x86_64 both 32-bit and 64-bit glibc{,-devel} are + installed in the buildroot (#191820) + +* Wed Apr 12 2006 Jakub Jelinek 3.1.1-2 +- handle many syscalls that were unhandled before, especially on ppc + +* Mon Apr 3 2006 Jakub Jelinek 3.1.1-1 +- upgrade to 3.1.1 + - many bugfixes + +* Mon Mar 13 2006 Jakub Jelinek 3.1.0-2 +- add support for DW_CFA_val_offset{,_sf}, DW_CFA_def_cfa_sf + and skip over DW_CFA_val_expression quietly +- adjust libc/ld.so filenames in glibc-2.4.supp for glibc 2.4 + release + +* Mon Jan 9 2006 Jakub Jelinek 3.1.0-1 +- upgrade to 3.1.0 (#174582) + - many bugfixes, ppc32 support + +* Thu Oct 13 2005 Jakub Jelinek 3.0.1-2 +- remove Obsoletes for valgrind-callgrind, as it has been + ported to valgrind 3.0.x already + +* Sun Sep 11 2005 Jakub Jelinek 3.0.1-1 +- upgrade to 3.0.1 + - many bugfixes +- handle xattr syscalls on x86-64 (Ulrich Drepper) + +* Fri Aug 12 2005 Jakub Jelinek 3.0.0-3 +- fix amd64 handling of cwtd instruction +- fix amd64 handling of e.g. sarb $0x4,val(%%rip) +- speedup amd64 insn decoding + +* Fri Aug 12 2005 Jakub Jelinek 3.0.0-2 +- lower x86_64 stage2 base from 112TB down to 450GB, so that + valgrind works even on 2.4.x kernels. Still way better than + 1.75GB that stock valgrind allows + +* Fri Aug 12 2005 Jakub Jelinek 3.0.0-1 +- upgrade to 3.0.0 + - x86_64 support +- temporarily obsolete valgrind-callgrind, as it has not been + ported yet + +* Tue Jul 12 2005 Jakub Jelinek 2.4.0-3 +- build some insn tests with -mmmx, -msse or -msse2 (#161572) +- handle glibc-2.3.90 the same way as 2.3.[0-5] + +* Wed Mar 30 2005 Jakub Jelinek 2.4.0-2 +- resurrect the non-upstreamed part of valgrind_h patch +- remove 2.1.2-4G patch, seems to be upstreamed +- resurrect passing -fno-builtin in memcheck tests + +* Sun Mar 27 2005 Colin Walters 2.4.0-1 +- New upstream version +- Update valgrind-2.2.0-regtest.patch to 2.4.0; required minor + massaging +- Disable valgrind-2.1.2-4G.patch for now; Not going to touch this, + and Fedora does not ship 4G kernel by default anymore +- Remove upstreamed valgrind-2.2.0.ioctls.patch +- Remove obsolete valgrind-2.2.0-warnings.patch; Code is no longer + present +- Remove upstreamed valgrind-2.2.0-valgrind_h.patch +- Remove obsolete valgrind-2.2.0-unnest.patch and + valgrind-2.0.0-pthread-stacksize.patch; valgrind no longer + includes its own pthread library + +* Thu Mar 17 2005 Jakub Jelinek 2.2.0-10 +- rebuilt with GCC 4 + +* Tue Feb 8 2005 Jakub Jelinek 2.2.0-8 +- avoid unnecessary use of nested functions for pthread_once + cleanup + +* Mon Dec 6 2004 Jakub Jelinek 2.2.0-7 +- update URL (#141873) + +* Tue Nov 16 2004 Jakub Jelinek 2.2.0-6 +- act as if NVALGRIND is defined when using + in non-m32/i386 programs (#138923) +- remove weak from VALGRIND_PRINTF*, make it static and + add unused attribute + +* Mon Nov 8 2004 Jakub Jelinek 2.2.0-4 +- fix a printout and possible problem with local variable + usage around setjmp (#138254) + +* Tue Oct 5 2004 Jakub Jelinek 2.2.0-3 +- remove workaround for buggy old makes (#134563) + +* Fri Oct 1 2004 Jakub Jelinek 2.2.0-2 +- handle some more ioctls (Peter Jones, #131967) + +* Thu Sep 2 2004 Jakub Jelinek 2.2.0-1 +- update to 2.2.0 + +* Thu Jul 22 2004 Jakub Jelinek 2.1.2-3 +- fix packaging of documentation + +* Tue Jul 20 2004 Jakub Jelinek 2.1.2-2 +- allow tracing of 32-bit binaries on x86-64 + +* Tue Jul 20 2004 Jakub Jelinek 2.1.2-1 +- update to 2.1.2 +- run make regtest as part of package build +- use glibc-2.3 suppressions instead of glibc-2.2 suppressions + +* Thu Apr 29 2004 Colin Walters 2.0.0-1 +- update to 2.0.0 + +* Tue Feb 25 2003 Jeff Johnson 1.9.4-0.20030228 +- update to 1.9.4 from CVS. +- dwarf patch from Graydon Hoare. +- sysinfo patch from Graydon Hoare, take 1. + +* Fri Feb 14 2003 Jeff Johnson 1.9.3-6.20030207 +- add return codes to syscalls. +- fix: set errno after syscalls. + +* Tue Feb 11 2003 Graydon Hoare 1.9.3-5.20030207 +- add handling for separate debug info (+fix). +- handle blocking readv/writev correctly. +- comment out 4 overly zealous pthread checks. + +* Tue Feb 11 2003 Jeff Johnson 1.9.3-4.20030207 +- move _pthread_desc to vg_include.h. +- implement pthread_mutex_timedlock(). +- implement pthread_barrier_wait(). + +* Mon Feb 10 2003 Jeff Johnson 1.9.3-3.20030207 +- import all(afaik) missing functionality from linuxthreads. + +* Sun Feb 9 2003 Jeff Johnson 1.9.3-2.20030207 +- import more missing functionality from linuxthreads in glibc-2.3.1. + +* Sat Feb 8 2003 Jeff Johnson 1.9.3-1.20030207 +- start fixing nptl test cases. + +* Fri Feb 7 2003 Jeff Johnson 1.9.3-0.20030207 +- build against current 1.9.3 with nptl hacks. + +* Tue Oct 15 2002 Alexander Larsson +- Update to 1.0.4 + +* Fri Aug 9 2002 Alexander Larsson +- Update to 1.0.0 + +* Wed Jul 3 2002 Alexander Larsson +- Update to pre4. + +* Tue Jun 18 2002 Alexander Larsson +- Add threadkeys and extra suppressions patches. Bump epoch. + +* Mon Jun 17 2002 Alexander Larsson +- Updated to 1.0pre1 + +* Tue May 28 2002 Alex Larsson +- Updated to 20020524. Added GLIBC_PRIVATE patch + +* Thu May 9 2002 Jonathan Blandford +- add missing symbol __pthread_clock_settime + +* Wed May 8 2002 Alex Larsson +- Update to 20020508 + +* Mon May 6 2002 Alex Larsson +- Update to 20020503b + +* Thu May 2 2002 Alex Larsson +- update to new snapshot + +* Mon Apr 29 2002 Alex Larsson 20020428-1 +- update to new snapshot + +* Fri Apr 26 2002 Jeremy Katz 20020426-1 +- update to new snapshot + +* Thu Apr 25 2002 Alex Larsson 20020424-5 +- Added stack patch. Commented out other patches. + +* Wed Apr 24 2002 Nalin Dahyabhai 20020424-4 +- filter out GLIBC_PRIVATE requires, add preload patch + +* Wed Apr 24 2002 Alex Larsson 20020424-3 +- Make glibc 2.2 and XFree86 4 the default supressions + +* Wed Apr 24 2002 Alex Larsson 20020424-2 +- Added patch that includes atomic.h + +* Wed Apr 24 2002 Alex Larsson 20020424-1 +- Initial build