Hi Linus, 2018-02-09 2:19 GMT+09:00 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>: > On Thu, Feb 8, 2018 at 8:19 AM, Masahiro Yamada > <yamada.masahiro@xxxxxxxxxxxxx> wrote: >> This was prompted by the email from Linus today's morning. > > Thanks. > >> I implmented this in a rush today, so there are still many TODOs, >> but I put it here to start discussion. >> >> I think it is working, but as you notice, it is tedious to repeat something >> like follows: >> >> config CC_HAS_STACKPROTECTOR >> bool >> option shell="$CC -Werror -fstack-protector -c -x c /dev/null" > > Yeah. > > I do think we want to have the "shell" thing as a generic escape for > other things too, but *realistically*, the primary target for this is > compiler flags, and I think we should target that specifically with a > shorthand. > > Doing some statistics, and looking for > > flag = $(call xyz ...) > > patterns in our makefiles (ignoring single uses), it really is > cc-option that dominates: > > 2 name-fix > 2 try-run > 3 __cc-option > 3 grep-libs > 3 strip-libs > 4 flags > 4 get-executable > 4 ld-option > 4 logo-cfiles > 5 as-option > 5 cc-cross-prefix > 6 cc-ldoption > 6 cc-supports > 7 cc-option-yn > 7 tune > 9 cc-ifversion > 30 as-instr > 48 cc-disable-warning > 239 cc-option > > so I think that's the one that we want to special-case. > > If we then have a _usable_ - but perhaps not wonderful "shell" escape > to do any random thing (including scripts etc), that will take care of > the rest, but cc-option is so common that I think it's worth making a > special Kconfig syntax for them. For all I know, the others aren't > even worth Kconfig options at all. > >> I was thinking of something like follows: >> >> config CC_STACKPROTECTOR >> bool >> option shell="$(CC_OPTION -fstack-protector)" > > I think we should go even further, and just make it be > > config CC_STACKPROTECTOR > bool > option cc_option="-fstack-protector" > > and actually have the Kconfig language itself have this special-cased. > > And obviously that "option cc_option" would be *implemented* as just > "option shell", with just some stupid string substitution. So it > really would be purely a shorthand for readability. > > What do you think? OK, I will try this way. > And btw, the patches look nice. What I like in particular is that they > don't even seem to add a lot of lines: the new shell option code is > almost balanced out by the Kconfig script simplifications. And maybe > it's just that I read C a lot better than I read GNU Makefile magic, > but I think it's more understandable too. I am glad you like it. :) -- Best Regards Masahiro Yamada -- 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