Re: [PATCH] gen_compile_commands: add missing sys import

From: Andreas Rammhold
Date: Tue Sep 14 2021 - 12:31:22 EST


On 09:01 14.09.21, Nathan Chancellor wrote:
> Hi Andreas,
>
> On 9/14/2021 8:44 AM, andreas@xxxxxxxxxxx wrote:
> > From: Andreas Rammhold <andreas@xxxxxxxxxxx>
> >
> > The sys.exit was being used at multiple locations within the script but
> > never imported. This lead to the script exiting with a error instead of
> > with the nicely formatted (useful) error output.
> >
> > Signed-off-by: Andreas Rammhold <andreas@xxxxxxxxxxx>
> > ---
> > scripts/clang-tools/gen_compile_commands.py | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/scripts/clang-tools/gen_compile_commands.py b/scripts/clang-tools/gen_compile_commands.py
> > index 0033eedce003e..1d1bde1fd45eb 100755
> > --- a/scripts/clang-tools/gen_compile_commands.py
> > +++ b/scripts/clang-tools/gen_compile_commands.py
> > @@ -13,6 +13,7 @@ import logging
> > import os
> > import re
> > import subprocess
> > +import sys
> > _DEFAULT_OUTPUT = 'compile_commands.json'
> > _DEFAULT_LOG_LEVEL = 'WARNING'
> >
>
> Thank you for the patch! Someone else submitted the exact same fix and it is
> now pending in the kbuild tree:
>
> https://git.kernel.org/masahiroy/linux-kbuild/c/776f04ca2c29f13d483a3effc0c27404fe901143

Oh! I should have send the patch when I originally comitted it.. Good
that it is fixed now. :-)

> I am curious, how did you discover this? Did you hit one of those error
> paths?

I can't recall the exact story anymore. I was looking into why the
keyring didn't offer the TPM backend on my new device. I did a fresh
checkout of the source tree on the device and set out to get clangd
working in the source tree with my neovim.


At first I tried to call the script without compiling the kernel. That
failed with some obvious error.

It could have been that I ended up in one of the error paths. Naturally
I digged into how this whole machinery works and that lead to opening
the file. Neovim, being setup for Python development, showed me that
there was an undefined symbol / missing import. I verified that and then
added the import.

As far as I can remeber I did end up compiling the kernel and/or then
running `make compile_commands.json`. Ever since then it just worked!

Thank you for working on this! :-)