Lines Matching full:bad
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
14 # the bad config. That is, the resulting config will start with the
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
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.
35 # and the bad config to /path/to/bad/config.tmp (just appends ".tmp" to the
39 # After the first run, determine if the result is good or bad then
43 # $ config-bisect.pl /path/to/good/config /path/to/bad/config good
45 # For bad results:
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
50 # but with a ".tmp" after it. It will do the same with the bad-config.
52 # If "good" or "bad" is not stated at the end, it will copy the good and
53 # bad configs to the .tmp versions. If a .tmp version already exists, it will
56 # version. If the last config is labeled "bad", it will copy it to the bad
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]
78 bad-config the config that does not work
80 "bad" add this if the last run produced a bad 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.
217 # config_off holds the set of configs that the bad config had disabled.
391 doprint "Found bad config: $config\n";
412 doprint "New config equals bad 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.
521 doprint "# of configs showing only in bad: $len_b\n";
536 doprint "Set tmp config to be good config with some bad config values\n";
539 \%bad_configs, "top", "bad";
545 doprint "Set tmp config to be bad config with some good config values\n";
561 doprint "Set tmp config to be good config with some bad config values\n";
564 \%bad_configs, "bottom", "bad";
570 doprint "Set tmp config to be bad config with some good config values\n";
586 doprint "\n%%%%%%%% FAILED TO FIND SINGLE BAD CONFIG %%%%%%%%\n";
587 doprint "Hmm, can't make any more changes without making good == bad?\n";
588 doprint "Difference between good (+) and bad (-)\n";
624 doprint "Run bad 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";
700 my $bad = "$bad_start.tmp";
717 if ( -f $good || -f $bad ) {
724 if ( -f $bad ) {
725 $p = "$p$bad exists\n";
735 run_command "cp $bad_start $bad" or die "failed to copy to $bad\n";
740 if ( ! -f $bad ) {
741 die "Can not find file $bad\n";
745 } elsif ($val eq "bad") {
746 run_command "cp $output_config $bad" or die "failed to copy $config to $bad\n";
752 my $ret = config_bisect $good, $bad;
761 run_command "rm $bad";
764 doprint "See good and bad configs for details:\n";
766 doprint "bad: $bad\n";
767 doprint "%%%%%%%% FAILED TO FIND SINGLE BAD CONFIG %%%%%%%%\n";