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 <yanqin....@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> Reviewed-by: JingZhao Ni <jingzhao...@arm.com> Reviewed-by: Gavin Hu <gavin...@arm.com> Signed-off-by: Lance Yang <lance.y...@arm.com> --- 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