oldconfig loop infinitely with a hex/int config without valid default and a closed stdin

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

 



Hi,

While analyzing a Yocto bug[0] I think I've identified a problem in kconfig.
The problem happens if you have a hex or int type config without a default value.
Like this :
  config TEST_KCONFIG
  	hex "Test kconfig"
  	# No default value
... and try to start oldconfig with a closed stdin (like we have in Yocto):
  echo -n "" | make oldconfig

When this happens, oldconfig prompts for the value of TEST_KCONFIG but stdin is closed it get the global default value : an empty string. This is not a valid hex/int value so it prompts again, hence the infinite loop.

I'm having trouble pointing where the bug is exactly :
* Should the global default value for hex/int be valid in their context? (like the minimal value of the range or 0/0x0)
* Must all int/hex config provide a valid default value? (This is the case for hex config in the kernel). This would have to be documented somewhere (Some other KConfig implementation did [1])
* Should all oldconfig/syncconfig/... exit with an error when trying to prompt on a closed stdin? (I might be able to send a patch for this one)

NB: I know of olddefconfig but in the case of U-boot, syncconfig is used at a later stage and the problem appears again.

What do you think?

Regards,

[0]: https://bugzilla.yoctoproject.org/show_bug.cgi?id=14136
[1]: https://docs.zephyrproject.org/1.14.0/guides/kconfig/index.html#redundant-defaults
-- 
Yoann Congal
Smile ECS - Tech Expert



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

  Powered by Linux