Re: Kconfig option for compile time build coverage (Was: Re: [PATCH] serial/efm32: add new driver)
From: Arnd Bergmann <arnd@arndb.de>
Date: 2012-01-25 16:16:33
Also in:
linux-serial, lkml
On Monday 09 January 2012, Uwe Kleine-König wrote:
On Fri, Dec 23, 2011 at 09:44:28PM +0100, Uwe Kleine-König wrote:quoted
On Fri, Dec 23, 2011 at 10:35:22AM +0000, Arnd Bergmann wrote:quoted
On Thursday 22 December 2011, Uwe Kleine-König wrote:quoted
[...] +config SERIAL_EFM32_USART + bool "EFM32 USART port." + depends on ARCH_EFM32 + select SERIAL_CORE[...]quoted
I would generally prefer not to make the driver depend on the platform, so we can get better compile time coverage. I think a better set of dependencies would be depends on HAVE_CLK depends on OF default ARCH_EFM32I'd prefer something like: depends on HAVE_CLK depends on ARCH_EFM32 || I_DO_BUILD_COVERAGE_TESTING This would make it easier for Joe User to pick the right options for his kernel (assuming he found out to better keep I_DO_BUILD_COVERAGE_TESTING disabled). [...]What do you think about this I_DO_BUILD_COVERAGE_TESTING option? It would allow testers to get all possible options enabled (though there will never be an EFM32 USART port on a non-EFM32 machine I guess) and still users and distribution packagers would easily keep the option off even without cluttering .config and {menu,n,x,whatever}config.
Sorry for the late reply. The same topic has been discussed a lot of times. We have different ways to handle this in the kernel, but the way most common way is to use defconfig to decide which drivers to use on a given machine but give the user the freedom to both enable and disable any driver whereever possible, even if that would be a silly thing to do. What we do require normally is that anything that can be enabled is also able to be built without errors. A lot of drivers have dependencies on platform specific header files or other interfaces, so they require that platform to be enabled. For all others I would not make such a restriction and I would always recommend to be specific in the dependencies, e.g depending on HAVE_CLK when you use the clock interfaces, instead of depending on other options that implicitly enable HAVE_CLK. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html