Re: [PATCH v4 0/3] Kconfig: Print reverse dependencies in groups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 20, 2018 at 08:25:08PM +0100, Eugeniu Rosca wrote:
> Fwiw, both solutions display reverse dependencies of certain choices
> like below:
> 
> Prompt: Compiler optimization level
>    Location:
>      -> General setup
>   Defined at init/Kconfig:1021
>   Selected by:
>    - m
> 
> I can notice this output at least for:
>   prompt "Cputime accounting"
>   prompt "Compiler optimization level"
>   prompt "Choose SLAB allocator"
>   prompt "Processor family"
>   prompt "Preemption Model"
>   prompt "Timer frequency"
>   prompt "IO delay type"
>   prompt "Choose kernel unwinder"
>   prompt "Default security module"
> 
> I'm not sure if `Selected by:\n  - m` is of any use/help. Omitting it,
> if desired, is probably subject of a different patch?

This is due to some obscure Kconfig internals. I added a comment in
scripts/kconfig/menu.c to explain it recently:

	/*
	 * For non-optional choices, add a reverse dependency (corresponding to
	 * a select) of '<visibility> && m'. This prevents the user from
	 * setting the choice mode to 'n' when the choice is visible.
	 *
	 * This would also work for non-choice symbols, but only non-optional
	 * choices clear SYMBOL_OPTIONAL as of writing. Choices are implemented
	 * as a type of symbol.
	 */
	if (sym && !sym_is_optional(sym) && parent->prompt) {
		sym->rev_dep.expr = expr_alloc_or(sym->rev_dep.expr,
				expr_alloc_and(parent->prompt->visible.expr,
					expr_alloc_symbol(&symbol_mod)));
	}

It doesn't hurt to show it, IMO. Might cause some confusion at worst,
but it's probably pretty minimal.

Cheers,
Ulf
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux