inconvenience when hand editing DEBUG_LL in .config
Arnaud Lacombe
lacombar at gmail.com
Fri Jan 20 15:31:47 EST 2012
Hi,
2012/1/20 Uwe Kleine-König <u.kleine-koenig at pengutronix.de>:
> Hello,
>
> usually when I want to change a single kernel option I just open .config
> in my editor, remove the line for the config item I want to change and
> run oldconfig. For DEBUG_LL (defined in arch/arm/Kconfig.debug) this
> doesn't work as usual though.
>
> On 3.3-rc1 the following happens:
>
> make ARCH=arm at91rm9200_defconfig
> sed -i /CONFIG_DEBUG_LL/d .config
> make ARCH=arm oldconfig
>
> The last command then asks me for DEBUG_LL, after specifying 'y', the
> output looks as follows:
>
> Verbose user fault messages (DEBUG_USER) [N/y/?] n
> Kernel low-level debugging functions (read help!) (DEBUG_LL) [N/y/?] (NEW) y
> Kernel low-level debugging port
> > 1. No low-level debugging UART (DEBUG_LL_UART_NONE) (NEW)
> 2. Kernel low-level debugging via EmbeddedICE DCC channel (DEBUG_ICEDCC) (NEW)
> 3. Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl (AT91_DEBUG_LL_DBGU0) (NEW)
> choice[1-3]: 1
> Early printk (EARLY_PRINTK) [N/y/?] (NEW)
>
> Note that I didn't specify the '1' for the choice even though all items
> are marked as new and oldconfig only starts at EARLY_PRINTK to ask
> again.
>
> I would have expected to be able to select AT91_DEBUG_LL_DBGU0.
>
> This is not intended, is it?
>
definitively not.
Here is a reduced testcase showing the issue:
config A
bool "A"
default y
choice
prompt "Choice ?"
depends on A
config CHOICE_A
bool "Choice A"
config CHOICE_B
bool "Choice B"
endchoice
To trigger the issue, you need a two-step process, as you did:
1) create a base configuration, lets assume the default one:
% make alldefconfig && cat .config
#
# Automatically generated file; DO NOT EDIT.
# Linux Kernel Configuration
#
CONFIG_A=y
CONFIG_CHOICE_A=y
# CONFIG_CHOICE_B is not set
2) amend the config:
% sed -i /CONFIG_A/d .config && cat .config
Then, when you run `oldconfig', you will get:
% make ARCH=arm oldconfig
scripts/kconfig/conf --oldconfig Kconfig
*
* Restart config...
*
*
* Linux Kernel Configuration
*
A (A) [Y/n] (NEW) y
Choice ?
> 1. Choice A (CHOICE_A)
2. Choice B (CHOICE_B)
choice[1-2]: 1
#
# configuration written to .config
#
without being asked for the choice.
This will also happen when a choice's dependency appears between two version.
I would assume that the choice value is known, ie. not marked as 'NEW'
and thus not re-asked. What I think should be done is to reset known
choice value, if the choice dependency is marked as 'NEW'.
- Arnaud
> Best regards
> Uwe
>
> --
> Pengutronix e.K. | Uwe Kleine-König |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the linux-arm-kernel
mailing list