[ovs-dev] [PATCH] travis: Fix checks skipping by sparse.

Ilya Maximets i.maximets at samsung.com
Wed Apr 24 13:00:22 UTC 2019


Recent commit in "sparse" broke checking the OVS sources, because
'make' uses '-MD' flag to generate dependencies as a side effect
within compilation commands, but "sparse" skips all the build commands
that contains '-MD' and friends.
Let's revert the bad commit as a workaround before installing "sparse"
in TravisCI.

Additionally fixed a false-positive:
./lib/bitmap.h:64:29: error: shift too big (64) for type unsigned long

CC: Yi-Hung Wei <yihung.wei at gmail.com>
Fixes: 879e8238dfdf ("travis: Update sparse git repo")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
---
 .travis/linux-prepare.sh | 9 ++++++++-
 lib/bitmap.h             | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/.travis/linux-prepare.sh b/.travis/linux-prepare.sh
index 50189c421..d41799e3e 100755
--- a/.travis/linux-prepare.sh
+++ b/.travis/linux-prepare.sh
@@ -8,7 +8,14 @@ set -ev
 # environments claim to have LLVM (llvm-config exists and works) but
 # linking against it fails.
 git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git
-cd sparse && make -j4 HAVE_LLVM= install && cd ..
+cd sparse
+# Commit bb1bf748580d ("cgcc: gendeps for -MM, -MD & -MMD too") makes
+# sparse ignore almost all source files, because 'make' uses '-MD' to
+# generate dependencies as a side effect within compilation commands.
+git revert bb1bf748580d --no-commit
+git diff HEAD
+make -j4 HAVE_LLVM= install
+cd ..
 
 pip install --disable-pip-version-check --user six flake8 hacking
 pip install --user --upgrade docutils
diff --git a/lib/bitmap.h b/lib/bitmap.h
index eb469339e..0b62066c6 100644
--- a/lib/bitmap.h
+++ b/lib/bitmap.h
@@ -61,7 +61,7 @@ bitmap_init1(unsigned long *bitmap, size_t n_bits)
 
     memset(bitmap, 0xff, n_bytes);
     if (r_bits) {
-        bitmap[n_longs - 1] >>= BITMAP_ULONG_BITS - r_bits;
+        bitmap[n_longs - 1] = (1UL << r_bits) - 1;
     }
     return bitmap;
 }
-- 
2.17.1



More information about the dev mailing list