31bb45bcfd
Add Travis compilation jobs for native aarch64. gcc/clang compilations for static/shared libraries are added. Some limitations for current aarch64 Travis support: 1. Container is used. Huge page is not available due to security reason. 2. Missing kernel header package in Xenial distribution. Solutions to address the limitations: 1. Not to add unit test for now. And run tests with no-huge in future. 2. Use Bionic distribution for all aarch64 jobs. Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Acked-by: Aaron Conole <aconole@redhat.com>
161 lines
3.5 KiB
YAML
161 lines
3.5 KiB
YAML
language: c
|
|
cache: ccache
|
|
compiler:
|
|
- gcc
|
|
- clang
|
|
|
|
dist: xenial
|
|
|
|
os:
|
|
- linux
|
|
|
|
addons:
|
|
apt:
|
|
update: true
|
|
packages: &required_packages
|
|
- [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
|
|
|
|
aarch64_packages: &aarch64_packages
|
|
- *required_packages
|
|
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
|
|
|
|
extra_packages: &extra_packages
|
|
- *required_packages
|
|
- [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
|
|
|
|
build_32b_packages: &build_32b_packages
|
|
- *required_packages
|
|
- [gcc-multilib]
|
|
|
|
doc_packages: &doc_packages
|
|
- [doxygen, graphviz, python3-sphinx]
|
|
|
|
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
|
|
|
|
env:
|
|
- DEF_LIB="static"
|
|
- DEF_LIB="shared"
|
|
- DEF_LIB="static" OPTS="-Denable_kmods=false"
|
|
- DEF_LIB="shared" OPTS="-Denable_kmods=false"
|
|
- DEF_LIB="shared" RUN_TESTS=1
|
|
|
|
matrix:
|
|
include:
|
|
- env: DEF_LIB="static" BUILD_32BIT=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *build_32b_packages
|
|
- env: DEF_LIB="static" OPTS="-Denable_kmods=false" AARCH64=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *aarch64_packages
|
|
- env: DEF_LIB="shared" OPTS="-Denable_kmods=false" AARCH64=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *aarch64_packages
|
|
- env: DEF_LIB="static" EXTRA_PACKAGES=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- *doc_packages
|
|
- env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="shared" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
|
|
compiler: gcc
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="static" EXTRA_PACKAGES=1
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="shared" EXTRA_PACKAGES=1
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- *doc_packages
|
|
- env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="shared" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *extra_packages
|
|
- env: DEF_LIB="static"
|
|
arch: arm64
|
|
compiler: gcc
|
|
dist: bionic
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *required_packages
|
|
- env: DEF_LIB="shared"
|
|
arch: arm64
|
|
compiler: gcc
|
|
dist: bionic
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *required_packages
|
|
- env: DEF_LIB="static"
|
|
arch: arm64
|
|
dist: bionic
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *required_packages
|
|
- env: DEF_LIB="shared"
|
|
arch: arm64
|
|
dist: bionic
|
|
compiler: clang
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *required_packages
|
|
- env: DEF_LIB="shared" OPTS="-Denable_kmods=false" BUILD_DOCS=1
|
|
arch: arm64
|
|
compiler: gcc
|
|
dist: bionic
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- *required_packages
|
|
- *doc_packages
|
|
|
|
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
|