From fba0882bcdfd919727ee9ee8523ef3156daab507 Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Wed, 23 Mar 2022 14:04:48 -0400 Subject: 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 Reviewed-by: Simon Glass --- Kconfig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Kconfig') 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 -- cgit v1.2.3