Zephyr has a lot of good points, but I really wish it didn't use Kconfig. Getting a working config seems to be mostly a matter of copying an already working example. It might be okay for hardware side of things, but it's a really bad at software/feature dependency.
Could Zephyr's difficulties be resolved if Kconfig supported an additional operator besides 'select' and 'depends on'? Or perhaps with an overlay capability like bitbake has?
Since Kconfig is used to configure the kernel, why aren't the kernel devs experiencing similar issues with their configurations?
I would think so. I've tried to do 'feature' groups of options, but without any way to do optional includes I gave up on that idea.
Maybe I'm just doing it wrong with just trying to add the dependencies I want. It might work better if I used the menuconfig GUI. To me though it seems if I decide I want to enable 'CONFIG_NET_TCP' on my project, I shouldn't also have to specify 'CONFIG_NETWORKING'.
As for why it works better in the kernel, that's a good question that I don't know the answer to as it's been years since I tried to build a kernel with a minimum configuration.
I need to double-check this, but I’m pretty sure it does have an overlay-type capability through West. Definitely does on the devicetree side, but I’m pretty sure it does on the Kconfig side too.
Since Kconfig is used to configure the kernel, why aren't the kernel devs experiencing similar issues with their configurations?