summaryrefslogtreecommitdiff
path: root/Kconfig
diff options
context:
space:
mode:
authorSean Anderson <seanga2@gmail.com>2022-03-23 14:04:48 -0400
committerTom Rini <trini@konsulko.com>2022-04-11 10:00:30 -0400
commitfba0882bcdfd919727ee9ee8523ef3156daab507 (patch)
tree0194b60db3128539d5d9752f0560acbfc7765bab /Kconfig
parentb598957206e541b3f8876ae34a15fac6da90dcef (diff)
Add valgrind headers to U-Boot
Valgrind uses magic code sequences to define an ABI that the client may use to request behavior from the host. In particular, this may be used to inform valgrind about custom allocators, such as the one used in U-Boot. This adds headers defining these sequences to U-Boot. It also adds a config option to disable emission of these sequences entirely, in the (likely) event that the user does not wish to use valgrind. Note that this option is called NVALGRIND upstream, but was renamed (and inverted) to CONFIG_VALGRIND. Aside from this and the conversion of a few instances of VALGRIND_DO_CLIENT_REQUEST_EXPR to STMT, these headers are unmodified. These headers were copied from valgrind 3.16.1-4 as distributed in Arch Linux. They are licensed with the bzip2 1.16 license. This appears to be a BSD license with some clauses from Zlib. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'Kconfig')
-rw-r--r--Kconfig14
1 files changed, 14 insertions, 0 deletions
diff --git a/Kconfig b/Kconfig
index 35c6acdd3c..0ee3068b9a 100644
--- a/Kconfig
+++ b/Kconfig
@@ -297,6 +297,20 @@ config TPL_SYS_MALLOC_F_LEN
particular needs this to operate, so that it can allocate the
initial serial device and any others that are needed.
+config VALGRIND
+ bool "Inform valgrind about memory allocations"
+ help
+ Valgrind is an instrumentation framework for building dynamic analysis
+ tools. In particular, it may be used to detect memory management bugs
+ in U-Boot. It relies on knowing when heap blocks are allocated in
+ order to give accurate results. This happens automatically for
+ standard allocator functions provided by the host OS. However, this
+ doesn't automatically happen for U-Boot's malloc implementation.
+
+ Enable this option to annotate U-Boot's malloc implementation so that
+ it can be handled accurately by Valgrind. If you aren't planning on
+ using valgrind to debug U-Boot, say 'n'.
+
menuconfig EXPERT
bool "Configure standard U-Boot features (expert users)"
default y