mirror of
https://github.com/openvswitch/ovs
synced 2025-10-23 14:57:06 +00:00
Makefile.am: Add clang static analysis support
Clang Static Analyzer is a source code analysis tool to find bugs. This patch adds make target to trigger static analysis using below commands. ./boot.sh For Clang: ./configure CC=clang --with-dpdk For GCC: ./configure CC=gcc --with-dpdk CFLAGS="-std=gnu99" make clang-analyze Run 'scan-view <results dir>' command to examine the bug report. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy@intel.com> Acked-By: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
committed by
Ben Pfaff
parent
dde5ea7bd6
commit
30b79363b9
22
INSTALL.md
22
INSTALL.md
@@ -746,6 +746,28 @@ Instructions to setup travis-ci for your GitHub repository:
|
|||||||
4. Pushing a commit to the repository which breaks the build or the
|
4. Pushing a commit to the repository which breaks the build or the
|
||||||
testsuite will now trigger a email sent to mylist@mydomain.org
|
testsuite will now trigger a email sent to mylist@mydomain.org
|
||||||
|
|
||||||
|
Static Code Analysis
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Static Analysis is a method of debugging Software by examining code rather
|
||||||
|
than actually executing it. This can be done through 'scan-build' commandline
|
||||||
|
utility which internally uses clang (or) gcc to compile the code and also
|
||||||
|
invokes a static analyzer to do the code analysis. At the end of the build, the
|
||||||
|
reports are aggregated in to a common folder and can later be analyzed using
|
||||||
|
'scan-view'.
|
||||||
|
|
||||||
|
Open vSwitch includes a Makefile target to trigger static code Analysis and
|
||||||
|
the instructions are below.
|
||||||
|
|
||||||
|
1. ./boot.sh
|
||||||
|
2. ./configure CC=clang (when using clang compiler)
|
||||||
|
./configure CC=gcc CFLAGS="-std=gnu99" (when using GCC)
|
||||||
|
3. make clang-analyze
|
||||||
|
|
||||||
|
You should invoke scan-view to view analysis results. The last line of output
|
||||||
|
from 'make clang-analyze' shall list the command (containing results directory)
|
||||||
|
that you should invoke to view the results on a browser.
|
||||||
|
|
||||||
Bug Reporting
|
Bug Reporting
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|||||||
@@ -401,6 +401,13 @@ ovsext_clean: datapath-windows/ovsext.sln
|
|||||||
endif
|
endif
|
||||||
.PHONY: ovsext
|
.PHONY: ovsext
|
||||||
|
|
||||||
|
clang-analyze: clean
|
||||||
|
@which clang scan-build >/dev/null 2>&1 || \
|
||||||
|
(echo "Unable to find clang/scan-build, Install clang,clang-analyzer packages"; exit 1)
|
||||||
|
@$(MKDIR_P) "$(srcdir)/tests/clang-analyzer-results"
|
||||||
|
@scan-build -o $(srcdir)/tests/clang-analyzer-results --use-cc=$(CC) $(MAKE)
|
||||||
|
.PHONY: clang-analyze
|
||||||
|
|
||||||
dist-hook: $(DIST_HOOKS)
|
dist-hook: $(DIST_HOOKS)
|
||||||
all-local: $(ALL_LOCAL)
|
all-local: $(ALL_LOCAL)
|
||||||
clean-local: $(CLEAN_LOCAL)
|
clean-local: $(CLEAN_LOCAL)
|
||||||
|
|||||||
Reference in New Issue
Block a user