Enable part of travis jobs with gcc compiler for arm64 architecture
1. Add arm jobs into the matrix in .travis.yml configuration file
2. To enable OVS-DPDK jobs, set the build target according to
different CPU architectures
3. Temporarily disable sparse checker because of static code checking
failure on arm64
Considering the balance of the CI coverage and running time, some kernel
and DPDK jobs are removed from Arm CI.
Successful travis build jobs report:
https://travis-ci.org/github/yzyuestc/ovs/builds/666129448
Reviewed-by: Yanqin Wei
Reviewed-by: Ruifeng Wang
Reviewed-by: JingZhao Ni
Reviewed-by: Gavin Hu
Signed-off-by: Lance Yang
---
v4:
- Move TARGET variable into install_dpdk function.
- Avoid to add SPARSE_FLAGS to CFLAGS_FOR_OVS when sparse is not
enabled.
---
v3:
- Remove some kernel jobs: 4.18, 4.17, 4.16, 4.15, 4.14, and 4.3.
- Remove one OvS-DPDK shared library job.
---
.travis.yml| 15 +++
.travis/linux-build.sh | 13 +++--
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index ef9f867..1149758 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -51,6 +51,21 @@ matrix:
- os: osx
compiler: clang
env: OPTS="--disable-ssl"
+- arch: arm64
+ compiler: gcc
+ env: OPTS="--disable-ssl"
+- arch: arm64
+ compiler: gcc
+ env: KERNEL_LIST="5.5 4.19"
+- arch: arm64
+ compiler: gcc
+ env: KERNEL_LIST="4.9 3.16"
+- arch: arm64
+ compiler: gcc
+ env: DPDK=1 OPTS="--enable-shared"
+- arch: arm64
+ compiler: gcc
+ env: DPDK_SHARED=1
script: ./.travis/${TRAVIS_OS_NAME}-build.sh $OPTS
diff --git a/.travis/linux-build.sh b/.travis/linux-build.sh
index 359f777..02615a8 100755
--- a/.travis/linux-build.sh
+++ b/.travis/linux-build.sh
@@ -6,7 +6,6 @@ set -x
CFLAGS_FOR_OVS="-g -O2"
SPARSE_FLAGS=""
EXTRA_OPTS="--enable-Werror"
-TARGET="x86_64-native-linuxapp-gcc"
function install_kernel()
{
@@ -87,6 +86,16 @@ function install_dpdk()
local DPDK_VER=$1
local VERSION_FILE="dpdk-dir/travis-dpdk-cache-version"
+if [ -z "$TRAVIS_ARCH" ] ||
+ [ "$TRAVIS_ARCH" == "amd64" ]; then
+TARGET="x86_64-native-linuxapp-gcc"
+elif [ "$TRAVIS_ARCH" == "aarch64" ]; then
+TARGET="arm64-armv8a-linuxapp-gcc"
+else
+echo "Target is unknown"
+exit 1
+fi
+
if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
# Avoid using cache for git tree build.
rm -rf dpdk-dir
@@ -177,7 +186,7 @@ elif [ "$M32" ]; then
# Adding m32 flag directly to CC to avoid any posiible issues with API/ABI
# difference on 'configure' and 'make' stages.
export CC="$CC -m32"
-else
+elif [ "$TRAVIS_ARCH" != "aarch64" ]; then
OPTS="--enable-sparse"
if [ "$AFXDP" ]; then
# netdev-afxdp uses memset for 64M for umem initialization.
--
2.7.4
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev