Lines Matching full:good

9 #  config-bisect.pl [options] good-config bad-config [good|bad]
12 # Compares a good config to a bad config, then takes half of the diffs
13 # and produces a config that is somewhere between the good config and
15 # good config and will try to make half of the differences of between
16 # the good and bad configs match the bad config. It tries because of
24 # $ config-bisect.pl /path/to/good/config /path/to/bad/config
26 # This will now pull in good config (blowing away .config in that directory
27 # so do not make that be one of the good or bad configs), and then
30 # the good config. It does the same for the bad config as well.
34 # It then copies the result of its good config to /path/to/good/config.tmp
39 # After the first run, determine if the result is good or bad then
42 # For good results:
43 # $ config-bisect.pl /path/to/good/config /path/to/bad/config good
46 # $ config-bisect.pl /path/to/good/config /path/to/bad/config bad
48 # Do not change the good-config or bad-config, config-bisect.pl will
49 # copy the good-config to a temp file with the same name as good-config
52 # If "good" or "bad" is not stated at the end, it will copy the good and
55 # If the last config is labeled "good", then it will copy it to the good .tmp
58 # without the result being equal to either the good or bad .tmp configs.
74 usage: config-bisect.pl [-l linux-tree][-b build-dir] good-config bad-config [good|bad]
77 good-config the config that is considered good
79 "good" add this if the last run produced a good config
81 If "good" or "bad" is not specified, then it is the start of a new bisect
83 Note, each run will create copy of good and bad configs with ".tmp" appended.
210 # a good config and we will ignore these configs for the rest
419 doprint "New config equals good config, try next test\n";
468 # $type: The name of the source type (good / bad)
497 # diff_arr is what is in both good and bad but are different (y->n)
501 # b_arr is what is in bad but not in good (has depends)
505 # g_arr is what is in good but not in bad
513 # Look at the configs that are different between good and bad.
520 doprint "# of configs showing only in good: $len_g\n";
527 doprint " Good Config\t\t\tBad Config\n";
536 doprint "Set tmp config to be good config with some bad config values\n";
545 doprint "Set tmp config to be bad config with some good config values\n";
548 \%good_configs, "top", "good";
561 doprint "Set tmp config to be good config with some bad config values\n";
570 doprint "Set tmp config to be bad config with some good config values\n";
573 \%good_configs, "bottom", "good";
587 doprint "Hmm, can't make any more changes without making good == bad?\n";
588 doprint "Difference between good (+) and bad (-)\n";
619 doprint "Run good configs through make oldconfig\n";
689 if ($val ne "good" && $val ne "bad") {
690 die "Unknown command '$val', bust be either \"good\" or \"bad\"\n";
699 my $good = "$good_start.tmp";
717 if ( -f $good || -f $bad ) {
720 if ( -f $good ) {
721 $p = "$good exists\n";
734 run_command "cp $good_start $good" or die "failed to copy to $good\n";
737 if ( ! -f $good ) {
738 die "Can not find file $good\n";
743 if ($val eq "good") {
744 run_command "cp $output_config $good" or die "failed to copy $config to $good\n";
752 my $ret = config_bisect $good, $bad;
760 run_command "rm $good";
764 doprint "See good and bad configs for details:\n";
765 doprint "good: $good\n";