From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752618AbbCPAix (ORCPT ); Sun, 15 Mar 2015 20:38:53 -0400 Received: from ozlabs.org ([103.22.144.67]:57901 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750937AbbCPAiv (ORCPT ); Sun, 15 Mar 2015 20:38:51 -0400 Message-ID: <1426466329.21900.2.camel@ellerman.id.au> Subject: Re: [PATCH] selftests: Fix build failures when invoked from kselftest target From: Michael Ellerman To: Shuah Khan Cc: linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Date: Mon, 16 Mar 2015 11:38:49 +1100 In-Reply-To: <1426297504-14432-1-git-send-email-shuahkh@osg.samsung.com> References: <1426297504-14432-1-git-send-email-shuahkh@osg.samsung.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.10-0ubuntu1~14.10.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2015-03-13 at 19:45 -0600, Shuah Khan wrote: > Several tests that rely on implicit build rules fail to build, > when invoked from the main Makefile kselftest target. These > failures are due to --no-builtin-rules and --no-builtin-variables > options set in the inherited MAKEFLAGS. > > --no-builtin-rules eliminates the use of built-in implicit rules > and --no-builtin-variables is for not defining built-in variables. > These two options override the use of implicit rules resulting in > build failures. In addition, inherited LDFLAGS result in build > failures and there is no need to define LDFLAGS. Clear LDFLAGS > and MAKEFLAG when make is invoked from the main Makefile kselftest > target. Fixing this at selftests Makefile avoids changing the main > Makefile and keeps this change self contained at selftests level. > > Signed-off-by: Shuah Khan > --- > tools/testing/selftests/Makefile | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile > index 4e51122..8e09db7 100644 > --- a/tools/testing/selftests/Makefile > +++ b/tools/testing/selftests/Makefile > @@ -22,6 +22,15 @@ TARGETS += vm > TARGETS_HOTPLUG = cpu-hotplug > TARGETS_HOTPLUG += memory-hotplug > > +# Clear LDFLAGS and MAKEFLAGS if called from main > +# Makefile to avoid test build failures when test > +# Makefile doesn't have explicit build rules. > +ifeq (1,$(MAKELEVEL)) > +undefine LDFLAGS > +override define MAKEFLAGS = > +endef > +endif You shouldn't need to use define/endef here, that is just for multi-line variables. This should be equivalent: ifeq (1,$(MAKELEVEL)) undefine LDFLAGS override MAKEFLAGS = endif cheers