• John Hubbard's avatar
    gen_compile_commands: handle multiple lines per .mod file · a4ab14e1
    John Hubbard authored
    scripts/clang-tools/gen_compile_commands.py incorrectly assumes that
    each .mod file only contains one line. That assumption was correct when
    the script was originally created, but commit 9413e764 ("kbuild:
    split the second line of *.mod into *.usyms") changed the .mod file
    format so that there is one entry per line, and potentially many lines.
    
    The problem can be reproduced by using Kbuild to generate
    compile_commands.json, like this:
    
        make CC=clang compile_commands.json
    
    In many cases, the problem might be overlooked because many subsystems
    only have one line anyway. However, in some subsystems (Nouveau, with
    762 entries, is a notable example) it results in skipping most of the
    subsystem.
    
    Fix this by fully processing each .mod file.
    
    Fixes: 9413e764 ("kbuild: split the second line of *.mod into *.usyms")
    Signed-off-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
    Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    a4ab14e1
gen_compile_commands.py 8.21 KB