Nice kconfig hack

Rob Landley rob at landley.net
Wed May 2 15:44:51 UTC 2012


On 05/02/2012 10:27 AM, Rich Felker wrote:
> On Wed, May 02, 2012 at 10:10:43AM -0500, Rob Landley wrote:
>> On 04/26/2012 08:03 AM, Lauri Kasanen wrote:
>>> Hi
>>>
>>> Linus asked for a better way to handle the kconfig values:
>>> https://plus.google.com/102150693225130002912/posts/9gntjh57dXt
>>>
>>> The solution is rather neat, maybe it could save generating a few
>>> thousand included lines in busybox too:
>>>
>>> #define is_set(macro) is_set_(macro)
>>> #define macrotest_1 ,
>>> #define is_set_(value) is_set__(macrotest_##value)
>>> #define is_set__(comma) is_set___(comma 1, 0)
>>> #define is_set___(_, v, ...) v
>>
>> It's clever, but there's a problem:
>>
>> Right now, if you leave in a test for a symbol that's been removed, or
>> if you typo a symbol name, the build will break. And this is good, it
>> shows you what needs fixing.
>>
>> With this new mechanism, testing for a symbol that _can't_ ever be set
>> means there's dead code in the source which the compiler won't warn you
>> about.
>>
>> *shrug*  Maybe it's still worth doing, not my call...
> 
> I would just institute a policy of "grep -r" whenever a test symbol is
> removed... That's a lot cheaper than maintaining busybox's current
> config monstrosity.

And this will catch typos?

Announcing a policy that humans should do something manually as part of
their development process seems useful to you?

*shrug*  As I said, not my call. I always said the correct fix was to
get kconfig to output the symbols we actually _need_, and now Linus is
going "hey, these are the symbols we actually need" and doing an overlay
to get them instead of fixing the infrastructure to output the right stuff.

Rob
-- 
GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code.
Either it's "mere aggregation", or a license violation.  Pick one.


More information about the busybox mailing list