Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> writes: > <snip> > >> > >> > > Add Travis compilation jobs for 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.w...@arm.com> >> > > Reviewed-by: Gavin Hu <gavin...@arm.com> >> > > --- >> > >> > Can't we achieve the same thing by setting >> > >> > arch: >> > - amd64 >> > - arm64 >> > >> > in the build matrix? Or will that also force the intel builds to use >> > the container infrastructure (in which case the no-huge support needs to be >> fixed)? >> >> No, container infrastructure will not be imposed to intel builds. >> AFAIN, Travis infrastructure for a specific CPU arch is provided as is, and >> there is no config option to control. >> The problem with just adding 'arch' in build matrix is that RUN_TESTS on >> arm64 is not supported by now (Travis limitation). 'env' with RUN_TESTS will >> fail. >> > >> > One thing I wonder, isn't is possible to use qemu-user to do the amd64 >> > unit tests? Then do we really need some changes to do the native build? >> >> Do you mean to use qemu-user to do unit tests for non-x86 arch? >> Changes will be needed as well to enable qemu-user to do unit test. >> Since Travis support multi CPU arch, I think native build and test is simpler >> and more natural. > Yes, prefer to run the tests natively as the infrastructure is > available and will improve further from here.
Agreed. But we can't run the aarch64 tests for now, no matter which way we slice it. >> >> > Does it buy us anything *today* given the cost of the hugepage restriction? >> > Will that ever be resolved (I didn't see so from the docs on travis)? >> >> The hugepage issue has been reported to Travis. I think it will be resolved. >> But no set dates yet. >> > >> > > .ci/linux-setup.sh | 11 +++++++---- >> > > .travis.yml | 42 +++++++++++++++++++++++++++++++++++++++++- >> > > 2 files changed, 48 insertions(+), 5 deletions(-) >> > > >> > > diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh index >> > > dfb9d4a20..a92978037 100755 >> > > --- a/.ci/linux-setup.sh >> > > +++ b/.ci/linux-setup.sh >> > > @@ -3,7 +3,10 @@ >> > > # need to install as 'root' since some of the unit tests won't run >> > > without it sudo python3 -m pip install --upgrade meson >> > > >> > > -# setup hugepages >> > > -cat /proc/meminfo >> > > -sudo sh -c 'echo 1024 > /proc/sys/vm/nr_hugepages' >> > > -cat /proc/meminfo >> > > +# hugepage settings are skipped on aarch64 due to environment >> > > +limitation if [ "$TRAVIS_ARCH" != "aarch64" ]; then >> > > + # setup hugepages >> > > + cat /proc/meminfo >> > > + sudo sh -c 'echo 1024 > /proc/sys/vm/nr_hugepages' >> > > + cat /proc/meminfo >> > > +fi >> > > diff --git a/.travis.yml b/.travis.yml index 8f90d06f2..980c7605d >> > > 100644 >> > > --- a/.travis.yml >> > > +++ b/.travis.yml >> > > @@ -115,6 +115,46 @@ matrix: >> > > 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 >>