08 Aug, 2011

2 commits


09 Feb, 2011

1 commit


29 Oct, 2010

5 commits

  • Some menuconfigs in the Kconfig files have prompts and dependencies.
    Currently, streamline_config misses these, and this can cause
    streamline_config to keep modules enabled that should not be, and
    even worse, not enable those that should.

    This patch makes streamline_config process menuconfigs just like it
    would process a config.

    Reported-by: member graysky
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • I noticed that some Kconfig files have multi line dependencies
    that continue with a backslash. Those dependencies on the next
    line will be missed by streamline_config.

    For example:

    config CS89x0
    tristate "CS89x0 support"
    depends on NET_ETHERNET && (ISA || EISA || MACH_IXDP2351 \
    || ARCH_IXDP2X01 || MACH_MX31ADS)

    The "|| ARCH_IXDP2X01 || MACH_MX31ADS)" will not be processed.

    This patch adds code to handle this case.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • On Fri, Aug 17, 2010 at 01:43PM +0800, Américo Wang wrote:
    > Acked-by: WANG Cong
    >
    > BTW, I think we should add "use strict;" too.

    Then I added "use strict;" to streamline_config.pl, I saw another
    warning.

    > Global symbol "$dir" requires explicit package name at
    scripts/kconfig/streamline_config.pl line 286.
    > Global symbol "$dir" requires explicit package name at
    scripts/kconfig/streamline_config.pl line 287.
    > Global symbol "$dir" requires explicit package name at
    scripts/kconfig/streamline_config.pl line 288.

    Then I added "my $dir;" to line 285.

    Cc: Américo Wang
    Cc: Toralf Foerster
    Cc: KAMEZAWA Hiroyuki
    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hiromu Yakura
    LKML-Reference:

    [ changed to just add my in front of $dir instead of new line ]

    Signed-off-by: Steven Rostedt

    hiromu
     
  • When I added "use strict;" to streamline_config.pl, I saw the following
    warnings:

    > Global symbol "%prompt" requires explicit package name at
    scripts/kconfig/streamline_config.pl line 183.
    > Global symbol "%prompt" requires explicit package name at
    scripts/kconfig/streamline_config.pl line 368.

    The declaration of %prompt was incorrect, and should have been %prompts.

    Cc: Toralf Foerster
    Cc: KAMEZAWA Hiroyuki
    Cc: YOSHIFUJI Hideaki
    Signed-off-by: Hiromu Yakura
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    hiromu yagura
     
  • The commit 838a2e55e6a4e9e8a10451ed2ef0f7a08dabdb04
    kbuild: migrate all arch to the kconfig mainmenu upgrade

    Broke make localmodconfig. The reason was that it added a
    environment variable to the kconfig source, which the
    streamline_config.pl could not handle.

    This patch changes streamline_config.pl to handle kconfig sources
    using environment variables in their names.

    Cc: Arnaud Lacombe
    Cc: Sam Ravnborg
    Cc: Michal Marek
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

28 May, 2010

3 commits


03 Feb, 2010

2 commits

  • Doing the following:

    make LSMOD=file localmodconfig

    Will make the streamline-config code use the given file instead of
    lsmod. If the file is an executable, it will execute it, otherwise
    it will read it as text.

    make LSMOD=/my/local/path/lsmod localmodconfig

    The above will execute the lsmod in /my/local/path instead of the
    lsmods that may be located elsewhere.

    make LSMOD=embedded_board_lsmod localmodconfig

    The above will read the "embedded_board_lsmod" as a text file. This
    is useful if you are doing a cross compile and need to run the
    config against modules that exist on an embedded device.

    Note, if the LSMOD= file does is not a path, it will add the
    path to the object directory. That is, the above example will look
    for "embedded_board_lsmod" in the directory that the binary will
    be built in (the O=dir directory).

    Signed-off-by: Steven Rostedt

    On branch config/linus

    Steven Rostedt
     
  • Distributions now have lsmod in /bin instead of /sbin. But to handle
    both cases, we look for it in /sbin /bin /usr/bin and /usr/sbin.
    If lsmod is not found in any of those paths, it defaults to use
    just lsmod and hopes that it lies in the path of the user.

    Tested-by: Xavier Chantry
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

07 Jan, 2010

1 commit

  • The streamline_config.pl misses the if conditions for checking
    dependencies. For Kconfigs with the following construct:

    if MEDIA_SUPPORT

    config VIDEO_DEV

    [...]

    If VIDEO_DEV was enabled, the script will miss the fact that MEDIA_SUPPORT
    is also needed.

    This patch changes streamline_config.pl to include if conditions into
    the dependencies of configs.

    Reported-by: Anton Blanchard
    Tested-by: Anton Blanchard
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

20 Nov, 2009

1 commit

  • When the output directory is something other than the kernel source,
    the streamline_config script gets confused. This patch passes in the
    source directory to the script so that it can find the proper files.

    Reported-by: Peter Zijlstra
    Tested-by: Peter Zijlstra
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

19 Aug, 2009

8 commits

  • As Andi Kleen pointed out, most people would expect that the local .config
    file to be based for a streamline config. This patch changes the order
    of searching for a config file to consider the .config in the local
    directory first.

    Reported-by: Andi Kleen
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Many distros put their config in /boot/config-`uname -r`, add a check
    for that right after /proc/config.gz

    Reported-by: Alan Jenkins
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Due to cut and paste error IKCONFIG was both set and cleared.
    It was suppose to be IKCONFIG_PROC to be cleared.

    Also cleaned up if nesting.

    Reported-by: Alan Jenkins
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • 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

    Steven Rostedt
     
  • Ingo Molnar suggested that the streamline_config.pl should enable
    CONFIG_IKCONFIG to keep the current config in the kernel.
    Then we can use scripts/extract-ikconfig to find the current
    modules.

    This patch changes streamline_config.pl to check if CONFIG_IKCONFIG
    is not set, and if it is not, it enables it to be a module.

    [ Impact: make current config options easier to find ]

    Reported-by: Ingo Molnar
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The streamline_config.pl finds all the configs that are needed to
    compile the currently loaded modules. After it creates the .config
    file, it tests to make sure all the configs that are needed were
    set.

    It only looks at the configs that are modules, it does not look
    at the builtin configs. This causes unnecessary warnings about modules
    not being covered.

    Reported-by: Ingo Molnar
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • If a config does not have a prompt, it must be selected.
    streamline_config.pl keeps track of all configs that select other configs.
    If a config that does not have a prompt needs to be set to enable a
    current module, it will include all configs that select it.
    Note, streamline_config.pl does not enable modules that are not already
    enabled. It only keeps enabled those that were enabled and might be
    needed to compile the current modules.

    The code to find the selects of a config is after the code that
    adds the depends. But if a config needed selects but had no dependencies,
    it would not be set. Because the code would stop before getting to
    the select.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • streamline_config.pl is a very powerful tool. For those that install
    a kernel to a new box using the config file from the distribution know that
    it can take forever to compile the kernel.

    Making a custom config file that will still boot your box, but bring
    down the compile time of the kernel can be quit painful, and to ask
    someone that reported a bug to do this can be a large burdon since that
    person may not even know how to build a kernel.

    This script will perform "lsmod" to find all the modules loaded on the
    current running system. It will read all the Makefiles to map which
    CONFIG enables a module. It will read the Kconfig files to find the
    dependencies and selects that may be needed to support a CONFIG.
    Finally, it reads the .config file and removes any module "=m" that is
    not needed to enable the currently loaded modules. The output goes to
    standard out.

    Here's a way to run the script. From the Linux directory that holds
    a distribution .config.

    $ scripts/kconfig/streamline_config.pl arch/x86/Kconfig > config-sl
    $ mv .config config-save
    $ mv config-sl .config
    $ make oldconfig

    Now you have a .config that will still build all your modules, but also
    take much less time to build the kernel.

    Signed-off-by: Steven Rostedt

    Steven Rostedt