Inspired by Ben Pfaff's email on 32 bit build environment, this adds a 32bit build to the travis build matrix to catch alignment and padding issues.
The 32 bit build is only enabled for non-DPDK builds as DPDK itself is currently not capable to be compiled with -m32. The build also has SSL disabled as the Ubuntu libssl-devel package is not multiarch compatible on the travis build system. Signed-off-by: Thomas Graf <tg...@noironetworks.com> --- .travis.yml | 1 + .travis/build.sh | 8 ++++++-- .travis/prepare.sh | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1ffd15a..1838bb2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ env: - OPTS="--disable-ssl" - TESTSUITE=1 KERNEL=3.18.1 - TESTSUITE=1 OPTS="--enable-shared" + - BUILD_ENV="-m32" OPTS="--disable-ssl" - KERNEL=3.17.7 DPDK=1 - KERNEL=3.17.7 DPDK=1 OPTS="--enable-shared" - KERNEL=3.17.7 diff --git a/.travis/build.sh b/.travis/build.sh index 3570992..a8a515b 100755 --- a/.travis/build.sh +++ b/.travis/build.sh @@ -4,6 +4,7 @@ set -o errexit KERNELSRC="" CFLAGS="-Werror" +SPARSE_FLAGS="" EXTRA_OPTS="" function install_kernel() @@ -74,7 +75,7 @@ if [ "$DPDK" ]; then EXTRA_OPTS+="--with-dpdk=./dpdk-$DPDK_VER/build" elif [ $CC != "clang" ]; then # DPDK headers currently trigger sparse errors - CFLAGS="$CFLAGS -Wsparse-error" + SPARSE_FLAGS="$SPARSE_FLAGS -Wsparse-error" fi configure_ovs $EXTRA_OPTS $* @@ -86,8 +87,11 @@ fi if [ $CC = "clang" ]; then make CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument" +elif [[ $BUILD_ENV =~ "-m32" ]]; then + # Disable sparse for 32bit builds on 64bit machine + make CFLAGS="$CFLAGS $BUILD_ENV" else - make CFLAGS="$CFLAGS" C=1 + make CFLAGS="$CFLAGS $BUILD_ENV $SPARSE_FLAGS" C=1 fi if [ $TESTSUITE ] && [ $CC != "clang" ]; then diff --git a/.travis/prepare.sh b/.travis/prepare.sh index f8bd0a1..a78282b 100755 --- a/.travis/prepare.sh +++ b/.travis/prepare.sh @@ -2,6 +2,7 @@ sudo apt-get update -qq sudo apt-get install -qq libssl-dev llvm-dev +sudo apt-get install -qq gcc-multilib git clone git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git cd sparse && make && sudo make install PREFIX=/usr && cd .. -- 1.9.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev