[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKwvOd=RCL3hpHBVukomrRiXKhvJHMxe3HSrtd0MRcCe1B3ZGw@mail.gmail.com>
Date: Thu, 6 Jun 2019 16:40:00 -0700
From: Nick Desaulniers <ndesaulniers@...gle.com>
To: Tom Roeder <tmroeder@...gle.com>
Cc: Raul E Rangel <rrangel@...omium.org>,
Masahiro Yamada <yamada.masahiro@...ionext.com>,
Matthias Kaehlcke <mka@...omium.org>, zwisler@...omium.org,
Joe Lawrence <joe.lawrence@...hat.com>,
Kees Cook <keescook@...omium.org>,
Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Petr Mladek <pmladek@...e.com>,
LKML <linux-kernel@...r.kernel.org>,
Michal Marek <michal.lkml@...kovi.net>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Changbin Du <changbin.du@...el.com>,
Tetsuo Handa <penguin-kernel@...ove.sakura.ne.jp>,
Sri Krishna chowdary <schowdary@...dia.com>,
Matthew Wilcox <willy@...radead.org>,
Mikulas Patocka <mpatocka@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [RFC PATCH] kbuild: Add option to generate a Compilation Database
On Thu, Jun 6, 2019 at 1:54 PM Tom Roeder <tmroeder@...gle.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
Powered by blists - more mailing lists