lkml.org 
[lkml]   [2019]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [RFC PATCH] kbuild: Add option to generate a Compilation Database
    On Thu, Jun 6, 2019 at 1:54 PM Tom Roeder <tmroeder@google.com> wrote:
    >
    > On Thu, Jun 06, 2019 at 02:30:03PM -0600, Raul E Rangel wrote:
    > > Clang tooling requires a compilation database to figure out the build
    > > options for each file. This enables tools like clang-tidy and
    > > clang-check.
    > >
    > > See https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for more
    > > information.

    I'm also super happy to see this!
    https://nickdesaulniers.github.io/blog/2017/05/31/running-clang-tidy-on-the-linux-kernel/
    I don't know enough about GNU Make/Kbuild to answer the questions, but
    hopefully Masahiro can help there.

    > I'm glad to see someone adding this to the Makefile directly. I added
    > scripts/gen_compile_commands.py in b302046 (in Dec 2018) when I was

    Heh, cool. I had a script that basically did this; we recently
    dropped it from the Android trees when doing an audit of out of tree
    patches.

    > working on using clang-check to look for bugs in KVM. That script

    I'm very interested in this work; my summer intern is looking into
    static analyses of the Linux kernel. Can you maybe reach out to me
    off thread to tell me more about what you found (or didn't)?

    > > Normally cmake is used to generate the compilation database, but the
    > > linux kernel uses make. Another option is using
    > > [BEAR](https://github.com/rizsotto/Bear) which instruments
    > > exec to find clang invocations and generate the database that way.

    It's probably possible to get this to work w/ GCC if the additional
    dependency of bear exists on the host's system (and may reduce the
    number of implementations). Downside is the additional host
    dependency.

    Sounds like it may also be possible to just run
    scripts/gen_compile_commands.py at build time if this config is
    enabled?

    Maybe a comparison of the output of Tom's script and your patch might
    reveal if one approach is incomplete?
    --
    Thanks,
    ~Nick Desaulniers

    \
     
     \ /
      Last update: 2019-06-07 01:40    [W:2.495 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site