mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Xenial (Ubuntu 16.04) is finally available on Travis. Let's use it. Among the changes: - Automake 1.14.1 -> 1.15.0 - Doxygen 1.8.6 -> 1.8.11 - Flex 2.5.35 -> 2.6.0, with plenty of new compiler warnings - Gettext 0.18.3 -> 0.19.7 - Graphviz 2.36.0 -> 2.38.0 - Texinfo 5.2 -> 6.1 * .travis.yml: here.
348 lines
9.8 KiB
YAML
348 lines
9.8 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
|
|
dist: xenial
|
|
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'"
|
|
|
|
# ASAN is time consuming, and we timeout the 50min granted by
|
|
# Travis if we run all the tests in on go. Run in two parts.
|
|
- name: "Clang 7 libc++ and ASAN part 1"
|
|
os: linux
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-xenial-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="PART=1 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
|
|
|
|
- name: "Clang 7 libc++ and ASAN part 2"
|
|
os: linux
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-xenial-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="PART=2 CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
|
|
|
|
- name: "ICC"
|
|
os: linux
|
|
dist: xenial
|
|
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
|
|
# dist: xenial
|
|
# 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' (on trusty)
|
|
# # /usr/bin/ld: unrecognized option '--push-state--no-as-needed' (on xenial)
|
|
# #
|
|
# # https://stackoverflow.com/questions/50024731/ suggests using the gold linker.
|
|
# - 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
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- g++-6
|
|
env:
|
|
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
|
|
|
|
- name: "GCC 5"
|
|
os: linux
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-xenial-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
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-xenial-5.0
|
|
packages:
|
|
- clang-5.0
|
|
- libc++-dev
|
|
env:
|
|
- MATRIX_EVAL="CC='clang-5.0' CXX='clang++-5.0'"
|
|
|
|
- name: "Clang 4"
|
|
os: linux
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-xenial-4.0
|
|
packages:
|
|
- clang-4.0
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
|
|
|
|
- name: "Clang 3.9"
|
|
os: linux
|
|
dist: xenial
|
|
addons:
|
|
apt:
|
|
sources:
|
|
- llvm-toolchain-xenial-3.9
|
|
packages:
|
|
- clang-3.9
|
|
env:
|
|
- MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
|
|
|
|
- name: "Clang 3.8"
|
|
os: linux
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
dist: xenial
|
|
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
|
|
# Not available on Xenial.
|
|
dist: trusty
|
|
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
|
|
# Not available on Xenial.
|
|
dist: trusty
|
|
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
|
|
- ld --version
|
|
- m4 --version
|
|
- makeinfo --version
|
|
|
|
script:
|
|
- 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
|
|
# Unset this variable, otherwise, Java programs' stderr is cluttered
|
|
# with `Picked up _JAVA_OPTIONS: -Xmx2048m -Xms512m`, which makes
|
|
# the test suite fail.
|
|
- unset _JAVA_OPTIONS
|
|
- ./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
|
|
- if test ${PART-1} = 1; then make check VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }; fi
|
|
- if test ${PART-1} = 1; then make maintainer-check-posix VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }; fi
|
|
- if test ${PART-2} = 2; then make maintainer-check-g++ VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }; fi
|
|
|
|
after_script:
|
|
- if [[ $CC == "icc" ]]; then uninstall_intel_software; fi
|