lkml.org 
[lkml]   [2020]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] gcc-plugins: simplify GCC plugin-dev capability test
    On Thu, Dec 03, 2020 at 09:57:00PM +0900, Masahiro Yamada wrote:
    > Linus pointed out a third of the time in the Kconfig parse stage comes
    > from the single invocation of cc1plus in scripts/gcc-plugin.sh [1],
    > and directly testing plugin-version.h for existence cuts down the
    > overhead a lot. [2]
    >
    > This commit takes one step further to kill the build test entirely.
    >
    > The small piece of code was probably intended to test the C++ designated
    > initializer, which was not supported until C++20.
    >
    > In fact, with -pedantic option given, both GCC and Clang emit a warning.
    >
    > $ echo 'class test { public: int test; } test = { .test = 1 };' | g++ -x c++ -pedantic - -fsyntax-only
    > <stdin>:1:43: warning: C++ designated initializers only available with '-std=c++2a' or '-std=gnu++2a' [-Wpedantic]
    > $ echo 'class test { public: int test; } test = { .test = 1 };' | clang++ -x c++ -pedantic - -fsyntax-only
    > <stdin>:1:43: warning: designated initializers are a C++20 extension [-Wc++20-designator]
    > class test { public: int test; } test = { .test = 1 };
    > ^
    > 1 warning generated.
    >
    > Otherwise, modern C++ compilers should be able to build the code, and
    > hopefully skipping this test should not make any practical problem.
    >
    > Checking the existence of plugin-version.h is still needed to ensure
    > the plugin-dev package is installed. The test code is now small enough
    > to be embedded in scripts/gcc-plugins/Kconfig.
    >
    > [1] https://lore.kernel.org/lkml/CAHk-=wjU4DCuwQ4pXshRbwDCUQB31ScaeuDo1tjoZ0_PjhLHzQ@mail.gmail.com/
    > [2] https://lore.kernel.org/lkml/CAHk-=whK0aQxs6Q5ijJmYF1n2ch8cVFSUzU5yUM_HOjig=+vnw@mail.gmail.com/
    >
    > Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

    Acked-by: Kees Cook <keescook@chromium.org>

    --
    Kees Cook

    \
     
     \ /
      Last update: 2020-12-04 23:05    [W:4.318 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site