lkml.org 
[lkml]   [2009]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 10/14] kconfig: search for a config to base the local(mod|yes)config on
    From: Steven Rostedt <srostedt@redhat.com>

    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>
    ---
    scripts/kconfig/streamline_config.pl | 63 +++++++++++++++++++++++++++++++++-
    1 files changed, 62 insertions(+), 1 deletions(-)

    diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
    index 2334641..9fa3f81 100644
    --- a/scripts/kconfig/streamline_config.pl
    +++ b/scripts/kconfig/streamline_config.pl
    @@ -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;
    --
    1.6.3.3
    --


    \
     
     \ /
      Last update: 2009-08-19 05:07    [W:0.044 / U:95.020 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site