<div dir="ltr"><div><div>thanks Manuel,<br><br></div>interesting what you say. can you comment/hint some other issues i was learned from users? would like to build a better understanding what is the responsibility of compilation database generators and tooling infrastructure.<br><br></div><div>- compilation flags like -MD, -MT x, -MF x, etc... might cause "duplicate" items in the compilation database. (the only difference would be the presence of these flags) i did modify the command line and filter out these flags. but if i'm following your logic, tooling libs shall notice that there is no semantic difference between the two compilation and run only once. (which is not the case now) would you be happy with that?<br><br></div><div>- compilations when a single command compiles (and links) files together are splitted into multiple entries. `clang one.c two.c` will make '[{"file": "one.c", "command": "clang -c one.c"}, {"file": "two.c", "command": "clang -c two.c"}]' is such transformation is acceptable for you point of view?<br><br></div><div>- about linking. (specially static linking.) how would you record that into the existing format?<br><br></div><div>- the Bear tool is currently filtering out linker flags. because my understanding was that the output will be used by tools which does not go beyond compilation. is that a wrong assumption too?<br></div><div><br></div><div>regards,<br></div><div>Laszlo<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 1, 2016 at 2:56 AM, Manuel Klimek <span dir="ltr"><<a href="mailto:klimek@google.com" target="_blank">klimek@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class=""><div dir="ltr">On Wed, Nov 30, 2016 at 2:59 AM Laszlo Nagy <<a href="mailto:rizsotto.mailinglist@gmail.com" target="_blank">rizsotto.mailinglist@gmail.<wbr>com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_6760034789942032407gmail_msg"><div class="m_6760034789942032407gmail_msg"><div class="m_6760034789942032407gmail_msg"><div class="m_6760034789942032407gmail_msg"><div class="m_6760034789942032407gmail_msg"><div class="m_6760034789942032407gmail_msg">Hi all,<br class="m_6760034789942032407gmail_msg"><br class="m_6760034789942032407gmail_msg"></div>I wrote a tool (Bear) which generates compilation database. A user feeds the output into a tool which is using Clang tooling libraries. <<a href="https://github.com/woboq/woboq_codebrowser/" class="m_6760034789942032407gmail_msg" target="_blank">https://github.com/woboq/<wbr>woboq_codebrowser/</a>> He runs these tools again a project, which contains .s and .asm files. (These files are compiled as `clang -x assembler-with-cpp`)<br class="m_6760034789942032407gmail_msg"><br class="m_6760034789942032407gmail_msg"></div>When the .s and .asm files are not in the compilation database, the codebrowser output is not complete. What I'm trying to figure out here, is it a legitimate compilation database which has .s or .asm files in it? Is it the responsibility of the tooling library to ignore/consider those entries even if those are not real compilations? If that's okay, why linking/preprocessing is not part of the compilation database too?<br class="m_6760034789942032407gmail_msg"><br class="m_6760034789942032407gmail_msg"></div>Any help or pointer some documentation is appreciated.<br class="m_6760034789942032407gmail_msg"></div></div></div></blockquote><div><br></div></span><div>The compilation database doesn't really say this, and I kept that unspecified precisely so we could extend it later ;)</div><div>Preprocessing is not an extra step (at least in C++ afaiu it's very tightly ingrained in the language), so I don't think pulling it out makes sense.</div><div>Linking might make sense to put in there, if somebody has a use case.</div><div><br></div><div>I'd generally say that tool infrastructure should be able to figure out what the tool is interested in, so I'd file bugs / send patches where that doesn't work out of the box.</div><div><br></div><div>Cheers,</div><div>/Manuel</div></div></div>
</blockquote></div><br></div>