Skip to content
  • Arve Hjønnevåg's avatar
    kconfig: Fix defconfig when one choice menu selects options that another choice menu depends on · fbe98bb9
    Arve Hjønnevåg authored
    
    
    The defconfig and Kconfig combination below, which is based on 3.10-rc4
    Kconfigs, resulted in several options getting set to "m" instead of "y".
    
    defconfig.choice:
    ---8<---
    CONFIG_MODULES=y
    CONFIG_USB_ZERO=y
    ---8<---
    
    Kconfig.choice:
    ---8<---
    menuconfig MODULES
    	bool "Enable loadable module support"
    
    config CONFIGFS_FS
    	tristate "Userspace-driven configuration filesystem"
    
    config OCFS2_FS
            tristate "OCFS2 file system support"
            depends on CONFIGFS_FS
            select CRC32
    
    config USB_LIBCOMPOSITE
    	tristate
    	select CONFIGFS_FS
    
    choice
    	tristate "USB Gadget Drivers"
    	default USB_ETH
    
    config USB_ZERO
    	tristate "Gadget Zero (DEVELOPMENT)"
    	select USB_LIBCOMPOSITE
    
    config USB_ETH
    	tristate "Ethernet Gadget (with CDC Ethernet support)"
    	select USB_LIBCOMPOSITE
    
    endchoice
    
    config CRC32
            tristate "CRC32/CRC32c functions"
            default y
    
    choice
            prompt "CRC32 implementation"
            depends on CRC32
            default CRC32_SLICEBY8
    
    config CRC32_SLICEBY8
            bool "Slice by 8 bytes"
    
    endchoice
    ---8<---
    
    $ scripts/kconfig/conf --defconfig=defconfig.choice Kconfig.choice
    
    would result in:
    
    .config:
    ---8<---
    CONFIG_MODULES=y
    CONFIG_CONFIGFS_FS=m
    CONFIG_USB_LIBCOMPOSITE=m
    CONFIG_USB_ZERO=m
    CONFIG_CRC32=y
    CONFIG_CRC32_SLICEBY8=y
    ---8<---
    
    when the expected result would be:
    
    .config:
    ---8<---
    CONFIG_MODULES=y
    CONFIG_CONFIGFS_FS=y
    CONFIG_USB_LIBCOMPOSITE=y
    CONFIG_USB_ZERO=y
    CONFIG_CRC32=y
    CONFIG_CRC32_SLICEBY8=y
    ---8<---
    
    Signed-off-by: default avatarArve Hjønnevåg <arve@android.com>
    [yann.morin.1998@free.fr: add the resulting .config to commit log,
                              remove unneeded USB_GADGET from the defconfig]
    Tested-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
    Reviewed-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
    Signed-off-by: default avatarYann E. MORIN <yann.morin.1998@free.fr>
    fbe98bb9