20 Sep, 2009

8 commits

  • Warnings found via gcc -Wmissing-prototypes.

    Signed-off-by: Trevor Keith
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Trevor Keith
     
  • When typeahead find is enabled, using 'y', 'n' and 'm' to change the status
    of the configuration items will also start up the search system, making you
    jump around the configuration.

    Disabling the enable_search property does not mean that search is not
    possible, it only disables the typeahead; to execute a search in the
    treeview, you can just call it up explicitly (i.e.: on most systems that
    will be Ctrl-f).

    Signed-off-by: Diego Elio 'Flameeyes' Pettenò
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Diego Elio 'Flameeyes' Pettenò
     
  • Futhermore, gconfig interface lack the "search a symbol" function, do later.

    Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    [sam: fix SEGV in gconfig]
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     
  • Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     
  • Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     
  • The removed functions are moved into menu.c for sharing with
    gconfig & xconfig & config.

    Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     
  • The three functions are moved from mconf.c, then they can be shared in
    all menuconfig & gconfig & xconfig & config.

    +void menu_get_ext_help(struct menu *menu, struct gstr *help)
    +static void get_prompt_str(struct gstr *r, struct property *prop)
    +void get_symbol_str(struct gstr *r, struct symbol *sym)

    Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     
  • Sometimes when configuring need to disable some unused item, but the item is
    selected by many other items, it's hard to find the real dependency which
    selected it, This patch add every symbol's value accompanied to make it
    possible to find the real dependency easily.

    An example is CONFIG_RFKILL,

    ---------------------- RF switch subsystem support ----------------------
    | CONFIG_RFKILL: |
    | |
    | Say Y here if you want to have control over RF switches |
    | found on many WiFi and Bluetooth cards. |
    | |
    | To compile this driver as a module, choose M here: the |
    | module will be called rfkill. |
    | |
    | Symbol: RFKILL [=m] |
    | Prompt: RF switch subsystem support |
    | Defined at net/rfkill/Kconfig:4 |
    | Depends on: NET [=y] |
    | Location: |
    | -> Networking support (NET [=y]) |
    | Selected by: IWLCORE [=n] && NETDEVICES [=y] && !S390 [=S390] && PC |
    | |
    ----------------------------------------------------------------( 99%)---

    Signed-off-by: Cheng Renquan
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Cheng Renquan
     

22 Aug, 2009

1 commit

  • There's a dependency missing.

    $ make localyesconfig
    HOSTCC scripts/basic/fixdep
    HOSTCC scripts/basic/docproc
    HOSTCC scripts/basic/hash
    using config: '/boot/config-2.6.27.25-78.2.56.fc9.x86_64'
    /bin/sh: line 8: scripts/kconfig/conf: No such file or directory
    make[1]: *** [localyesconfig] Error 127
    make: *** [localyesconfig] Error 2

    Thus the script failed to run. But the sed command that converts the '=m'
    to '=y' still ran. This gives us a distro config with all modules
    converted to built in!

    The missing dependency was for conf for localyesconfig. This
    dependency was already set for localmodconfig.

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

    Steven Rostedt
     

19 Aug, 2009

11 commits

  • If one were to run localmodconfig or localyesconfig without having
    a .config already in the file, then the end of the process would give
    a warning when it tries to move the old .config to .config.old.

    This patch adds a test to check if .config exists and avoid the moves
    if it does not.

    [ Impact: remove warning after make localmodconfig ]

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • 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
     
  • This adds the option localyesconfig to make. This is similar to
    localmodconfig, but after it removes unnecessary modules it runs

    sed -i s/=m/=y/

    on the .config file. It then runs "make silentoldconfig" to fix any
    wholes that were created by the conversion of modules to core.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Running the streamline_config.pl script manually can still be confusing
    for some users. This patch adds the localmodconfig option. This will
    automatically run streamline_config.pl on the current .config and
    then run "make silentoldconfig" to fix any wholes that might have been
    created.

    $ make localmodconfig

    This will remove any module configurations in .config that are not needed
    to compile the modules that are loaded.

    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
     

18 Jul, 2009

2 commits


10 Jun, 2009

10 commits

  • Regardless of KCONFIG_AUTOCONFIG, the filename written as a Make target
    into "include/config/auto.conf.cmd" was always the default one.

    Of course this doesn't make it work for the Kernel kbuild system, since
    there the filename is hardcoded at several places in the Makefiles.

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • Rather than hardcoding ".config" use conf_get_configname(), which also
    respects the environment variable KCONFIG_CONFIG.

    This fixes "make silentoldconfig" when KCONFIG_CONFIG is used and also
    suggests the given filename for "Load" and "Save as" in qconf.

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • QApplication::desktop() returns a pointer to QDesktopWidget, not to
    QWidget.

    Fixes the following compiler error after a quick conversion with 'qt3to4',
    which occured with g++ 3.4.6 and 4.1.2, but not anymore with 4.3.2.

    scripts/kconfig/qconf.cc: In constructor 'ConfigMainWindow::ConfigMainWindow()':
    scripts/kconfig/qconf.cc:1289: error: cannot convert 'QDesktopWidget*' to 'QWidget*' in initialization

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • They are defined in the 'Qt' namespace.

    Fixes the following compiler errors after a quick conversion with 'qt3to4',
    which occured with g++ 3.4.6 and 4.1.2, but not anymore with 4.3.2.

    scripts/kconfig/qconf.cc: In member function 'virtual void ConfigLineEdit::keyPressEvent(QKeyEvent*)':
    scripts/kconfig/qconf.cc:311: error: 'Key_Escape' was not declared in this scope
    scripts/kconfig/qconf.cc:313: error: 'Key_Return' was not declared in this scope
    scripts/kconfig/qconf.cc:314: error: 'Key_Enter' was not declared in this scope

    scripts/kconfig/qconf.cc: In member function 'virtual void ConfigList::keyPressEvent(QKeyEvent*)':
    scripts/kconfig/qconf.cc:653: error: 'Key_Escape' was not declared in this scope
    scripts/kconfig/qconf.cc:666: error: 'Key_Return' was not declared in this scope
    scripts/kconfig/qconf.cc:667: error: 'Key_Enter' was not declared in this scope
    scripts/kconfig/qconf.cc:681: error: 'Key_Space' was not declared in this scope
    scripts/kconfig/qconf.cc:684: error: 'Key_N' was not declared in this scope
    scripts/kconfig/qconf.cc:687: error: 'Key_M' was not declared in this scope
    scripts/kconfig/qconf.cc:690: error: 'Key_Y' was not declared in this scope

    scripts/kconfig/qconf.cc: In constructor 'ConfigMainWindow::ConfigMainWindow()':
    scripts/kconfig/qconf.cc:1329: error: 'CTRL' was not declared in this scope
    scripts/kconfig/qconf.cc:1329: error: 'Key_Q' was not declared in this scope
    scripts/kconfig/qconf.cc:1331: error: 'Key_L' was not declared in this scope
    scripts/kconfig/qconf.cc:1333: error: 'Key_S' was not declared in this scope
    scripts/kconfig/qconf.cc:1340: error: 'Key_F' was not declared in this scope

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • They were used as QSplitter::Horizontal resp. QSplitter::Vertical, but
    are defined in the 'Qt' namespace.

    Fixes the following compiler errors after a quick conversion with 'qt3to4',
    which occured with g++ 3.4.6 and 4.1.2, but not anymore with 4.3.2.

    scripts/kconfig/qconf.cc: In constructor 'ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow*, const char*)':
    scripts/kconfig/qconf.cc:1213: error: 'Vertical' is not a member of 'QSplitter'

    scripts/kconfig/qconf.cc: In constructor 'ConfigMainWindow::ConfigMainWindow()':
    scripts/kconfig/qconf.cc:1304: error: 'Horizontal' is not a member of 'QSplitter'
    scripts/kconfig/qconf.cc:1311: error: 'Vertical' is not a member of 'QSplitter'

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • These compiler warnings occure when adding -Wall to HOSTCXXFLAGS in
    /Makefile

    scripts/kconfig/qconf.h: In constructor ‘ConfigInfoView::ConfigInfoView(QWidget*, const char*)’:
    scripts/kconfig/qconf.h:274: warning: ‘ConfigInfoView::menu’ will be initialized after
    scripts/kconfig/qconf.h:273: warning: ‘symbol* ConfigInfoView::sym’
    scripts/kconfig/qconf.cc:922: warning: when initialized here

    scripts/kconfig/qconf.cc: In member function ‘void ConfigMainWindow::setMenuLink(menu*)’:
    scripts/kconfig/qconf.cc:1498: warning: enumeration value ‘menuMode’ not handled in switch
    scripts/kconfig/qconf.cc:1498: warning: enumeration value ‘listMode’ not handled in switch

    scripts/kconfig/qconf.cc: In member function ‘void ConfigMainWindow::saveSettings()’:
    scripts/kconfig/qconf.cc:1664: warning: enumeration value ‘menuMode’ not handled in switch
    scripts/kconfig/qconf.cc:1664: warning: enumeration value ‘listMode’ not handled in switch

    Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • Signed-off-by: Markus Heidelberg
    Signed-off-by: Sam Ravnborg

    Markus Heidelberg
     
  • Implement support for comment entries within choice groups. Comment entries
    are displayed visually distinct from normal configs, and selecting them is
    a no-op.

    Signed-off-by: Peter Korsgaard
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Peter Korsgaard
     

11 Apr, 2009

1 commit

  • Massimo Maiurana reported (slightly edited):

    =====
    In latest 2.6.29 "make update-po-config" fails at msguniq invocation
    with an "invalid control sequence" error.
    The offending string is the following, and it's located in
    drivers/staging/panel/Kconfig:72:

    "'\e[L' which are specific to the LCD, and a few ANSI codes. The"

    looks to me like gettext expects strings in printf format, so in
    this case it thinks "\e" is a control sequence but doesn't recognise
    it as a valid one.

    A valid solution would be to tell kxgettext to automatically
    escape this kind of strings in the */config.pot he produces, so that
    msguniq would not complain.
    =====

    This patch implements the suggested escaping.

    Reported-by: Massimo Maiurana
    Tested-by: Massimo Maiurana
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

16 Mar, 2009

2 commits

  • 'make randconfig' uses glibc's rand function, and the seed of
    that PRNG is set via:

    srand(time(NULL));

    But 'time()' only increases once every second - freezing the
    randconfig result within a single second.

    My Nehalem testbox does randconfig much faster than 1 second
    and i have a few scripts that do 'randconfig until condition X'
    loops.

    Those scripts currently waste a lot of CPU time due to randconfig
    changing its seed only once per second currently.

    Change the seed to be micrseconds based. (I checked the statistical
    spread of the seed - the now.tv_sec*now.tv_usec multiplication
    there further improves it.)

    Signed-off-by: Ingo Molnar
    Cc: Roman Zippel
    [sam: fix for systems where usec is zero - noticed by Geert Uytterhoeven]
    Signed-off-by: Sam Ravnborg

    Ingo Molnar
     
  • Ingo Molnar reported that 'make randconfig' was not covering
    choice blocks properly, resulting in certain config options
    being left out of randconfig testing altogether.

    With the following patch we:
    - properly randomize choice value for normal choice blocks
    - properly randomize for multi choice blocks
    - added several comments to explain what is going on

    The root cause of the bug was that SYMBOL_VALID was set on the
    symbol representing the choice block so clearing this did
    the trick initially.
    But testign revealed a few more issues that is now fixed.

    Reported-by: Ingo Molnar
    Cc: Ingo Molnar
    Cc: Roman Zippel
    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

03 Jan, 2009

4 commits


04 Dec, 2008

1 commit