mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
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 $config = ".config";
|
||||||
my $linuxpath = ".";
|
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 @makefiles = `find $linuxpath -name Makefile`;
|
||||||
my %depends;
|
my %depends;
|
||||||
my %selects;
|
my %selects;
|
||||||
|
Loading…
Reference in New Issue
Block a user