<div dir="ltr"><div dir="ltr"></div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 27, 2020 at 9:36 PM Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 27, 2020 at 10:39 AM Gedare Bloom <<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">This appears to be a pretty standard llvm/clang build for a host system.<div><br></div><div>There are two parts to consider:</div><div>* Using the host tools over RTEMS</div><div>* Using cross-compiler tools over RTEMS</div><div><br></div><div>For analyzer I don't think the cross-target is a problem but I'm not really sure. That should be understood before pushing further. My understanding though is that most of the analyzers run on the LLVM IR, so the backend is irrelevant.</div></div></blockquote></div></div></blockquote><div><br></div><div>By cross compiler tools do you mean the Clang Static Analyzer should work on all hosts after building only once?  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br></div><div>I think the RISC-V and SPARC  have BSPs that can be built with clang. clang/llvm has a package in the RSB. I would recommend building llvm using the RSB and then building the supported BSPs.</div><div><br></div><div>That is a more solid base to use for analysis. Building RTEMS with the native compiler is hopeless (tilting at windmills).</div><div><br></div><div>Also gcc 10 has improved analysis (<a href="https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/" target="_blank">https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/</a>). I would like to see support for using either for static analysis.</div><div><br></div><div>Supporting >1 open source/free tool for static analysis before fixing anything is important (to me). This is already built by the rtems6 RSB toolchain. When that builds anyway -- it tracks the tools head. :)</div><div><br></div><div>Your project should include any additions to the RSB (if needed) and documenting use of the analyzers. If there is a technique to annotate source to avoid false positives or deliberate violations, your project should document that also</div></div></div></blockquote><div><br></div><div>     Do you mean the RSB can already build Clang Static Analyzer and UBSan?  </div><div><br></div><div>     So build clang/llvm and then build BSPs for analysis?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Also gcc 10 has improved analysis (<a href="https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/" target="_blank">https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/</a>). I would like to see support for using either for static analysis.<br>Supporting >1 open source/free tool for static analysis before fixing anything is important (to me). This is already built by the rtems6 RSB toolchain. When that builds anyway -- it tracks the tools head. :) </blockquote><div><br></div><div> Do you mean adding both gcc 10 and clang static analyzer in RTEMS?</div><div>What is already built by rtems6 RSB toolchain?</div><div> </div><div><br></div><div>UBSan needs code to be compiled. Will it be a problem?</div><div><br></div><div>Also I am quoting from clang mailing list</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">As of now we only analyze code that compiles without errors to begin<br>with. This does force us to have some amount of interaction with the<br>build system.</blockquote><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What are your problems with scan-build though? Is it somehow not working<br>for your build system? RTEMS looks like it has a plain old Makefile; as<br>long as it respects environment variables CC and CXX, "scan-build make"<br>should work just fine</blockquote></div><div><br></div></div></div></div>