mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
294 lines
8.1 KiB
YAML
294 lines
8.1 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:
|
|
## ----- ##
|
|
## 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 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: "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 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: "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++'
|
|
|
|
## ----- ##
|
|
## ICC. ##
|
|
## ----- ##
|
|
- 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='
|
|
|
|
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
|