On Sat, 17 Feb 2018, Masahiro Yamada wrote: > Now, we got a basic ability to test compiler capability in Kconfig. > > config CC_HAS_STACKPROTECTOR > bool > default $(shell $CC -Werror -fstack-protector -c -x c /dev/null -o /dev/null) > > This works, but it is ugly to repeat this long boilerplate. > > We want to describe like this: > > config CC_HAS_STACKPROTECTOR > bool > default $(cc-option -fstack-protector) > > It is straight-forward to implement a new function, but I do not like > to hard-code specialized functions like this. Hence, here is another > feature to add functions from Kconfig files. > > A user-defined function can be defined as a string type symbol with > a special keyword 'macro'. It can be referenced in the same way as > built-in functions. This feature was also inspired by Makefile where > user-defined functions are referenced by $(call func-name, args...), > but I omitted the 'call' to makes it shorter. > > The macro definition can contain $(1), $(2), ... which will be replaced > with arguments from the caller. > > Example code: > > config cc-option > string > macro $(shell $CC -Werror $(1) -c -x c /dev/null -o /dev/null) I think this syntax for defining a macro shouldn't start with the "config" keyword, unless you want it to be part of the config symbol space and land it in .config. And typing it as a "string" while it actually returns y/n (hence a bool) is also strange. What about this instead: macro cc-option bool $(shell $CC -Werror $(1) -c -x c /dev/null -o /dev/null) This makes it easier to extend as well if need be. Nicolas -- 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