lkml.org 
[lkml]   [2018]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [RFC PATCH 0/7] Kconfig: add new special property shell= to test compiler options in Kconfig
    Hi Linus,

    2018-02-09 2:19 GMT+09:00 Linus Torvalds <torvalds@linux-foundation.org>:
    > On Thu, Feb 8, 2018 at 8:19 AM, Masahiro Yamada
    > <yamada.masahiro@socionext.com> 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

    \
     
     \ /
      Last update: 2018-02-08 18:40    [W:3.579 / U:0.892 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site