mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
* .travis.yml: Try clang and icc soon, so that we don't have to wait for the end of the run to know that they fail.
301 lines
8.2 KiB
YAML
301 lines
8.2 KiB
YAML
# Travis defines and exports CC and CXX *after* we have defined our
|
|
# environment variables via 'env'. So, do not use 'env' to define
|
|
# them. Instead, put their definitions in MATRIX_EVAL, which we eval
|
|
# after the definitions from Travis.
|
|
|
|
language: cpp
|
|
|
|
env:
|
|
global:
|
|
# ICC serial number.
|
|
secure: ED3w6rzxuE6tVu3oyxha2MoGMRzRQCtinvr9uor1gw9TGKB80esTLx4KyX0xHemUdyQVarFDDQfVS5rf7jSDY8XiWIR6O+2Af9/30gb+8eyngyvACu7E28n+1XHmYWIEHsbvB9mic6C60FBj5sPcDnFWZeyttGL0WooSjYHiw1Egafwqbeu1mD3Aet9OI9VaLQvy0KcWAdVrYWSI9UWLvLM+xPVUjPFko4oS+dTlETzVnmn6JFbZX1OKONtfcvdoDRFBzs3iHm5dQUt/Fz+y/DtKSuvF3zvePHSgF6c8URbEPPjBdh87gkovSLyy+83fVeh4WMkF8b+dGZmikQv6kRsjKJdbQrS8tiMhZlORC5Gfmn4HXNgmapL+paUweakH7UZQHm6d5SZoBgCHNazfqMrywbZsZkGvZTDQIVG1Be7Lhh2BDFbPhPZNDvI9XYiqZP0QSb0BVfeO+AUSRcUPM7TvarxB74jYdfpTBu7sqJP6dSwhcDTEUhHmuLGjzsNm3uTZe8SUw/TGGx5uPTXNsCjJq6ClIOAIYXZTXLbBmIL/NBWCy0MUpD+9zsiknU7vzzq1RfgCCExhvYgosTjBLcX1kKI+eRSU5M44e+xCg4xx0m9WfafbKbhA20FfnWxCFIkZeVpkOOsexJ9zfe0SflVLxkd7vmci5SCBixLVbN0=
|
|
|
|
matrix:
|
|
include:
|
|
## ------- ##
|
|
## First. ##
|
|
## ------- ##
|
|
|
|
# Start with three completely different environments, to get
|
|
# errors asap.
|
|
|
|
- name: "GCC 7 -O3"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-7
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'"
|
|
|
|
- name: "Clang 7 libc++ and ASAN"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-7
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-7
|
|
- libc++-7-dev
|
|
- libc++abi-7-dev
|
|
env:
|
|
# Do not use ASAN with ubuntu's libc++: https://bugs.llvm.org/show_bug.cgi?id=17379
|
|
- MATRIX_EVAL="CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
|
|
|
|
- name: "ICC"
|
|
os: linux
|
|
env:
|
|
# ICC's warnings are often very wrong (e.g., it thinks foo ?
|
|
# "bar" : "baz" is char* instead of const char*), so don't try
|
|
# to work around the, and obviously, don't die on them.
|
|
- MATRIX_EVAL="CC=icc && CXX=icpc"
|
|
- MAKE_ARGS='WERROR_CFLAGS= WERROR_CXXFLAGS='
|
|
|
|
|
|
## ----- ##
|
|
## GCC. ##
|
|
## ----- ##
|
|
|
|
#- name: "GCC 8 with sanitizers"
|
|
# os: linux
|
|
# addons:
|
|
# apt:
|
|
# sources:
|
|
# - ubuntu-toolchain-r-test
|
|
# packages:
|
|
# - g++-8
|
|
# env:
|
|
# # Can't use UBSAN: I get:
|
|
# # configure:4951: gcc-8 -fsanitize=undefined,address -fno-omit-frame-pointer conftest.c
|
|
# # /usr/bin/ld: unrecognized option '--push-state'
|
|
# - MATRIX_EVAL="CC='gcc-8 -fsanitize=undefined,address -fno-omit-frame-pointer' CXX='g++-8 -fsanitize=undefined,address -fno-omit-frame-pointer'"
|
|
|
|
- name: "GCC 6"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-6
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
|
|
|
|
- name: "GCC 5"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-5
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
|
|
|
- name: "GCC 4.9"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-4.9
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
|
|
|
|
- name: "GCC 4.8"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-4.8
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-4.8 && CXX=g++-4.8"
|
|
|
|
- name: "GCC 4.7"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-4.7
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-4.7 && CXX=g++-4.7"
|
|
|
|
- name: "GCC 4.6"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-4.6
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-4.6 && CXX=g++-4.6"
|
|
|
|
## ------- ##
|
|
## Clang. ##
|
|
## ------- ##
|
|
|
|
- name: "Clang 6 -O3 and libc++"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-6.0
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- clang-6.0
|
|
- libc++-dev
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-6.0 && CXX='clang++-6.0 -stdlib=libc++'"
|
|
- CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'
|
|
|
|
- name: "Clang 5"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-5.0
|
|
packages:
|
|
- clang-5.0
|
|
- libc++-dev
|
|
env:
|
|
- MATRIX_EVAL="CC='clang-5.0' CXX='clang++-5.0'"
|
|
|
|
- name: "Clang 4"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-4.0
|
|
packages:
|
|
- clang-4.0
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
|
|
|
|
- name: "Clang 3.9"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-trusty-3.9
|
|
packages:
|
|
- clang-3.9
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
|
|
|
|
- name: "Clang 3.8"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.8
|
|
packages:
|
|
- clang-3.8
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
|
|
|
|
- name: "CLang 3.7"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.7
|
|
packages:
|
|
- clang-3.7
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"
|
|
|
|
- name: "Clang 3.6"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.6
|
|
packages:
|
|
- clang-3.6
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
|
|
|
|
- name: "Clang 3.5"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.5
|
|
packages:
|
|
- clang-3.5
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-3.5 && CXX=clang++-3.5"
|
|
|
|
- name: "Clang 3.4"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-3.4
|
|
env:
|
|
# No versioned name installed, but beware that Travis installs
|
|
# a more modern clang earlier in the default PATH.
|
|
- MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++'
|
|
|
|
- name: "Clang 3.3"
|
|
os: linux
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- clang-3.3
|
|
env:
|
|
# See comment for 3.4.
|
|
- MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++'
|
|
|
|
|
|
before_install:
|
|
- eval "$MATRIX_EVAL"
|
|
- env
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get install -qq autoconf automake autopoint doxygen flex gettext graphviz help2man m4 texinfo
|
|
- if [[ $CC == "icc" ]]; then build-aux/install-icc.sh; fi
|
|
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
|
|
- autoconf --version
|
|
- automake --version
|
|
- autopoint --version
|
|
- $CC --version
|
|
- $CXX --version
|
|
- doxygen --version
|
|
- flex --version
|
|
- gettext --version
|
|
- dot -V
|
|
- help2man --version
|
|
- m4 --version
|
|
- makeinfo --version
|
|
|
|
script:
|
|
- git show
|
|
- git tag -l
|
|
# For some reasons, sometimes the checkout does not have any tags,
|
|
# so `git describe` fails, so bootstrap fails.
|
|
- git describe || git tag v3.0 -m "Fake version 3.0."
|
|
- git describe
|
|
- ./bootstrap
|
|
- if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
|
|
- ./configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; }
|
|
- make -j2 $MAKE_ARGS
|
|
- make check VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }
|
|
- make maintainer-check-posix VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }
|
|
- make maintainer-check-g++ VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }
|
|
|
|
after_script:
|
|
- if [[ $CC == "icc" ]]; then uninstall_intel_software; fi
|