Commit 69e9576b authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'localmodconfig-v3.7-2' of...

Merge tag 'localmodconfig-v3.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig

Pull localmodconfig fixes from Steven Rostedt:
 "Bill Pemberton added some changes to make streamline-config.pl work
  again as a stand-alone tool (outside of make localmodconfig).

  Also, he added a couple of updates to make the code be more "Perl
  proper".

  Added last minute fix to localyesconfig, that was the same as
  localmodconfig since v3.2, due to a change in the makefiles."

* tag 'localmodconfig-v3.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-kconfig:
  localmodconfig: Fix localyesconfig to set to 'y' not 'm'
  localmodconfig: Use my variable for loop in streamline_config.pl
  localmodconfig: Use 3 parameter open in streamline_config.pl
  localmodconfig: Rework find_config in streamline_config.pl
  localmodconfig: Set default value for ksource in streamline_config.pl
parents 9fa40a11 4eae518d
...@@ -100,7 +100,7 @@ my @searchconfigs = ( ...@@ -100,7 +100,7 @@ my @searchconfigs = (
}, },
); );
sub find_config { sub read_config {
foreach my $conf (@searchconfigs) { foreach my $conf (@searchconfigs) {
my $file = $conf->{"file"}; my $file = $conf->{"file"};
...@@ -115,17 +115,15 @@ sub find_config { ...@@ -115,17 +115,15 @@ sub find_config {
print STDERR "using config: '$file'\n"; print STDERR "using config: '$file'\n";
open(CIN, "$exec $file |") || die "Failed to run $exec $file"; open(my $infile, '-|', "$exec $file") || die "Failed to run $exec $file";
return; my @x = <$infile>;
close $infile;
return @x;
} }
die "No config file found"; die "No config file found";
} }
find_config; my @config_file = read_config;
# Read in the entire config file into config_file
my @config_file = <CIN>;
close CIN;
# Parse options # Parse options
my $localmodconfig = 0; my $localmodconfig = 0;
...@@ -135,7 +133,7 @@ GetOptions("localmodconfig" => \$localmodconfig, ...@@ -135,7 +133,7 @@ GetOptions("localmodconfig" => \$localmodconfig,
"localyesconfig" => \$localyesconfig); "localyesconfig" => \$localyesconfig);
# Get the build source and top level Kconfig file (passed in) # Get the build source and top level Kconfig file (passed in)
my $ksource = $ARGV[0]; my $ksource = ($ARGV[0] ? $ARGV[0] : '.');
my $kconfig = $ARGV[1]; my $kconfig = $ARGV[1];
my $lsmod_file = $ENV{'LSMOD'}; my $lsmod_file = $ENV{'LSMOD'};
...@@ -173,8 +171,8 @@ sub read_kconfig { ...@@ -173,8 +171,8 @@ sub read_kconfig {
$source =~ s/\$$env/$ENV{$env}/; $source =~ s/\$$env/$ENV{$env}/;
} }
open(KIN, "$source") || die "Can't open $kconfig"; open(my $kinfile, '<', $source) || die "Can't open $kconfig";
while (<KIN>) { while (<$kinfile>) {
chomp; chomp;
# Make sure that lines ending with \ continue # Make sure that lines ending with \ continue
...@@ -251,10 +249,10 @@ sub read_kconfig { ...@@ -251,10 +249,10 @@ sub read_kconfig {
$state = "NONE"; $state = "NONE";
} }
} }
close(KIN); close($kinfile);
# read in any configs that were found. # read in any configs that were found.
foreach $kconfig (@kconfigs) { foreach my $kconfig (@kconfigs) {
if (!defined($read_kconfigs{$kconfig})) { if (!defined($read_kconfigs{$kconfig})) {
$read_kconfigs{$kconfig} = 1; $read_kconfigs{$kconfig} = 1;
read_kconfig($kconfig); read_kconfig($kconfig);
...@@ -295,8 +293,8 @@ foreach my $makefile (@makefiles) { ...@@ -295,8 +293,8 @@ foreach my $makefile (@makefiles) {
my $line = ""; my $line = "";
my %make_vars; my %make_vars;
open(MIN,$makefile) || die "Can't open $makefile"; open(my $infile, '<', $makefile) || die "Can't open $makefile";
while (<MIN>) { while (<$infile>) {
# if this line ends with a backslash, continue # if this line ends with a backslash, continue
chomp; chomp;
if (/^(.*)\\$/) { if (/^(.*)\\$/) {
...@@ -343,10 +341,11 @@ foreach my $makefile (@makefiles) { ...@@ -343,10 +341,11 @@ foreach my $makefile (@makefiles) {
} }
} }
} }
close(MIN); close($infile);
} }
my %modules; my %modules;
my $linfile;
if (defined($lsmod_file)) { if (defined($lsmod_file)) {
if ( ! -f $lsmod_file) { if ( ! -f $lsmod_file) {
...@@ -356,13 +355,10 @@ if (defined($lsmod_file)) { ...@@ -356,13 +355,10 @@ if (defined($lsmod_file)) {
die "$lsmod_file not found"; die "$lsmod_file not found";
} }
} }
if ( -x $lsmod_file) {
# the file is executable, run it my $otype = ( -x $lsmod_file) ? '-|' : '<';
open(LIN, "$lsmod_file|"); open($linfile, $otype, $lsmod_file);
} else {
# Just read the contents
open(LIN, "$lsmod_file");
}
} else { } else {
# see what modules are loaded on this system # see what modules are loaded on this system
...@@ -379,16 +375,16 @@ if (defined($lsmod_file)) { ...@@ -379,16 +375,16 @@ if (defined($lsmod_file)) {
$lsmod = "lsmod"; $lsmod = "lsmod";
} }
open(LIN,"$lsmod|") || die "Can not call lsmod with $lsmod"; open($linfile, '-|', $lsmod) || die "Can not call lsmod with $lsmod";
} }
while (<LIN>) { while (<$linfile>) {
next if (/^Module/); # Skip the first line. next if (/^Module/); # Skip the first line.
if (/^(\S+)/) { if (/^(\S+)/) {
$modules{$1} = 1; $modules{$1} = 1;
} }
} }
close (LIN); close ($linfile);
# add to the configs hash all configs that are needed to enable # add to the configs hash all configs that are needed to enable
# a loaded module. This is a direct obj-${CONFIG_FOO} += bar.o # a loaded module. This is a direct obj-${CONFIG_FOO} += bar.o
...@@ -605,6 +601,8 @@ foreach my $line (@config_file) { ...@@ -605,6 +601,8 @@ foreach my $line (@config_file) {
if (defined($configs{$1})) { if (defined($configs{$1})) {
if ($localyesconfig) { if ($localyesconfig) {
$setconfigs{$1} = 'y'; $setconfigs{$1} = 'y';
print "$1=y\n";
next;
} else { } else {
$setconfigs{$1} = $2; $setconfigs{$1} = $2;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment