[PATCH] libdw: add thread-safety to dwarf_getabbrev()

Mark Wielaard mark@klomp.org
Wed Aug 21 21:50:00 GMT 2019


On Fri, 2019-08-16 at 14:24 -0500, Jonathon Anderson wrote:
> diff --git a/ChangeLog b/ChangeLog
> index bed3999f..93907ddd 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,8 @@
> +2019-08-15  Jonathon Anderson <jma14@rice.edu>
> +
> +	* configure.ac: Add new --enable-valgrind-annotations
> +	* configure.ac: Add new --with-valgrind (headers only)
> +
>  2019-08-13  Mark Wielaard  <mark@klomp.org>
> 
>  	* configure.ac: Set version to 0.177.
> diff --git a/configure.ac b/configure.ac
> index c443fa3b..c5406b44 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -323,6 +323,35 @@ if test "$use_valgrind" = yes; then
>  fi
>  AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes)
> 
> +AC_ARG_WITH([valgrind],
> +AS_HELP_STRING([--with-valgrind],[include directory for Valgrind 
> headers]),
> +[with_valgrind_headers=$withval], [with_valgrind_headers=no])
> +if test "x$with_valgrind_headers" != xno; then
> +    save_CFLAGS="$CFLAGS"
> +    CFLAGS="$CFLAGS -I$with_valgrind_headers"
> +    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
> +      #include <valgrind/valgrind.h>
> +      int main() { return 0; }
> +    ]])], [ HAVE_VALGRIND_HEADERS="yes"
> +            CFLAGS="$save_CFLAGS -I$with_valgrind_headers" ],
> +          [ AC_MSG_ERROR([invalid valgrind include directory: 
> $with_valgrind_headers]) ])
> +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])
> +if test "$use_vg_annotations" = yes; then
> +    if test "x$HAVE_VALGRIND_HEADERS" != "xyes"; then
> +      AC_MSG_CHECKING([whether Valgrind headers are available])
> +      AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
> +        #include <valgrind/valgrind.h>
> +        int main() { return 0; }
> +      ]])], [ AC_MSG_RESULT([yes]) ],
> +            [ AC_MSG_ERROR([valgrind annotations requested but no 
> headers are available]) ])
> +    fi
> +fi
> +AM_CONDITIONAL(USE_VG_ANNOTATIONS, test "$use_vg_annotations" = yes)
> +
>  AC_ARG_ENABLE([install-elfh],
>  AS_HELP_STRING([--enable-install-elfh],[install elf.h in include dir]),
>                 [install_elfh=$enableval], [install_elfh=no])
> @@ -668,6 +697,7 @@ AC_MSG_NOTICE([
>    OTHER FEATURES
>      Deterministic archives by default  : ${default_ar_deterministic}
>      Native language support            : ${USE_NLS}
> +    Extra Valgrind annotations         : ${use_vg_annotations}
> 
>    EXTRA TEST FEATURES (used with make check)
>      have bunzip2 installed (required)  : ${HAVE_BUNZIP2}

This part sets up things so we can include extra valgrind annotations,
but then doesn't seem to be used. It sounds useful though, because
valgrind/helgrind won't know about any of the atomics. Is this
something you added, but then removed?

Thanks,

Mark

P.S. It looks like something decided to add some line breaks in the
patch so that it doesn't easily apply. It isn't hard to fixup, but you
might want to consider submitting using git send-email or attaching the
result of git format-patch instead of putting the patch in the message
body.



More information about the Elfutils-devel mailing list