From patchwork Wed Nov 22 12:15:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Ellerman X-Patchwork-Id: 840393 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yhhJ20l3Rz9s7B for ; Wed, 22 Nov 2017 23:16:02 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3yhhJ16mHJzDr5w for ; Wed, 22 Nov 2017 23:16:01 +1100 (AEDT) X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Received: from ozlabs.org (ozlabs.org [IPv6:2401:3900:2:1::2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3yhhHs0LYVzDr1w for ; Wed, 22 Nov 2017 23:15:53 +1100 (AEDT) Received: by ozlabs.org (Postfix, from userid 1034) id 3yhhHr5qLwz9s7g; Wed, 22 Nov 2017 23:15:52 +1100 (AEDT) From: Michael Ellerman To: skiboot@lists.ozlabs.org Date: Wed, 22 Nov 2017 23:15:50 +1100 Message-Id: <20171122121550.18051-1-mpe@ellerman.id.au> X-Mailer: git-send-email 2.14.3 Subject: [Skiboot] [PATCH] make check: Make valgrind optional X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" To (slightly) lower the barrier for contributions, we can make valgrind optional with just a small amount of plumbing. This allows make check to run successfully without valgrind. Signed-off-by: Michael Ellerman --- Makefile | 3 +++ Makefile.main | 8 +++++++- core/test/run-trace.c | 2 +- hdata/test/hdata_to_dt.c | 2 +- include/skiboot-valgrind.h | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 include/skiboot-valgrind.h diff --git a/Makefile b/Makefile index f88663df2b27..0aafdfbc7d72 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,9 @@ endif # DEBUG ?= 0 +# Run tests under valgrind? +USE_VALGRIND ?= 1 + # # Optional location of embedded linux kernel file # This can be a raw vmlinux, stripped vmlinux or diff --git a/Makefile.main b/Makefile.main index 5ca1f8d7c9ba..4713f86733e5 100644 --- a/Makefile.main +++ b/Makefile.main @@ -43,7 +43,7 @@ HOSTCFLAGS += -DDEBUG -DCCAN_LIST_DEBUG HOSTGCOVCFLAGS = -fprofile-arcs -ftest-coverage -lgcov -O0 -g -pg -VALGRIND=valgrind -q --show-reachable=yes --error-exitcode=99 +VALGRIND := valgrind -q --show-reachable=yes --error-exitcode=99 # Target options @@ -88,6 +88,12 @@ ifeq ($(SKIBOOT_GCOV),1) CFLAGS += -fprofile-arcs -ftest-coverage -DSKIBOOT_GCOV=1 endif +ifeq ($(USE_VALGRIND),1) +CFLAGS += -DUSE_VALGRIND=1 +else +VALGRIND := +endif + # Stack protector disabled for now. gcc tends to use the TLS to # access the canary (depending on how gcc was built), and this won't # work for us. diff --git a/core/test/run-trace.c b/core/test/run-trace.c index 980168868680..c319c05a3b92 100644 --- a/core/test/run-trace.c +++ b/core/test/run-trace.c @@ -26,7 +26,7 @@ #include #include -#include +#include /* Don't include these: PPC-specific */ #define __CPU_H diff --git a/hdata/test/hdata_to_dt.c b/hdata/test/hdata_to_dt.c index f59791480a14..634d7a716dee 100644 --- a/hdata/test/hdata_to_dt.c +++ b/hdata/test/hdata_to_dt.c @@ -27,7 +27,7 @@ #include #include -#include +#include #include "../../libfdt/fdt.c" #include "../../libfdt/fdt_ro.c" diff --git a/include/skiboot-valgrind.h b/include/skiboot-valgrind.h new file mode 100644 index 000000000000..bdeaa8f64ac3 --- /dev/null +++ b/include/skiboot-valgrind.h @@ -0,0 +1,35 @@ +/* Copyright 2017 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __SKIBOOT_VALGRIND_H +#define __SKIBOOT_VALGRIND_H + +#ifdef USE_VALGRIND +#include +#include +#else + +#define RUNNING_ON_VALGRIND 0 + +#define VALGRIND_MAKE_MEM_UNDEFINED(p, len) \ + do { \ + (void)(p); \ + (void)(len); \ + } while (0) + +#endif + +#endif /* __SKIBOOT_VALGRIND_H */