Hi Aaron, On Tue, 2025-02-04 at 16:50 -0500, Aaron Merey wrote: > Like --enable-valgrind but uses helgrind instead of memcheck. > > If both --enable-valgrind and --enable-helgrind are given then > helgrind takes priority. > > --enable-helgrind requires --enable-valgrind-annotations. > > * configure.ac: Add --enable-helgrind option. > * tests/Makefile.am: If USE_HELGRIND is true, then include > --tool=helgrind in the valgrind command that tests are run > under. > > Signed-off-by: Aaron Merey <ame...@redhat.com> > --- > v2 changes: Enabing helgrind now requires enabling annotations
This looks good. It will clash with your recent --track-fds=yes changes. But that should be easy to resolve (--track-fds works with both memcheck and helgrind, so you can simply add it to both valgrind_cmd assignments. Thanks, Mark > configure.ac | 16 ++++++++++++++-- > tests/Makefile.am | 6 +++++- > 2 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/configure.ac b/configure.ac > index e57d3927..bb1788d4 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -363,10 +363,15 @@ if test "$use_address" = yes; then > fi > AM_CONDITIONAL(USE_ADDRESS_SANITIZER, test "$use_address" = yes) > > +AC_ARG_ENABLE([helgrind], > +AS_HELP_STRING([--enable-helgrind],[run all tests under the valgrind tool > helgrind]), > +[use_helgrind=$enableval], [use_helgrind=no]) > + > AC_ARG_ENABLE([valgrind], > AS_HELP_STRING([--enable-valgrind],[run all tests under valgrind]), > [use_valgrind=$enableval], [use_valgrind=no]) > -if test "$use_valgrind" = yes; then > +if test "$use_valgrind" = yes -o "$use_helgrind" = yes; then > + > if test "$use_address" = yes; then > AC_MSG_ERROR([cannot enable valgrind and sanitize address together]) > fi > @@ -375,7 +380,8 @@ if test "$use_valgrind" = yes; then > AC_MSG_ERROR([valgrind not found]) > fi > fi > -AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes) > +AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes -o "$use_helgrind" = > yes) > +AM_CONDITIONAL(USE_HELGRIND, test "$use_helgrind" = yes) > > AC_ARG_WITH([valgrind], > AS_HELP_STRING([--with-valgrind],[include directory for Valgrind headers]), > @@ -394,6 +400,12 @@ fi > AC_ARG_ENABLE([valgrind-annotations], > AS_HELP_STRING([--enable-valgrind-annotations],[insert extra annotations for > better valgrind support]), > [use_vg_annotations=$enableval], [use_vg_annotations=no]) > + > +# Helgrind requires Valgrind annotations. > +if test "$use_vg_annotations" = no -a "$use_helgrind" = yes; then > + AC_MSG_ERROR(["--enable-helgrind requires --enable-valgrind-annotations"]) > +fi > + > if test "$use_vg_annotations" = yes; then > if test "x$HAVE_VALGRIND_HEADERS" != "xyes"; then > AC_MSG_CHECKING([whether Valgrind headers are available]) > diff --git a/tests/Makefile.am b/tests/Makefile.am > index 8f087798..e4fe72f0 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -691,8 +691,12 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh > \ > testfile-sysroot.tar.bz2 run-sysroot.sh run-debuginfod-seekable.sh > > > +if USE_HELGRIND > +valgrind_cmd=valgrind -q --tool=helgrind --error-exitcode=1 > +else > if USE_VALGRIND > -valgrind_cmd=valgrind -q --leak-check=full --error-exitcode=1 > +valgrind_cmd=valgrind -q --leak-check=full --error-exitcode=1 > +endif > endif > >