From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from 26.mail-out.ovh.net ([91.121.27.225]:52127 "HELO 26.mail-out.ovh.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1754776Ab0CVMxm (ORCPT ); Mon, 22 Mar 2010 08:53:42 -0400 Message-ID: <4BA76852.8000506@example.com> Date: Mon, 22 Mar 2010 13:53:38 +0100 From: Piotr Hosowicz Reply-To: piotr@hosowicz.com MIME-Version: 1.0 Subject: Re: Maybe my frequent kernel building could be of some help to the community? And how to build? References: <4B9FD5D1.8040203@example.com> <4B9FDAF3.9010804@xenotime.net> <20100318084012.0cca4b6a.rdunlap@xenotime.net> <4BA6E49F.3070008@example.com> <4BA6E87D.2030405@xenotime.net> <4BA765B8.5010808@example.com> In-Reply-To: <4BA765B8.5010808@example.com> Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: Randy Dunlap Cc: linux-kbuild@vger.kernel.org Piotr Hosowicz wrote: > Randy Dunlap wrote: >> On 03/21/10 20:31, Piotr Hosowicz wrote: >>> Randy Dunlap wrote: >>> >>>> One thing that you could do that no one focuses on is building >>>> with some kconfig symbols disabled (ones that are typically enabled), >>>> such as CONFIG_SMP=n, CONFIG_SYSFS=n, CONFIG_PROC_FS=n, CONFIG_PM=n, >>>> CONFIG_PCI=n, CONFIG_BLOCK=n, CONFIG_NET=n, CONFIG_INET=n (but latter >>>> with CONFIG_NET=y), CONFIG_HOTPLUG=n. Not all of these at the same >>>> time, >>>> just various/random combinations of them. >>> I am glad I can help. At last I sat down to write the scripts, I was so >>> excited I couldn't fall asleep ;-). I figured it out in such a way: >>> >>> - separate system user for building >>> - in his crontab everyminute a build try starts with randomized options >>> you mentioned - this works, I hope >>> >>> The problem is that it requires my assistance, because it asks a few >>> questions like in make oldconfig when there are new options available. I >>> do not know how to fix this. >>> >>> Here are the scripts: >>> >>> # randomize-conf.sh >>> >>> #!/bin/bash >>> >>> NETENABLED=0 >>> function enable_or_not(){ >>> if test $RANDOM -lt 16383 ; then >>> if test $1=CONFIG_NET ; then >>> NETENABLED=1 >>> echo $1=y >>> return >>> fi >>> if test $1=CONFIG_INET && test $NETENABLED -eq 1 ; then >>> if test $RANDOM -lt 16383 ; then >>> echo $1=y >>> else >>> echo '# CONFIG_'$1' is not set' >>> fi >>> return >>> fi >>> else >>> echo '# CONFIG_'$1' is not set' >>> fi >>> } >>> >>> while read LINE ; do >>> FIRST=$(echo $LINE | cut -d '=' -f 1) >>> case $FIRST in >>> CONFIG_SMP) >>> enable_or_not CONFIG_SMP >>> ;; >>> CONFIG_SYSFS) >>> enable_or_not CONFIG_SYSFS >>> ;; >>> CONFIG_PROC_FS) >>> enable_or_not CONFIG_PROC_FS >>> ;; >>> CONFIG_PM) >>> enable_or_not CONFIG_PM >>> ;; >>> CONFIG_PCI) >>> enable_or_not CONFIG_PCI >>> ;; >>> CONFIG_BLOCK) >>> enable_or_not CONFIG_BLOCK >>> ;; >>> CONFIG_NET) >>> enable_or_not CONFIG_NET >>> ;; >>> CONFIG_INET) >>> enable_or_not CONFIG_INET >>> ;; >>> CONFIG_HOTPLUG) >>> enable_or_not CONFIG_HOTPLUG >>> ;; >>> *) >>> echo $LINE >>> esac >>> done >>> >>> # try-build.sh >>> >>> #!/bin/bash >>> >>> RCPT=phz@localhost >>> >>> function tidy(){ >>> rm ../results/.config 2>/dev/null >>> rm ../results/build.log 2>/dev/null >>> rm ../BUILDING-NOW 2>/dev/null >>> } >>> >>> cd ~/kernel/linux >>> if test -f ../BUILDING-NOW ; then >>> exit 0 >>> else >>> touch ../BUILDING-NOW >>> make mrproper >>> cat ../config.all | ../randomize-conf.sh > ./.config >>> make prepare >> >> Hm, I'm not even familiar with "make prepare". Instead at this point >> I use >> "make oldconfig", and to help it along with answers (non-interactive >> answers, >> that is), use 'yes', like: >> >> yes '' | make oldconfig >> >> I think that this will fix what you described... > > No, it will not. The problem is somewhere in my randomizer. During build > preparation it oldconfig-style asks eg for SMP which is enabled in the > template. It should not ask. Now I observe that it functions randomly. > Sometimes build procedes as expected, sometimes not. I must carefully > think it through, possibly rewrite. The randomizer is severely botched. First error is here: >>> echo '# CONFIG_'$1' is not set' Should be: >>> echo '# '$1' is not set' But it seems that it works, but I do not understand why. Needs rewrite, better config template line parsing. Regards, Piotr Hosowicz -- Na przyjęciu chłopak pyta blondynkę: - Czy mogę cię prosić do walca? - Zgłupiałeś? To już nie miałeś czym przyjechać? NP: Black Stone Cherry - Reverend Wrinkle NB: 2.6.34-rc1-git9-a