From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753514AbaCBORs (ORCPT ); Sun, 2 Mar 2014 09:17:48 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:51080 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752476AbaCBORr (ORCPT ); Sun, 2 Mar 2014 09:17:47 -0500 Date: Sun, 02 Mar 2014 23:17:42 +0900 Message-ID: <87sir0ofax.wl%satoru.takeuchi@gmail.com> From: Satoru Takeuchi To: Steven Rostedt Cc: Satoru Takeuchi , LKML Subject: Re: [PATCH 2/2] ktest: run make mrproper not only for OUTPUT_DIR but also for BUILD_DIR to avoid build failure In-Reply-To: <20140302082916.58199d86@gandalf.local.home> References: <87vbvwokq8.wl%satoru.takeuchi@gmail.com> <87txbgokl3.wl%satoru.takeuchi@gmail.com> <20140302082916.58199d86@gandalf.local.home> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/23.4 Mule/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At Sun, 2 Mar 2014 08:29:16 -0500, Steven Rostedt wrote: > > On Sun, 02 Mar 2014 21:23:36 +0900 > Satoru Takeuchi wrote: > > > From: Satoru Takeuchi > > > > Build failure hapens with the following log if BUILD_DIR is dirty. > > If you want to do make mrproper in the BUILD_DIR, add the command to > PRE_BUILD or something. I have TAGS in my BUILD_DIRs and this will > remove them for me. I can't accept this change. > > I've noticed that there's a bug in the Linux make system that causes > the O=.. builds to fail because somehow the source directory got dirty. > We need to figure out what that bug is. I see. So what I should fix is kbuild system. Thanks, Satoru > > Thanks, > > -- Steve > > > > > > =============================================================================== > > ... > > RUNNING TEST 1 of 1 with option build olddefconfig > > > > make O=/home/sat/ktest/output mrproper ... CLEAN arch/x86/tools > > CLEAN scripts/basic > > CLEAN scripts/kconfig > > CLEAN include/config include/generated arch/x86/include/generated > > CLEAN .config.old include/generated/uapi/linux/version.h > > SUCCESS > > ... > > make O=/home/sat/ktest/output -j8 ... GEN /home/sat/ktest/output/Makefile > > ... > > Using /home/sat/src/test-linux-stable/linux-stable as source for kernel > > /home/sat/src/test-linux-stable/linux-stable is not clean, please run 'make mrproper' > > in the '/home/sat/src/test-linux-stable/linux-stable' directory. > > make[1]: *** [prepare3] Error 1 > > make[1]: *** Waiting for unfinished jobs.... > > HOSTLD arch/x86/tools/relocs > > make[1]: *** wait: No child processes. Stop. > > make: *** [sub-make] Error 2 > > FAILED! > > CRITICAL FAILURE... failed build > > =============================================================================== > > > > To avoid this problem, it's necessary to run make mrproper not only > > for OUTPUT_DIR, but also for BUILD_DIR. > > > > Signed-off-by: Satoru Takeuchi > > Cc: Steven Rostedt > > > > --- > > tools/testing/ktest/ktest.pl | 16 +++++++++------- > > 1 file changed, 9 insertions(+), 7 deletions(-) > > > > diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl > > index f731ef6..1169b2a 100755 > > --- a/tools/testing/ktest/ktest.pl > > +++ b/tools/testing/ktest/ktest.pl > > @@ -120,6 +120,7 @@ my $syslinux; > > my $syslinux_path; > > my $syslinux_label; > > my $target; > > +my $makecmd; > > my $make; > > my $pre_install; > > my $post_install; > > @@ -2198,6 +2199,11 @@ sub load_force_config { > > close IN; > > } > > > > +sub mrproper { > > + run_command "$makecmd mrproper" or dodie "make mrproper for $builddir"; > > + run_command "$make mrproper" or dodie "make mrproper for $outputdir"; > > +} > > + > > sub build { > > my ($type) = @_; > > > > @@ -2235,17 +2241,13 @@ sub build { > > if (!$noclean) { > > run_command "mv $output_config $outputdir/config_temp" or > > dodie "moving .config"; > > - > > - run_command "$make mrproper" or dodie "make mrproper"; > > - > > + mrproper; > > run_command "mv $outputdir/config_temp $output_config" or > > dodie "moving config_temp"; > > } > > - > > } elsif (!$noclean) { > > unlink "$output_config"; > > - run_command "$make mrproper" or > > - dodie "make mrproper"; > > + mrproper; > > } > > > > # add something to distinguish this build > > @@ -3996,7 +3998,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { > > > > undef %force_config; > > > > - my $makecmd = set_test_option("MAKE_CMD", $i); > > + $makecmd = set_test_option("MAKE_CMD", $i); > > > > $outputdir = set_test_option("OUTPUT_DIR", $i); > > $builddir = set_test_option("BUILD_DIR", $i); >