configure: Add basic valgrind-memcheck support

With the parameter --valgrind-memcheck, the configure script sets
reasonable defaults that can be overridden as explained in the
documentation.

The idea of using set_defaults is from Luca Barbato.
This commit is contained in:
Reinhard Tartler 2013-05-04 10:25:41 +02:00
parent 95e8ac60f8
commit b1ee8eec84
2 changed files with 18 additions and 2 deletions

8
configure vendored
View File

@ -2210,6 +2210,10 @@ case "$toolchain" in
add_cflags -fsanitize=thread -pie add_cflags -fsanitize=thread -pie
add_ldflags -fsanitize=thread -pie add_ldflags -fsanitize=thread -pie
;; ;;
valgrind-memcheck)
target_exec_default="valgrind"
target_exec_args="--track-origins=yes --leak-check=full"
;;
msvc) msvc)
cc_default="c99wrap cl" cc_default="c99wrap cl"
ld_default="c99wrap link" ld_default="c99wrap link"
@ -2226,7 +2230,7 @@ case "$toolchain" in
;; ;;
esac esac
set_default arch cc pkg_config sysinclude target_os set_default arch cc pkg_config sysinclude target_exec target_os
enabled cross_compile || host_cc_default=$cc enabled cross_compile || host_cc_default=$cc
set_default host_cc set_default host_cc
@ -4024,7 +4028,7 @@ HOSTCC_DEPFLAGS=$HOSTCC_DEPFLAGS
HOSTCC_C=$HOSTCC_C HOSTCC_C=$HOSTCC_C
HOSTCC_O=$HOSTCC_O HOSTCC_O=$HOSTCC_O
HOSTLD_O=$HOSTLD_O HOSTLD_O=$HOSTLD_O
TARGET_EXEC=$target_exec TARGET_EXEC=$target_exec $target_exec_args
TARGET_PATH=$target_path TARGET_PATH=$target_path
LIBS-avplay=$sdl_libs LIBS-avplay=$sdl_libs
CFLAGS-avplay=$sdl_cflags CFLAGS-avplay=$sdl_cflags

View File

@ -574,6 +574,18 @@ You can use the command @code{make lcov-reset} to reset the coverage
measurements. You will need to rerun @code{make lcov} after running a measurements. You will need to rerun @code{make lcov} after running a
new test. new test.
@subsection Using Valgrind
The configure script provides a shortcut for using valgrind to spot bugs
related to memory handling. Just add the option
@code{--toolchain=valgrind-memcheck} to your configure line, and
reasonable defaults will be set for running FATE under the supervision
of the @strong{memcheck} tool of the valgrind suite.
In case you need finer control over how valgrind is invoked, use the
@code{--target-exec='valgrind <your_custom_valgrind_options>} option in
your configure line instead.
@anchor{Release process} @anchor{Release process}
@section Release process @section Release process