mirror of https://gitlab.com/qemu-project/dtc.git
Make valgrind optional
Some platforms don't have valgrind support, and sometimes you simply might not want to use valgrind. But at present, dtc, or more specifically its testsuite, won't compile without valgrind because we use the valgrind client interface in some places to improve our testing and suppress false positives. This adds some Makefile detection to correctly handle the case where valgrind is not available. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
fd06c54d47
commit
b94c056b13
|
@ -25,11 +25,8 @@ matrix:
|
|||
- make
|
||||
- make check && make checkm
|
||||
|
||||
# Check it builds properly without the python bits
|
||||
- addons:
|
||||
apt:
|
||||
packages:
|
||||
- valgrind
|
||||
script:
|
||||
# Check it builds properly without optional packages:
|
||||
# python, valgrind
|
||||
- script:
|
||||
- make
|
||||
- make check
|
||||
|
|
7
Makefile
7
Makefile
|
@ -39,6 +39,13 @@ INCLUDEDIR = $(PREFIX)/include
|
|||
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
|
||||
sed -e 's/\(cygwin\|msys\).*/\1/')
|
||||
|
||||
NO_VALGRIND := $(shell $(PKG_CONFIG) --exists valgrind; echo $$?)
|
||||
ifeq ($(NO_VALGRIND),1)
|
||||
CFLAGS += -DNO_VALGRIND
|
||||
else
|
||||
CFLAGS += $(shell $(PKG_CONFIG) --cflags valgrind)
|
||||
endif
|
||||
|
||||
ifeq ($(HOSTOS),darwin)
|
||||
SHAREDLIB_EXT = dylib
|
||||
SHAREDLIB_CFLAGS = -fPIC
|
||||
|
|
|
@ -83,8 +83,13 @@ tests_clean:
|
|||
check: tests ${TESTS_BIN} $(TESTS_PYLIBFDT)
|
||||
cd $(TESTS_PREFIX); ./run_tests.sh
|
||||
|
||||
ifeq ($(NO_VALGRIND),1)
|
||||
checkm:
|
||||
@echo "make checkm requires valgrind, but NO_VALGRIND=1"
|
||||
else
|
||||
checkm: tests ${TESTS_BIN} $(TESTS_PYLIBFDT)
|
||||
cd $(TESTS_PREFIX); ./run_tests.sh -m 2>&1 | tee vglog.$$$$
|
||||
endif
|
||||
|
||||
checkv: tests ${TESTS_BIN} $(TESTS_PYLIBFDT)
|
||||
cd $(TESTS_PREFIX); ./run_tests.sh -v
|
||||
|
|
|
@ -30,7 +30,17 @@
|
|||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#if NO_VALGRIND
|
||||
static inline void VALGRIND_MAKE_MEM_UNDEFINED(void *p, size_t len)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void VALGRIND_MAKE_MEM_DEFINED(void *p, size_t len)
|
||||
{
|
||||
}
|
||||
#else
|
||||
#include <valgrind/memcheck.h>
|
||||
#endif
|
||||
|
||||
#include <libfdt.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue