.travis.yml raw
1 language: cpp
2 os: linux
3 dist: noble
4
5 jobs:
6 include:
7 - addons:
8 apt:
9 packages:
10 - libstdc++-14-dev
11 compiler: clang
12 env:
13 - CONF_OPTIONS="--enable-cplusplus"
14 - GCTEST_WITH_MPROTECT_VDB=true
15 - NO_CLONE_LIBATOMIC_OPS=true
16 - compiler: gcc
17 env:
18 - CONF_OPTIONS="--enable-cplusplus"
19 - GCTEST_WITH_MPROTECT_VDB=true
20 - addons:
21 apt:
22 packages:
23 - lcov
24 compiler: gcc
25 env:
26 - CONF_OPTIONS="--enable-gcov --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions --enable-valgrind-tracking"
27 - CFLAGS_EXTRA="-fprofile-update=atomic -D USE_CUSTOM_SPECIFIC"
28 - CC_FOR_CHECK=g++
29 - MAKEFILE_TARGETS="all"
30 - MAKEFILE_TARGETS_CHECK="check"
31 - NO_CLONE_LIBATOMIC_OPS=true
32 - REPORT_COVERAGE=true
33 - TESTS_CUSTOM_RUN=true
34 - env:
35 - MAKEFILE_TARGETS="dist"
36 - addons:
37 apt:
38 packages:
39 - g++-multilib
40 - gcc-multilib
41 compiler: clang
42 env:
43 - CSA_CHECK=true
44 - CFLAGS_EXTRA="-m32"
45 - addons:
46 apt:
47 packages:
48 - libstdc++-14-dev
49 compiler: clang
50 language: c
51 env:
52 - CSA_CHECK=true
53 - CFLAGS_EXTRA="-D ALL_INTERIOR_POINTERS -D CHECKSUMS -D DBG_HDRS_ALL -D DEBUG_THREADS -D ENABLE_TRACE -D GC_ALWAYS_MULTITHREADED -D GC_ASSERTIONS -D GC_ATOMIC_UNCOLLECTABLE -D GC_ENABLE_SUSPEND_THREAD -D GC_GCJ_SUPPORT -D GC_PRINT_BACK_HEIGHT -D GC_THREADS -D HANDLE_FORK -D JAVA_FINALIZATION -D KEEP_BACK_PTRS -D MAKE_BACK_GRAPH -D PARALLEL_MARK -D PRINT_BLACK_LIST -D THREAD_LOCAL_ALLOC -D USE_MMAP -D USE_MUNMAP"
54 - env:
55 - CPPCHECK_ENABLE="--enable=unusedFunction -I libatomic_ops/src extra/gc.c tests/*.c"
56 - env:
57 - CPPCHECK_ENABLE="--enable=unusedFunction --force -D GC_BUILTIN_ATOMIC *.cc cord/*.c cord/tests/*.c tests/*.c"
58 - CPPCHECK_OUT_FILTER="Z"
59 - NO_CLONE_LIBATOMIC_OPS=true
60 - env:
61 - CPPCHECK_ENABLE="-j4 --enable=all --disable=missingInclude,unusedFunction --force -U GC_PRIVATE_H -I libatomic_ops/src a*.c b*.c c*.c d*.c f*.c"
62 - CPPCHECK_OUT_FILTER="Z"
63 - env:
64 - CPPCHECK_ENABLE="-j4 --enable=all --disable=missingInclude,unusedFunction --force -U GC_PRIVATE_H -I libatomic_ops/src g*.c h*.c m*.c"
65 - CPPCHECK_OUT_FILTER="Z"
66 - env:
67 - CPPCHECK_ENABLE="-j4 --enable=all --disable=missingInclude,unusedFunction --force -U GC_PRIVATE_H -I libatomic_ops/src n*.c p*.c r*.c s*.c t*.c w*.c cord/*.c"
68 - env:
69 - CPPCHECK_ENABLE="-j4 --enable=all --disable=missingInclude,unusedFunction --force -I libatomic_ops/src *.cc cord/tests/*.c extra/m*.c extra/*.cpp tests/*.c tests/*.cc tools/*.c"
70 - CPPCHECK_OUT_FILTER="Z"
71 - arch: arm64
72 compiler: clang
73 - arch: arm64
74 compiler: gcc
75 - arch: arm64
76 compiler: clang
77 env:
78 - CFLAGS_EXTRA="-O3"
79 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --disable-shared"
80 - NO_CLONE_LIBATOMIC_OPS=true
81 - arch: arm64
82 compiler: gcc
83 env:
84 - CFLAGS_EXTRA="-O3 -D SIMULATE_LOST_SIGNALS -D TEST_DUMP_REGIONS_AND_FREELIST -D TRACE_BUF"
85 - CONF_OPTIONS="--enable-cplusplus --disable-gcj-support"
86 - NO_CLONE_LIBATOMIC_OPS=true
87 - addons:
88 apt:
89 packages:
90 - musl-tools
91 arch: arm64
92 compiler: musl-gcc
93 dist: focal
94 language: c
95 env:
96 - CFLAGS_EXTRA="-O3 -D SOFT_VDB"
97 - CONF_OPTIONS="--enable-gc-assertions"
98 - NO_CLONE_LIBATOMIC_OPS=true
99 - arch: arm64
100 compiler: gcc
101 env:
102 - CONF_OPTIONS="--disable-threads"
103 - NO_CLONE_LIBATOMIC_OPS=true
104 - addons:
105 apt:
106 packages:
107 - libatomic-ops-dev
108 arch: arm64
109 compiler: gcc
110 env:
111 - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus --disable-munmap"
112 - NO_CLONE_LIBATOMIC_OPS=true
113 - arch: arm64
114 compiler: clang
115 dist: focal
116 language: c
117 env:
118 - CFLAGS_EXTRA="-fsanitize=memory,undefined -fno-omit-frame-pointer"
119 - CONF_OPTIONS="--enable-static"
120 - NO_CLONE_LIBATOMIC_OPS=true
121 - TESTS_CUSTOM_RUN=true
122 - arch: arm64
123 compiler: clang
124 env:
125 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_SHARED_LIBS=OFF -Denable_cplusplus=ON -Denable_gc_assertions=ON"
126 - NO_CLONE_LIBATOMIC_OPS=true
127 - arch: arm64
128 compiler: gcc
129 env:
130 - MAKEFILE_NAME=Makefile.direct
131 - MAKEFILE_TARGETS="check cord/de"
132 - arch: ppc64le
133 compiler: clang
134 env:
135 - GCTEST_WITH_MPROTECT_VDB=true
136 - arch: ppc64le
137 compiler: gcc
138 env:
139 - CONF_OPTIONS="--disable-shared --disable-threads"
140 - GCTEST_WITH_MPROTECT_VDB=true
141 - NO_CLONE_LIBATOMIC_OPS=true
142 - arch: ppc64le
143 compiler: clang
144 env:
145 - CFLAGS_EXTRA="-O3 -D _FORTIFY_SOURCE=2 -D DONT_PROTECT_PTRFREE -D FORCE_MPROTECT_BEFORE_MADVISE -D GC_UNMAPPED_REGIONS_SOFT_LIMIT=120"
146 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-static"
147 - GCTEST_WITH_MPROTECT_VDB=true
148 - NO_CLONE_LIBATOMIC_OPS=true
149 - arch: ppc64le
150 compiler: gcc
151 env:
152 - CFLAGS_EXTRA="-O3 -D NO_MPROTECT_VDB"
153 - CONF_OPTIONS="--enable-cplusplus"
154 - NO_CLONE_LIBATOMIC_OPS=true
155 - arch: ppc64le
156 compiler: clang
157 env:
158 - CFLAGS_EXTRA="-D CHECK_SOFT_VDB"
159 - CONF_OPTIONS="--enable-gc-assertions --enable-static --disable-thread-local-alloc"
160 - NO_CLONE_LIBATOMIC_OPS=true
161 - arch: ppc64le
162 compiler: clang
163 dist: focal
164 language: c
165 env:
166 - CFLAGS_EXTRA="-fsanitize=memory,undefined -fno-omit-frame-pointer"
167 - CONF_OPTIONS="--disable-shared"
168 - GCTEST_WITH_MPROTECT_VDB=true
169 - NO_CLONE_LIBATOMIC_OPS=true
170 - TESTS_CUSTOM_RUN=true
171 - arch: ppc64le
172 compiler: clang
173 env:
174 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -Denable_cplusplus=ON -Denable_gc_assertions=ON"
175 - GCTEST_WITH_MPROTECT_VDB=true
176 - NO_CLONE_LIBATOMIC_OPS=true
177 - arch: ppc64le
178 compiler: clang
179 env:
180 - MAKEFILE_NAME=Makefile.direct
181 - MAKEFILE_TARGETS="check cord/de"
182 - GCTEST_WITH_MPROTECT_VDB=true
183 - arch: s390x
184 compiler: clang
185 env:
186 - GCTEST_WITH_MPROTECT_VDB=true
187 - arch: s390x
188 compiler: gcc
189 env:
190 - CONF_OPTIONS="--disable-disclaim"
191 - GCTEST_WITH_MPROTECT_VDB=true
192 - arch: s390x
193 compiler: clang
194 env:
195 - CFLAGS_EXTRA="-O3 -flto -D _FORTIFY_SOURCE=2 -D NO_RETRY_SIGNALS"
196 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-dynamic-pointer-mask"
197 - GCTEST_WITH_MPROTECT_VDB=true
198 - arch: s390x
199 compiler: gcc
200 env:
201 - CFLAGS_EXTRA="-O3 -flto=auto -D _FORTIFY_SOURCE=2 -D PREFER_MMAP_PROT_NONE"
202 - CONF_OPTIONS="--enable-cplusplus --disable-shared"
203 - GCTEST_WITH_MPROTECT_VDB=true
204 - NO_CLONE_LIBATOMIC_OPS=true
205 - arch: s390x
206 compiler: gcc
207 env:
208 - MAKEFILE_NAME=Makefile.direct
209 - MAKEFILE_TARGETS="check cord/de"
210 - GCTEST_WITH_MPROTECT_VDB=true
211 - os: freebsd
212 env:
213 - CFLAGS_EXTRA="-O3 -D _FORTIFY_SOURCE=2"
214 - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions --enable-redirect-malloc --enable-rwlock"
215 - MAKE_NPROC=8
216 - NO_CLONE_LIBATOMIC_OPS=true
217 - os: freebsd
218 env:
219 - CONF_OPTIONS="--enable-cplusplus"
220 - MAKE_NPROC=8
221 - NO_CLONE_LIBATOMIC_OPS=true
222 - os: freebsd
223 env:
224 - CONF_OPTIONS="--enable-gc-assertions --disable-shared"
225 - MAKE_NPROC=8
226 - NO_CLONE_LIBATOMIC_OPS=true
227 - os: freebsd
228 env:
229 - CMAKE_BUILD_OPTIONS="--verbose"
230 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -Denable_cplusplus=ON"
231 - NO_CLONE_LIBATOMIC_OPS=true
232 - os: freebsd
233 env:
234 - MAKEFILE_NAME=Makefile.direct
235 - MAKEFILE_TARGETS="check cord/de"
236 - MAKE_NPROC=8
237 - compiler: gcc
238 env:
239 - CFLAGS_EXTRA="-O3 -march=native -fanalyzer"
240 - CONF_OPTIONS="--enable-cplusplus"
241 - GCTEST_WITH_MPROTECT_VDB=true
242 - NO_CLONE_LIBATOMIC_OPS=true
243 - compiler: gcc
244 env:
245 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2"
246 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --disable-disclaim --enable-static"
247 - GCTEST_WITH_MPROTECT_VDB=true
248 - NO_CLONE_LIBATOMIC_OPS=true
249 - addons:
250 apt:
251 packages:
252 - gcc-multilib
253 compiler: clang
254 env:
255 - CFLAGS_EXTRA="-m32 -funsigned-char -D _FORTIFY_SOURCE=2 -D GC_GCJ_MARK_DESCR_OFFSET=32 -D NO_LONGLONG64"
256 - CONF_OPTIONS="--enable-gc-assertions"
257 - GCTEST_WITH_MPROTECT_VDB=true
258 - NO_CLONE_LIBATOMIC_OPS=true
259 - addons:
260 apt:
261 packages:
262 - gcc-multilib
263 compiler: gcc
264 env:
265 - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2"
266 - CONF_OPTIONS="--enable-gc-assertions --enable-mmap --enable-rwlock"
267 - GCTEST_WITH_MPROTECT_VDB=true
268 - compiler: gcc
269 env:
270 - CONF_OPTIONS="--disable-threads --enable-checksums --disable-munmap --enable-cplusplus"
271 - GCTEST_WITH_MPROTECT_VDB=true
272 - NO_CLONE_LIBATOMIC_OPS=true
273 - compiler: clang
274 env:
275 - CONF_OPTIONS="--disable-threads --enable-checksums --disable-handle-fork --disable-munmap --enable-gc-assertions --enable-large-config --enable-static"
276 - NO_CLONE_LIBATOMIC_OPS=true
277 - addons:
278 apt:
279 packages:
280 - libstdc++-14-dev
281 compiler: clang
282 env:
283 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D DBG_HDRS_ALL -D SHORT_DBG_HDRS"
284 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --disable-dynamic-loading"
285 - NO_CLONE_LIBATOMIC_OPS=true
286 - addons:
287 apt:
288 packages:
289 - libstdc++-14-dev
290 compiler: clang
291 env:
292 - CFLAGS_EXTRA="-D DBG_HDRS_ALL -D SHORT_DBG_HDRS -D LINT2 -D PRINT_AND_CHECK_INT_LIST"
293 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-handle-fork=manual --disable-throw-bad-alloc-library"
294 - NO_CLONE_LIBATOMIC_OPS=true
295 - compiler: gcc
296 env:
297 - CFLAGS_EXTRA="-D DEBUG_ADD_DEL_ROOTS -D DEBUG_THREADS -D GC_DEBUG -D GC_LOG_TO_FILE_ALWAYS"
298 - CONF_OPTIONS="--enable-cplusplus"
299 - compiler: gcc
300 env:
301 - CFLAGS_EXTRA="-D BSD_TIME -D DEFAULT_STACK_MAYBE_SMALL -D ENABLE_TRACE -D EMPTY_GETENV_RESULTS -D GC_ALWAYS_MULTITHREADED -D GC_NETBSD_THREADS_WORKAROUND -D CPPCHECK"
302 - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions"
303 - GCTEST_WITH_MPROTECT_VDB=true
304 - addons:
305 apt:
306 packages:
307 - libstdc++-14-dev
308 compiler: clang
309 env:
310 - CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2 -D DEFAULT_VDB -D TEST_WITH_SYSTEM_MALLOC"
311 - CONF_OPTIONS="--without-libatomic-ops --enable-cplusplus --disable-handle-fork"
312 - addons:
313 apt:
314 packages:
315 - libatomic-ops-dev
316 compiler: gcc
317 env:
318 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D GC_DISABLE_SNPRINTF -D TEST_PAGES_EXECUTABLE"
319 - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus --disable-throw-bad-alloc-library"
320 - GCTEST_WITH_MPROTECT_VDB=true
321 - NO_CLONE_LIBATOMIC_OPS=true
322 - addons:
323 apt:
324 packages:
325 - libstdc++-14-dev
326 compiler: clang
327 env:
328 - CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2 -D AO_DISABLE_GCC_ATOMICS"
329 - CONF_OPTIONS="--without-libatomic-ops --enable-munmap --enable-cplusplus --enable-static"
330 - compiler: gcc
331 env:
332 - CONF_CFLAGS="-O3 -D _FORTIFY_SOURCE=2 -D AO_USE_PTHREAD_DEFS -D RANDOM_ONE_CPU_CORE"
333 - CONF_OPTIONS="--without-libatomic-ops --enable-gc-assertions --enable-cplusplus --enable-static"
334 - compiler: clang
335 env:
336 - CONF_CFLAGS="-D AO_USE_PTHREAD_DEFS"
337 - CONF_OPTIONS="--without-libatomic-ops"
338 - addons:
339 apt:
340 packages:
341 - libatomic-ops-dev
342 compiler: gcc
343 env:
344 - CONF_CFLAGS="-O3 -D AO_USE_PTHREAD_DEFS -D RANDOM_ONE_CPU_CORE"
345 - CONF_OPTIONS="--with-libatomic-ops=yes --enable-cplusplus"
346 - CFLAGS_EXTRA="-D GC_NO_FINALIZATION"
347 - NO_CLONE_LIBATOMIC_OPS=true
348 - addons:
349 apt:
350 packages:
351 - libatomic-ops-dev
352 - libstdc++-14-dev
353 compiler: clang
354 env:
355 - CONF_CFLAGS="-O3 -D AO_USE_PTHREAD_DEFS -D RANDOM_ONE_CPU_CORE"
356 - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus --disable-shared --enable-static"
357 - NO_CLONE_LIBATOMIC_OPS=true
358 - compiler: gcc
359 env:
360 - CFLAGS_EXTRA="-funsigned-char -D _FORTIFY_SOURCE=2 -D DONT_ADD_BYTE_AT_END -D GC_TIME_LIMIT=3"
361 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
362 - GCTEST_WITH_MPROTECT_VDB=true
363 - addons:
364 apt:
365 packages:
366 - gcc-multilib
367 compiler: gcc
368 env:
369 - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2 -D MARK_BIT_PER_OBJ -D USE_CUSTOM_SPECIFIC"
370 - CONF_OPTIONS="--enable-gc-assertions"
371 - GCTEST_WITH_MPROTECT_VDB=true
372 - addons:
373 apt:
374 packages:
375 - libstdc++-14-dev
376 compiler: clang
377 env:
378 - CFLAGS_EXTRA="-D MARK_BIT_PER_OBJ"
379 - CONF_OPTIONS="--enable-cplusplus --enable-rwlock --disable-shared"
380 - GCTEST_WITH_MPROTECT_VDB=true
381 - compiler: gcc
382 env:
383 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D NO_CLOCK -D POINTER_MASK=~0xf"
384 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-handle-fork=manual"
385 - GCTEST_WITH_MPROTECT_VDB=true
386 - compiler: gcc
387 env:
388 - CFLAGS_EXTRA="-D PROC_VDB -D NO_BLACK_LISTING -D GC_NO_SYS_FAULT_H -D NO_INCREMENTAL -D DEBUG_DIRTY_BITS"
389 - CONF_OPTIONS="--enable-cplusplus --disable-docs"
390 - compiler: clang
391 env:
392 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D TEST_MANUAL_VDB"
393 - CONF_OPTIONS="--enable-gc-assertions --disable-parallel-mark"
394 - compiler: gcc
395 env:
396 - CFLAGS_EXTRA="-D TEST_MANUAL_VDB"
397 - CONF_OPTIONS="--enable-gc-assertions --disable-munmap"
398 - compiler: gcc
399 env:
400 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D FIND_LEAK -D SKIP_LEAKED_OBJECTS_PRINTING"
401 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
402 - compiler: gcc
403 env:
404 - CFLAGS_EXTRA="-D SMALL_CONFIG -D NO_GETENV"
405 - CONF_OPTIONS="--enable-cplusplus"
406 - compiler: gcc
407 env:
408 - CFLAGS_EXTRA="-std=c11 -D _FORTIFY_SOURCE=2 -D GC_NO_SIGSETJMP"
409 - CONF_OPTIONS="--disable-threads --enable-gc-assertions"
410 - NO_CLONE_LIBATOMIC_OPS=true
411 - addons:
412 apt:
413 packages:
414 - libstdc++-14-dev
415 compiler: clang
416 env:
417 - CONF_OPTIONS="--disable-thread-local-alloc --enable-cplusplus --enable-static"
418 - GCTEST_WITH_MPROTECT_VDB=true
419 - NO_CLONE_LIBATOMIC_OPS=true
420 - compiler: gcc
421 env:
422 - CFLAGS_EXTRA="-O3 -flto -D _FORTIFY_SOURCE=2 -D NO_MANUAL_VDB"
423 - CONF_OPTIONS="--disable-parallel-mark --disable-thread-local-alloc --enable-gc-assertions --enable-cplusplus"
424 - GCTEST_WITH_MPROTECT_VDB=true
425 - compiler: gcc
426 env:
427 - CONF_OPTIONS="--enable-gc-debug --enable-cplusplus"
428 - compiler: gcc
429 env:
430 - CONF_OPTIONS="--disable-gc-debug --enable-cplusplus"
431 - GCTEST_WITH_MPROTECT_VDB=true
432 - addons:
433 apt:
434 packages:
435 - libstdc++-14-dev
436 compiler: clang
437 env:
438 - CONF_OPTIONS="--enable-large-config --enable-cplusplus --disable-shared --enable-static"
439 - GCTEST_WITH_MPROTECT_VDB=true
440 - NO_CLONE_LIBATOMIC_OPS=true
441 - addons:
442 apt:
443 packages:
444 - libstdc++-14-dev
445 compiler: clang
446 env:
447 - CONF_OPTIONS="--disable-atomic-uncollectible --enable-cplusplus --enable-rwlock --disable-shared --enable-static"
448 - addons:
449 apt:
450 packages:
451 - gcc-multilib
452 compiler: gcc
453 env:
454 - CONF_OPTIONS="--enable-large-config --disable-munmap"
455 - CFLAGS_EXTRA="-m32"
456 - GCTEST_WITH_MPROTECT_VDB=true
457 - compiler: gcc
458 env:
459 - CONF_OPTIONS="--enable-large-config --enable-cplusplus --enable-gc-assertions --enable-static"
460 - CFLAGS_EXTRA="-D LINT2 -D NO_VDB_FOR_STATIC_ROOTS -D TEST_REUSE_SIG_SUSPEND"
461 - GCTEST_WITH_MPROTECT_VDB=true
462 - compiler: gcc
463 env:
464 - CONF_OPTIONS="--enable-large-config --enable-redirect-malloc --disable-threads"
465 - CFLAGS_EXTRA="-O3 -fanalyzer"
466 - NO_CLONE_LIBATOMIC_OPS=true
467 - addons:
468 apt:
469 packages:
470 - gcc-multilib
471 compiler: clang
472 env:
473 - CONF_OPTIONS="--enable-redirect-malloc --enable-static --disable-threads"
474 - CFLAGS_EXTRA="-m32"
475 - NO_CLONE_LIBATOMIC_OPS=true
476 - compiler: gcc
477 env:
478 - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2"
479 - CONF_OPTIONS="--enable-redirect-malloc --enable-gc-debug --enable-cplusplus --enable-gc-assertions"
480 - addons:
481 apt:
482 packages:
483 - libstdc++-14-dev
484 compiler: clang
485 env:
486 - CONF_OPTIONS="--disable-threads --enable-cplusplus"
487 - CFLAGS_EXTRA="-O3 -march=native"
488 - GCTEST_WITH_MPROTECT_VDB=true
489 - NO_CLONE_LIBATOMIC_OPS=true
490 - compiler: gcc
491 env:
492 - CONF_OPTIONS="--disable-static --disable-threads --enable-cplusplus"
493 - CFLAGS_EXTRA="-O3 -march=native -fanalyzer -D DONT_PROTECT_PTRFREE -D GC_PREFER_MPROTECT_VDB"
494 - NO_CLONE_LIBATOMIC_OPS=true
495 - addons:
496 apt:
497 packages:
498 - libstdc++-14-dev
499 compiler: clang
500 env:
501 - CMAKE_OPTIONS="-Denable_cplusplus=ON -Denable_gc_assertions=ON"
502 - GCTEST_WITH_MPROTECT_VDB=true
503 - NO_CLONE_LIBATOMIC_OPS=true
504 - addons:
505 apt:
506 packages:
507 - libatomic-ops-dev
508 - libstdc++-14-dev
509 compiler: clang
510 env:
511 - CMAKE_OPTIONS="-Denable_atomic_uncollectable=OFF -Denable_cplusplus=ON -Denable_munmap=OFF -Dwith_libatomic_ops=ON"
512 - GCTEST_WITH_MPROTECT_VDB=true
513 - compiler: gcc
514 env:
515 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -Denable_cplusplus=ON -Denable_large_config=ON"
516 - GCTEST_WITH_MPROTECT_VDB=true
517 - NO_CLONE_LIBATOMIC_OPS=true
518 - compiler: gcc
519 env:
520 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -Denable_gc_debug=ON -Dwithout_libatomic_ops=ON"
521 - compiler: gcc
522 env:
523 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Denable_threads=OFF"
524 - GCTEST_WITH_MPROTECT_VDB=true
525 - NO_CLONE_LIBATOMIC_OPS=true
526 - addons:
527 apt:
528 packages:
529 - libstdc++-14-dev
530 compiler: clang
531 env:
532 - CMAKE_BUILD_OPTIONS="--verbose"
533 - CMAKE_OPTIONS="-Denable_cplusplus=ON -Denable_gc_assertions=ON -Denable_large_config=ON -Denable_redirect_malloc=ON -Denable_rwlock=ON -DCFLAGS_EXTRA=-DIGNORE_FREE"
534 - NO_CLONE_LIBATOMIC_OPS=true
535 - addons:
536 apt:
537 packages:
538 - libstdc++-14-dev
539 compiler: clang
540 env:
541 - CMAKE_BUILD_OPTIONS="--verbose"
542 - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Denable_cplusplus=ON -Denable_gc_assertions=ON -Denable_large_config=ON"
543 - NO_CLONE_LIBATOMIC_OPS=true
544 - addons:
545 apt:
546 packages:
547 - libstdc++-14-dev
548 compiler: clang
549 env:
550 - MAKEFILE_NAME=Makefile.direct
551 - MAKEFILE_TARGETS="check cord/de"
552 - GCTEST_WITH_MPROTECT_VDB=true
553 - compiler: gcc
554 env:
555 - MAKEFILE_NAME=Makefile.direct
556 - MAKEFILE_TARGETS="check cord/de"
557 - GCTEST_WITH_MPROTECT_VDB=true
558 - addons:
559 apt:
560 packages:
561 - musl-tools
562 compiler: musl-gcc
563 language: c
564 env:
565 - CONF_OPTIONS="--disable-parallel-mark --enable-gc-assertions"
566 - GCTEST_WITH_MPROTECT_VDB=true
567 - compiler: clang
568 dist: xenial
569 env:
570 - CFLAGS_EXTRA="-fsanitize=address -fno-common -fno-omit-frame-pointer"
571 - CONF_OPTIONS="--enable-cplusplus --enable-static"
572 - NO_CLONE_LIBATOMIC_OPS=true
573 - TESTS_CUSTOM_RUN=true
574 - addons:
575 apt:
576 packages:
577 - gcc-5
578 sources:
579 - ubuntu-toolchain-r-test
580 compiler: gcc-5
581 dist: xenial
582 language: c
583 env:
584 - CFLAGS_EXTRA="-fsanitize=address -O0"
585 - CONF_OPTIONS="--enable-gc-assertions"
586 - LDFLAGS="-fuse-ld=gold"
587 - addons:
588 apt:
589 packages:
590 - g++-multilib
591 - gcc-multilib
592 dist: xenial
593 env:
594 - CFLAGS_EXTRA="-fsanitize=address -m32 -O0"
595 - CONF_OPTIONS="--disable-shared --enable-cplusplus"
596 - NO_CLONE_LIBATOMIC_OPS=true
597 - addons:
598 apt:
599 packages:
600 - clang-12
601 compiler: clang-12
602 dist: focal
603 language: c
604 env:
605 - CFLAGS_EXTRA="-fsanitize=memory -fno-omit-frame-pointer -std=gnu11"
606 - CONF_OPTIONS="--enable-static"
607 - GCTEST_WITH_MPROTECT_VDB=true
608 - TESTS_CUSTOM_RUN=true
609 - NO_CLONE_LIBATOMIC_OPS=true
610 - compiler: clang
611 dist: jammy
612 env:
613 - CFLAGS_EXTRA="-fsanitize=undefined -fno-common -fno-omit-frame-pointer"
614 - CONF_OPTIONS="--enable-cplusplus --enable-static"
615 - GCTEST_WITH_MPROTECT_VDB=true
616 - TESTS_CUSTOM_RUN=true
617 - NO_CLONE_LIBATOMIC_OPS=true
618 - addons:
619 apt:
620 packages:
621 - clang-12
622 compiler: clang-12
623 dist: focal
624 language: c
625 env:
626 - CFLAGS_EXTRA="-O3 -fsanitize=thread -fno-omit-frame-pointer"
627 - CONF_OPTIONS="--enable-static"
628 - NO_CLONE_LIBATOMIC_OPS=true
629 - compiler: clang
630 dist: jammy
631 env:
632 - CFLAGS_EXTRA="-fsanitize=thread -D NO_INCREMENTAL -fno-omit-frame-pointer -D TEST_FORK_WITHOUT_ATFORK"
633 - CONF_OPTIONS="--enable-gc-assertions --enable-gc-debug --enable-handle-fork=manual --enable-large-config --without-libatomic-ops"
634 - compiler: clang
635 dist: jammy
636 env:
637 - CFLAGS_EXTRA="-fsanitize=thread -D NO_INCREMENTAL -fno-omit-frame-pointer -D NTHREADS=0"
638 - CONF_OPTIONS="--disable-parallel-mark --disable-thread-local-alloc --disable-shared --enable-gc-assertions --without-libatomic-ops"
639 - addons:
640 apt:
641 packages:
642 - libstdc++-14-dev
643 compiler: clang
644 env:
645 - CFLAGS_EXTRA="-O3 -march=native -D NTHREADS=10"
646 - CONF_OPTIONS="--enable-cplusplus --enable-static --enable-single-obj-compilation"
647 - GCTEST_WITH_MPROTECT_VDB=true
648 - NO_CLONE_LIBATOMIC_OPS=true
649 - addons:
650 apt:
651 packages:
652 - gcc-multilib
653 compiler: clang
654 env:
655 - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2 -D GC_DISABLE_INCREMENTAL -std=gnu11"
656 - CONF_OPTIONS="--enable-gc-assertions --enable-gc-debug"
657 - NO_CLONE_LIBATOMIC_OPS=true
658 - compiler: gcc
659 env:
660 - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions --enable-static"
661 - CFLAGS_EXTRA="-D VERY_SMALL_CONFIG"
662 - NO_CLONE_LIBATOMIC_OPS=true
663 - addons:
664 apt:
665 packages:
666 - gcc-multilib
667 compiler: gcc
668 env:
669 - CFLAGS_EXTRA="-m32 -O3 -std=gnu11"
670 - CONF_OPTIONS="--disable-shared --enable-static --enable-single-obj-compilation"
671 - GCTEST_WITH_MPROTECT_VDB=true
672 - NO_CLONE_LIBATOMIC_OPS=true
673 - addons:
674 apt:
675 packages:
676 - gcc-8
677 - gcc-8-multilib
678 - gcc-multilib
679 compiler: gcc-8
680 dist: focal
681 language: c
682 env:
683 - CFLAGS_EXTRA="-mx32 -march=native -D _FORTIFY_SOURCE=2"
684 - CONF_OPTIONS="--enable-large-config --enable-gc-assertions"
685 - GCTEST_WITH_MPROTECT_VDB=true
686 - NO_CLONE_LIBATOMIC_OPS=true
687 - addons:
688 apt:
689 packages:
690 - libstdc++-14-dev
691 compiler: clang
692 env:
693 - CFLAGS_EXTRA="-x c++"
694 - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-gc-debug --disable-shared"
695 - MAKEFILE_TARGETS="all"
696 - NO_CLONE_LIBATOMIC_OPS=true
697 - compiler: gcc
698 env:
699 - CC_FOR_CHECK=g++
700 - CONF_OPTIONS="--enable-gc-assertions"
701 - MAKEFILE_TARGETS="all"
702 - MAKEFILE_TARGETS_CHECK="check"
703 - GCTEST_WITH_MPROTECT_VDB=true
704 - NO_CLONE_LIBATOMIC_OPS=true
705 - compiler: gcc
706 env:
707 - CC_FOR_CHECK=g++
708 - CFLAGS_EXTRA="-std=c++20"
709 - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions --enable-gc-debug"
710 - MAKEFILE_TARGETS="clean"
711 - MAKEFILE_TARGETS_CHECK="check"
712 - NO_CLONE_LIBATOMIC_OPS=true
713 - compiler: clang
714 env:
715 - CFLAGS_EXTRA="-O3 -Wall -Wextra -Werror -x c++"
716 - MAKEFILE_NAME=Makefile.direct
717 - MAKEFILE_TARGETS="cords"
718 - compiler: gcc
719 env:
720 - CC_FOR_CHECK=g++
721 - CFLAGS_EXTRA="-O3 -Wall -Wextra -Werror -D TEST_MANUAL_VDB"
722 - MAKEFILE_NAME=Makefile.direct
723 - MAKEFILE_TARGETS="cords"
724 - MAKEFILE_TARGETS_CHECK="cord/de check"
725 - addons:
726 apt:
727 packages:
728 - g++-mingw-w64
729 - gcc-mingw-w64
730 compiler: x86_64-w64-mingw32-gcc
731 language: c
732 env:
733 - CXX=x86_64-w64-mingw32-g++
734 - CONF_OPTIONS="--host=x86_64-w64-mingw32 --enable-cplusplus --disable-shared"
735 - MAKEFILE_TARGETS="all"
736 - addons:
737 apt:
738 packages:
739 - gcc-mingw-w64
740 compiler: x86_64-w64-mingw32-gcc
741 language: c
742 env:
743 - CONF_OPTIONS="--host=x86_64-w64-mingw32 --enable-gc-assertions --enable-gc-debug --enable-threads=pthreads"
744 - MAKEFILE_TARGETS="all"
745 - addons:
746 apt:
747 packages:
748 - gcc-mingw-w64
749 compiler: i686-w64-mingw32-gcc
750 language: c
751 env:
752 - CONF_OPTIONS="--host=i686-w64-mingw32"
753 - MAKEFILE_TARGETS="all"
754 - CFLAGS_EXTRA="-fno-omit-frame-pointer"
755 - env:
756 - MAKEFILE_TARGETS="distcheck"
757 - AUTOCONF_VER=2.72
758 - AUTOMAKE_VER=1.18.1
759 - LIBTOOL_VER=2.5.4
760 - M4_VER=1.4.20
761 - NO_CLONE_LIBATOMIC_OPS=true
762 - if: type != pull_request
763 addons:
764 coverity_scan:
765 project:
766 name: bdwgc/bdwgc
767 version: 8.3.0
768 notification_email: ivmai@mail.ru
769 branch_pattern: master
770 build_command_prepend: "./configure --enable-cplusplus --disable-shared --enable-single-obj-compilation"
771 build_command: make -j check CFLAGS_EXTRA=-DLINT2
772 env:
773 - COVERITY_SCAN_BRANCH=1
774
775 before_install:
776 - if [[ "$CPPCHECK_ENABLE" != "" ]]; then
777 CPPCHECK_VER=2.14.2;
778 git clone --depth=3 https://github.com/danmar/cppcheck.git
779 ~/cppcheck -b $CPPCHECK_VER;
780 make --directory ~/cppcheck -j8 CXXFLAGS="-O3 -march=native -D NDEBUG";
781 fi
782 - if [[ "$AUTOCONF_VER" != "" || "$AUTOMAKE_VER" != ""
783 || "$LIBTOOL_VER" != "" || "$M4_VER" != "" ]]; then
784 GNUTOOLS_ROOT=`pwd`/../gnu-tools;
785 export PATH=$GNUTOOLS_ROOT/bin:$PATH;
786 GNU_DOWNLOAD_SITE=https://ftp.gnu.org/gnu;
787 fi
788 - if [[ "$M4_VER" != "" ]]; then
789 M4_XZ_URL=$GNU_DOWNLOAD_SITE/m4/m4-$M4_VER.tar.xz;
790 wget -O - $M4_XZ_URL | tar xf - --xz --directory ~;
791 (cd ~/m4-$M4_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install);
792 fi
793 - if [[ "$LIBTOOL_VER" != "" ]]; then
794 LIBTOOL_XZ_URL=$GNU_DOWNLOAD_SITE/libtool/libtool-$LIBTOOL_VER.tar.xz;
795 wget -O - $LIBTOOL_XZ_URL | tar xf - --xz --directory ~;
796 (cd ~/libtool-$LIBTOOL_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install);
797 fi
798 - if [[ "$AUTOCONF_VER" != "" ]]; then
799 AUTOCONF_XZ_URL=$GNU_DOWNLOAD_SITE/autoconf/autoconf-$AUTOCONF_VER.tar.xz;
800 wget -O - $AUTOCONF_XZ_URL | tar xf - --xz --directory ~;
801 (cd ~/autoconf-$AUTOCONF_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install);
802 fi
803 - if [[ "$AUTOMAKE_VER" != "" ]]; then
804 AUTOMAKE_XZ_URL=$GNU_DOWNLOAD_SITE/automake/automake-$AUTOMAKE_VER.tar.xz;
805 wget -O - $AUTOMAKE_XZ_URL | tar xf - --xz --directory ~;
806 (cd ~/automake-$AUTOMAKE_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install);
807 fi
808 - if [[ "$MAKEFILE_TARGETS" == *"dist"* ]]; then
809 autoconf --version;
810 automake --version;
811 m4 --version;
812 libtool --version || true;
813 fi
814 - if [[ "$CMAKE_OPTIONS" != "" ]]; then
815 cmake --version;
816 fi
817 - if [[ "$CONF_CFLAGS" == "" ]]; then CONF_CFLAGS="-g -O2"; fi
818 - if [[ "$MAKEFILE_NAME" == "" ]]; then MAKEFILE_NAME=Makefile; fi
819 - if [[ "$MAKEFILE_TARGETS" == "" ]]; then MAKEFILE_TARGETS="check"; fi
820
821 install:
822 - if [[ "$NO_CLONE_LIBATOMIC_OPS" != true ]]; then
823 git clone --depth=50 https://github.com/bdwgc/libatomic_ops.git;
824 fi
825 - if [[ "$CMAKE_OPTIONS" == "" ]]; then
826 ./autogen.sh;
827 fi
828 - if [[ "$GNUTOOLS_ROOT" != "" ]]; then mv $GNUTOOLS_ROOT $GNUTOOLS_ROOT-x; fi
829 - if [[ "$REPORT_COVERAGE" == true ]]; then gem install coveralls-lcov; fi
830
831 script:
832 - if [[ "$CSA_CHECK" != true && "$CMAKE_OPTIONS" == ""
833 && "$CPPCHECK_ENABLE" == "" && "$MAKEFILE_NAME" != "Makefile.direct"
834 && "$COVERITY_SCAN_BRANCH" != 1 ]]; then
835 CFLAGS="$CONF_CFLAGS" ./configure $CONF_OPTIONS --enable-werror &&
836 cat include/config.h;
837 fi
838 - if [[ "$CSA_CHECK" != true && "$CMAKE_OPTIONS" == ""
839 && "$CPPCHECK_ENABLE" == "" && "$COVERITY_SCAN_BRANCH" != 1 ]]; then
840 make -j$MAKE_NPROC -f $MAKEFILE_NAME $MAKEFILE_TARGETS
841 CFLAGS_EXTRA="$CFLAGS_EXTRA" LDFLAGS="$LDFLAGS";
842 fi
843 - if [[ "$CMAKE_OPTIONS" != "" ]]; then
844 cmake $CMAKE_OPTIONS -Dbuild_tests=ON -Denable_werror=ON -Werror=dev .
845 && cmake --build . $CMAKE_BUILD_OPTIONS --parallel;
846 fi
847 - if [[ "$CMAKE_OPTIONS" != "" ]]; then
848 ctest --verbose --parallel 4;
849 fi
850 - if [[ "$CC_FOR_CHECK" != "" ]]; then
851 make -f $MAKEFILE_NAME $MAKEFILE_TARGETS_CHECK CC=$CC_FOR_CHECK
852 CFLAGS_EXTRA="$CFLAGS_EXTRA";
853 fi
854 - if [ -f cordtest.log ]; then cat cordtest.log; fi
855 - if [ -f disclaim_bench.log ]; then cat disclaim_bench.log; fi
856 - if [ -f disclaimtest.log ]; then cat disclaimtest.log; fi
857 - if [ -f gctest.log ]; then cat gctest.log; fi
858 - if [ -f threadkeytest.log ]; then cat threadkeytest.log; fi
859 - if [ -f threadleaktest.log ]; then cat threadleaktest.log; fi
860 - if [ -f weakmaptest.log ]; then cat weakmaptest.log; fi
861 - if [[ "$CSA_CHECK" == true ]]; then
862 set -o pipefail; ${CC} --analyze -Xanalyzer -analyzer-output=text -Werror
863 -I include -I libatomic_ops/src $CFLAGS_EXTRA
864 *.c *.cc cord/*.c cord/tests/cordtest.c cord/tests/de.c extra/*.c
865 tests/*.c tests/*.cc tools/*.c 2>&1 | tee clang-analyzer-output.log;
866 if [ -s clang-analyzer-output.log ]; then exit 1; fi;
867 fi
868 - if [[ "$CPPCHECK_ENABLE" != "" ]]; then
869 if [[ "$CPPCHECK_OUT_FILTER" == "" ]]; then CPPCHECK_OUT_FILTER="c "; fi;
870 set -o pipefail; ~/cppcheck/cppcheck --error-exitcode=2 -D CPPCHECK
871 -I include --check-level=exhaustive $CPPCHECK_ENABLE |
872 grep --line-buffered "$CPPCHECK_OUT_FILTER";
873 fi
874 - if [[ "$TESTS_CUSTOM_RUN" == true ]]; then
875 ASAN_OPTIONS="detect_leaks=1" UBSAN_OPTIONS="halt_on_error=1"
876 make check-without-test-driver;
877 fi
878 - if [[ "$GCTEST_WITH_MPROTECT_VDB" == true ]]; then
879 GC_USE_GETWRITEWATCH=0 ./gctest;
880 fi
881
882 after_success:
883 - if [[ "$REPORT_COVERAGE" == true ]]; then
884 lcov --capture --base-directory . --directory . --output-file coverage.info &&
885 lcov --remove coverage.info '/usr/*' 'cord/tests/*' 'tests/*' --output-file coverage.info &&
886 lcov --list coverage.info &&
887 coveralls-lcov --repo-token=${COVERALLS_REPO_TOKEN} coverage.info;
888 fi
889
890 before_deploy:
891 - yes | gem update --system --force
892 - gem install bundler
893 - gem install uri
894 - gem install logger
895
896 deploy:
897 provider: releases
898 edge: true
899 file: gc-*.tar.gz
900 file_glob: true
901 on:
902 condition: $MAKEFILE_TARGETS = distcheck
903 repo: bdwgc/bdwgc
904 tags: true
905