kconfig: search for a config to base the local(mod|yes)config on
Instead of using the .config in the local directory. This patch changes streamline_config.pl to search various locations for a config. Here's the list and order of search: /proc/config.gz /boot/vmlinuz-`uname -r` vmlinux # local to the directory /lib/modules/`uname -r`/kernel/kernel/configs.ko kernel/configs.ko kernel/configs.o .config Once it finds a file that contains a config (it checks if the binary objects have configs first) it then uses it to create the .config with minimum modules needed. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
de481560eb
commit
cdfc47950a
|
@ -45,7 +45,68 @@
|
|||
my $config = ".config";
|
||||
my $linuxpath = ".";
|
||||
|
||||
open(CIN,$config) || die "Can't open current config file: $config";
|
||||
my $uname = `uname -r`;
|
||||
chomp $uname;
|
||||
|
||||
my @searchconfigs = (
|
||||
{
|
||||
"file" => "/proc/config.gz",
|
||||
"exec" => "zcat",
|
||||
},
|
||||
{
|
||||
"file" => "/boot/vmlinuz-$uname",
|
||||
"exec" => "scripts/extract-ikconfig",
|
||||
"test" => "scripts/extract-ikconfig",
|
||||
},
|
||||
{
|
||||
"file" => "vmlinux",
|
||||
"exec" => "scripts/extract-ikconfig",
|
||||
"test" => "scripts/extract-ikconfig",
|
||||
},
|
||||
{
|
||||
"file" => "/lib/modules/$uname/kernel/kernel/configs.ko",
|
||||
"exec" => "scripts/extract-ikconfig",
|
||||
"test" => "scripts/extract-ikconfig",
|
||||
},
|
||||
{
|
||||
"file" => "kernel/configs.ko",
|
||||
"exec" => "scripts/extract-ikconfig",
|
||||
"test" => "scripts/extract-ikconfig",
|
||||
},
|
||||
{
|
||||
"file" => "kernel/configs.o",
|
||||
"exec" => "scripts/extract-ikconfig",
|
||||
"test" => "scripts/extract-ikconfig",
|
||||
},
|
||||
{
|
||||
"file" => ".config",
|
||||
"exec" => "cat",
|
||||
},
|
||||
);
|
||||
|
||||
sub find_config {
|
||||
foreach my $conf (@searchconfigs) {
|
||||
my $file = $conf->{"file"};
|
||||
|
||||
next if ( ! -f "$file");
|
||||
|
||||
if (defined($conf->{"test"})) {
|
||||
`$conf->{"test"} $conf->{"file"} 2>/dev/null`;
|
||||
next if ($?);
|
||||
}
|
||||
|
||||
my $exec = $conf->{"exec"};
|
||||
|
||||
print STDERR "using config: '$file'\n";
|
||||
|
||||
open(CIN, "$exec $file |") || die "Failed to run $exec $file";
|
||||
return;
|
||||
}
|
||||
die "No config file found";
|
||||
}
|
||||
|
||||
find_config;
|
||||
|
||||
my @makefiles = `find $linuxpath -name Makefile`;
|
||||
my %depends;
|
||||
my %selects;
|
||||
|
|
Loading…
Reference in New Issue