From: Bhanuprakash Bodireddy Date: Fri, 15 Jul 2016 18:43:24 +0000 (+0100) Subject: Makefile.am: Add clang static analysis support X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=30b79363b9675a9ff8e08da7f892fe1ca19bd741 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 ' command to examine the bug report. Signed-off-by: Bhanuprakash Bodireddy Acked-By: Lance Richardson Signed-off-by: Ben Pfaff --- diff --git a/INSTALL.md b/INSTALL.md index f4d232b74..47126a337 100644 --- a/INSTALL.md +++ b/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 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 ============= diff --git a/Makefile.am b/Makefile.am index 396a2e153..49010b3b5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -401,6 +401,13 @@ ovsext_clean: datapath-windows/ovsext.sln endif .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) all-local: $(ALL_LOCAL) clean-local: $(CLEAN_LOCAL)