numam-dpdk/.travis.yml
Andrzej Ostruszka 098cc0fea3 build: add option to enable LTO
This patch adds an option to enable link time optimization.  In addition
to LTO option itself (-flto) fat-lto-objects are being used.  This is
because during the build pmdinfogen scans the generated ELF objects to
find this_pmd_name* symbol in symbol table.  Without fat-lto-objects gcc
produces ELF only with extra symbols for internal use during linking.

Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2019-11-08 15:17:05 +01:00

120 lines
2.7 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]
extra_packages: &extra_packages
- *required_packages
- [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4]
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" 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" OPTS="-Db_lto=true" EXTRA_PACKAGES=1 CC=gcc-7
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- *extra_packages
- gcc-7
script: ./.ci/${TRAVIS_OS_NAME}-build.sh