On 03/25/10 11:35, Piotr Hosowicz 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. >>>>>> and CONFIG_SYSRQ=n (just found some errors due to this one) >>>>> You mean CONFIG_SYSRQ=n exactly and mandatory in every config or this >>>>> was just an example? >>>> Sorry about that. Just make it random (sometimes disabled). The config symbol above should be CONFIG_MAGIC_SYSRQ. > Ok, but at present is not working properly, as expected. The scripts now > are like this, I returned to randomizing with bash: > > --- try-build.sh > > #!/bin/bash > > RCPT=phz@localhost > CPUCNT=$(cat /proc/cpuinfo | grep ^processor | wc -l) > > 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-conf2.sh > ./.config > make oldconfig I am using: yes '' | make oldconfig > cp .config ../results/ > DT=$(date +%y%m%d-%H%M%S) > make -j $CPUCNT vmlinux 2>&1 | tee ../results/build.log > if test $? -ne 0 ; then > (cat ../results/.config && cat ../results/build.log) | mail -s > 'Build failed at kernel phase' $RCPT > mv ../results/.config ../results/.config.kf.$DT > mv ../results/build.log ../results/build.log.$DT > tidy > exit 0 > fi > make -j $CPUCNT modules 2>&1 | tee -a ../results/build.log > if test $? -ne 0 ; then > (cat ../results/.config && cat ../results/build.log) | mail -s > 'Build failed at modules phase' $RCPT > mv ../results/.config ../results/.config.mf.$DT > mv ../results/build.log ../results/build.log.$DT > tidy > exit 0 > fi > cp ../results/build.log ./ > rm BUILDING-NOW > echo OK | mail -s 'ok' $RCPT > tidy > > fi > > > --- randomize-conf2.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 '# '$1' is not set' > fi > return > fi > else > echo '# '$1' is not set' > fi > } > > cat ../config.all | grep -v CONFIG_SMP | grep -v CONFIG_SYSFS | grep -v > CONFIG_PROC_FS | grep -v CONFIG_PM | grep -v CONFIG_PCI | grep -v > CONFIG_BLOCK | grep -v CONFIG_NET | grep -v CONFIG_INET | grep -v > CONFIG_HOTPLUG > ./cfg.tmp Note that these grep -v's drop any config that contains CONFIG_whatever, such as CONFIG_PCI_QUIRKS. If you just want to drop those config symbols and no others, I guess you would add "-w" to the grep command. > > ( > enable_or_not CONFIG_SMP > enable_or_not CONFIG_SYSFS > enable_or_not CONFIG_PROC_FS > enable_or_not CONFIG_PM > enable_or_not CONFIG_PCI > enable_or_not CONFIG_BLOCK > enable_or_not CONFIG_NET > enable_or_not CONFIG_INET > enable_or_not CONFIG_HOTPLUG > ) > cat ./cfg.tmp > > I launch try-build.sh, but it still asks me about unspecified options, > my config.all is produced by make defconfig or make oldconfig, dosen't > matter still. > > Do you see what the problem is? It's working for me just be using yes '' | make oldconfig -- ~Randy -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html