getargs: use LC_MESSAGES trick only on glibc
[bison.git] / .travis.yml
blob4cef8ea6d451521350c277ce3230796084d62a2d
1 # Travis defines and exports CC and CXX *after* we have defined our
2 # environment variables via 'env'.  So, do not use 'env' to define
3 # them.  Instead, put their definitions in MATRIX_EVAL, which we eval
4 # after the definitions from Travis.
6 language: cpp
8 env:
9   global:
10     # ICC serial number.
11     secure: ED3w6rzxuE6tVu3oyxha2MoGMRzRQCtinvr9uor1gw9TGKB80esTLx4KyX0xHemUdyQVarFDDQfVS5rf7jSDY8XiWIR6O+2Af9/30gb+8eyngyvACu7E28n+1XHmYWIEHsbvB9mic6C60FBj5sPcDnFWZeyttGL0WooSjYHiw1Egafwqbeu1mD3Aet9OI9VaLQvy0KcWAdVrYWSI9UWLvLM+xPVUjPFko4oS+dTlETzVnmn6JFbZX1OKONtfcvdoDRFBzs3iHm5dQUt/Fz+y/DtKSuvF3zvePHSgF6c8URbEPPjBdh87gkovSLyy+83fVeh4WMkF8b+dGZmikQv6kRsjKJdbQrS8tiMhZlORC5Gfmn4HXNgmapL+paUweakH7UZQHm6d5SZoBgCHNazfqMrywbZsZkGvZTDQIVG1Be7Lhh2BDFbPhPZNDvI9XYiqZP0QSb0BVfeO+AUSRcUPM7TvarxB74jYdfpTBu7sqJP6dSwhcDTEUhHmuLGjzsNm3uTZe8SUw/TGGx5uPTXNsCjJq6ClIOAIYXZTXLbBmIL/NBWCy0MUpD+9zsiknU7vzzq1RfgCCExhvYgosTjBLcX1kKI+eRSU5M44e+xCg4xx0m9WfafbKbhA20FfnWxCFIkZeVpkOOsexJ9zfe0SflVLxkd7vmci5SCBixLVbN0=
13 matrix:
14   include:
15     ## ----- ##
16     ## GCC.  ##
17     ## ----- ##
18     #- name: "GCC 8 with sanitizers"
19     #  os: linux
20     #  addons:
21     #    apt:
22     #      sources:
23     #        - ubuntu-toolchain-r-test
24     #      packages:
25     #        - g++-8
26     #  env:
27     #    # Can't use UBSAN: I get:
28     #    # configure:4951: gcc-8 -fsanitize=undefined,address -fno-omit-frame-pointer conftest.c
29     #    # /usr/bin/ld: unrecognized option '--push-state'
30     #    - MATRIX_EVAL="CC='gcc-8 -fsanitize=undefined,address -fno-omit-frame-pointer' CXX='g++-8 -fsanitize=undefined,address -fno-omit-frame-pointer'"
32     - name: "GCC 7 -O3"
33       os: linux
34       addons:
35         apt:
36           sources:
37             - ubuntu-toolchain-r-test
38           packages:
39             - g++-7
40       env:
41         - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7 && CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'"
43     - name: "GCC 6"
44       os: linux
45       addons:
46         apt:
47           sources:
48             - ubuntu-toolchain-r-test
49           packages:
50             - g++-6
51       env:
52         - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
54     - name: "GCC 5"
55       os: linux
56       addons:
57         apt:
58           sources:
59             - ubuntu-toolchain-r-test
60           packages:
61             - g++-5
62       env:
63          - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
65     - name: "GCC 4.9"
66       os: linux
67       addons:
68         apt:
69           sources:
70             - ubuntu-toolchain-r-test
71           packages:
72             - g++-4.9
73       env:
74          - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
76     - name: "GCC 4.8"
77       os: linux
78       addons:
79         apt:
80           sources:
81             - ubuntu-toolchain-r-test
82           packages:
83             - g++-4.8
84       env:
85          - MATRIX_EVAL="CC=gcc-4.8 && CXX=g++-4.8"
87     - name: "GCC 4.7"
88       os: linux
89       addons:
90         apt:
91           sources:
92             - ubuntu-toolchain-r-test
93           packages:
94             - g++-4.7
95       env:
96          - MATRIX_EVAL="CC=gcc-4.7 && CXX=g++-4.7"
98     - name: "GCC 4.6"
99       os: linux
100       addons:
101         apt:
102           sources:
103             - ubuntu-toolchain-r-test
104           packages:
105             - g++-4.6
106       env:
107          - MATRIX_EVAL="CC=gcc-4.6 && CXX=g++-4.6"
109     ## ------- ##
110     ## Clang.  ##
111     ## ------- ##
113     - name: "Clang 7 libc++ and ASAN"
114       os: linux
115       addons:
116         apt:
117           sources:
118             # Travis is not ready yet:
119             # - llvm-toolchain-trusty-7
120             - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
121               key_url: 'http://apt.llvm.org/llvm-snapshot.gpg.key'
122             - ubuntu-toolchain-r-test
123           packages:
124             - clang-7
125             - libc++-7-dev
126             - libc++abi-7-dev
127       env:
128         # Do not use ASAN with ubuntu's libc++: https://bugs.llvm.org/show_bug.cgi?id=17379
129         - MATRIX_EVAL="CC='clang-7 -fsanitize=address' CXX='clang++-7 -fsanitize=address -stdlib=libc++'"
131     - name: "Clang 6 -O3 and libc++"
132       os: linux
133       addons:
134         apt:
135           sources:
136             - llvm-toolchain-trusty-6.0
137             - ubuntu-toolchain-r-test
138           packages:
139             - clang-6.0
140             - libc++-dev
141       env:
142         - MATRIX_EVAL="CC=clang-6.0 && CXX='clang++-6.0 -stdlib=libc++'"
143         - CONFIGUREFLAGS='CPPFLAGS=-DNDEBUG CFLAGS=-O3 CXXFLAGS=-O3'
145     - name: "Clang 5"
146       os: linux
147       addons:
148         apt:
149           sources:
150             - llvm-toolchain-trusty-5.0
151           packages:
152             - clang-5.0
153             - libc++-dev
154       env:
155         - MATRIX_EVAL="CC='clang-5.0' CXX='clang++-5.0'"
157     - name: "Clang 4"
158       os: linux
159       addons:
160         apt:
161           sources:
162             - llvm-toolchain-trusty-4.0
163           packages:
164             - clang-4.0
165       env:
166         - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0"
168     - name: "Clang 3.9"
169       os: linux
170       addons:
171         apt:
172           sources:
173             - llvm-toolchain-trusty-3.9
174           packages:
175             - clang-3.9
176       env:
177         - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
179     - name: "Clang 3.8"
180       os: linux
181       addons:
182         apt:
183           sources:
184             - ubuntu-toolchain-r-test
185             - llvm-toolchain-precise-3.8
186           packages:
187             - clang-3.8
188       env:
189         - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8"
191     - name: "CLang 3.7"
192       os: linux
193       addons:
194         apt:
195           sources:
196             - ubuntu-toolchain-r-test
197             - llvm-toolchain-precise-3.7
198           packages:
199             - clang-3.7
200       env:
201         - MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7"
203     - name: "Clang 3.6"
204       os: linux
205       addons:
206         apt:
207           sources:
208             - ubuntu-toolchain-r-test
209             - llvm-toolchain-precise-3.6
210           packages:
211             - clang-3.6
212       env:
213         - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6"
215     - name: "Clang 3.5"
216       os: linux
217       addons:
218         apt:
219           sources:
220             - ubuntu-toolchain-r-test
221             - llvm-toolchain-precise-3.5
222           packages:
223             - clang-3.5
224       env:
225         - MATRIX_EVAL="CC=clang-3.5 && CXX=clang++-3.5"
227     - name: "Clang 3.4"
228       os: linux
229       addons:
230         apt:
231           packages:
232             - clang-3.4
233       env:
234         # No versioned name installed, but beware that Travis installs
235         # a more modern clang earlier in the default PATH.
236         - MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++'
238     - name: "Clang 3.3"
239       os: linux
240       addons:
241         apt:
242           packages:
243             - clang-3.3
244       env:
245         # See comment for 3.4.
246         - MATRIX_EVAL='CC=/usr/bin/clang && CXX=/usr/bin/clang++'
248     ## ----- ##
249     ## ICC.  ##
250     ## ----- ##
251     - name: "ICC"
252       os: linux
253       env:
254         # ICC's warnings are often very wrong (e.g., it thinks foo ?
255         # "bar" : "baz" is char* instead of const char*), so don't try
256         # to work around the, and obviously, don't die on them.
257         - MATRIX_EVAL="CC=icc && CXX=icpc"
258         - MAKE_ARGS='WERROR_CFLAGS= WERROR_CXXFLAGS='
260 before_install:
261   - eval "$MATRIX_EVAL"
262   - env
263   - sudo apt-get update -qq
264   - sudo apt-get install -qq autoconf automake autopoint doxygen flex gettext graphviz help2man m4 texinfo
265   - if [[ $CC == "icc" ]]; then build-aux/install-icc.sh; fi
266   - if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
267   - autoconf --version
268   - automake --version
269   - autopoint --version
270   - $CC --version
271   - $CXX --version
272   - doxygen --version
273   - flex --version
274   - gettext --version
275   - dot -V
276   - help2man --version
277   - m4 --version
278   - makeinfo --version
280 script:
281   - git show
282   - git tag -l
283   # For some reasons, sometimes the checkout does not have any tags,
284   # so `git describe` fails, so bootstrap fails.
285   - git describe || git tag v3.0 -m "Fake version 3.0."
286   - git describe
287   - ./bootstrap
288   - if [[ -f ~/.bashrc ]]; then source ~/.bashrc; fi
289   - ./configure --enable-gcc-warnings CC="$CC" CXX="$CXX" $CONFIGUREFLAGS || { cat config.log && false; }
290   - make -j2 $MAKE_ARGS
291   - make check                  VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }
292   - make maintainer-check-posix VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }
293   - make maintainer-check-g++   VERBOSE=1 TESTSUITEFLAGS=-j2 || { cat tests/testsuite.log && false; }
295 after_script:
296   - if [[ $CC == "icc" ]]; then uninstall_intel_software; fi