language: cpp os: linux jobs: include: - compiler: clang env: - CONF_OPTIONS="--enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CONF_OPTIONS="--enable-cplusplus" - os: osx env: - CONF_OPTIONS="--enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - env: - COVERITY_SCAN_BRANCH=1 addons: coverity_scan: project: name: ivmai/bdwgc version: 8.3.0 notification_email: ivmai@mail.ru branch_pattern: master build_command_prepend: "./configure --enable-cplusplus --disable-shared --enable-single-obj-compilation" build_command: make -j check CFLAGS_EXTRA=-DLINT2 - addons: apt: packages: - lcov compiler: gcc env: - CONF_OPTIONS="--enable-gcov --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions" - CFLAGS_EXTRA="-D USE_CUSTOM_SPECIFIC" - CC_FOR_CHECK=g++ - MAKEFILE_TARGETS="all" - MAKEFILE_TARGETS_CHECK="check" - NO_CLONE_LIBATOMIC_OPS=true - REPORT_COVERAGE=true - TESTS_CUSTOM_RUN=true - env: - MAKEFILE_TARGETS="dist" - os: osx env: - CSA_CHECK=true - CFLAGS_EXTRA="-m32" - compiler: clang dist: jammy language: c env: - CSA_CHECK=true - 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" - env: - CPPCHECK_ENABLE="--enable=unusedFunction -I libatomic_ops/src extra/gc.c tests/*.c" - env: - CPPCHECK_ENABLE="--enable=unusedFunction --force -D GC_BUILTIN_ATOMIC *.cc cord/*.c cord/tests/*.c tests/*.c tests/*.cc" - CPPCHECK_OUT_FILTER="Z" - NO_CLONE_LIBATOMIC_OPS=true - env: - CPPCHECK_ENABLE="-j4 --enable=information,performance,portability,style,warning --force -U GC_PRIVATE_H -I libatomic_ops/src *.c" - env: - CPPCHECK_ENABLE="-j4 --enable=information,performance,portability,style,warning --force -U GC_PRIVATE_H -I libatomic_ops/src *.cc cord/*.c cord/tests/*.c extra/AmigaOS.c extra/MacOS.c extra/msvc_dbg.c extra/symbian.cpp tests/*.c tests/*.cc tools/*.c" - arch: arm64 compiler: clang - arch: arm64 compiler: gcc - addons: apt: packages: - clang-12 sources: - ubuntu-toolchain-r-test arch: arm64 compiler: clang-12 dist: focal env: - CC=clang-12 - CXX=clang++-12 - CFLAGS_EXTRA="-O3" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --disable-shared" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - g++-11 sources: - ubuntu-toolchain-r-test arch: arm64 compiler: g++-11 dist: bionic env: - CC=gcc-11 - CXX=g++-11 - CFLAGS_EXTRA="-O3 -D SIMULATE_LOST_SIGNALS -D TRACE_BUF" - CONF_OPTIONS="--enable-cplusplus --disable-gcj-support" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - musl-tools arch: arm64 compiler: musl-gcc language: c env: - CFLAGS_EXTRA="-O3 -D SOFT_VDB" - CONF_OPTIONS="--enable-gc-assertions" - NO_CLONE_LIBATOMIC_OPS=true - arch: arm64 compiler: gcc env: - CONF_OPTIONS="--disable-threads" - NO_CLONE_LIBATOMIC_OPS=true - arch: arm64 addons: apt: packages: - libatomic-ops-dev compiler: gcc env: - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus --disable-munmap" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - clang-12 sources: - ubuntu-toolchain-r-test arch: arm64 compiler: clang-12 dist: focal language: c env: - CFLAGS_EXTRA="-fsanitize=memory,undefined -fno-omit-frame-pointer" - CONF_OPTIONS="--enable-static" - NO_CLONE_LIBATOMIC_OPS=true - TESTS_CUSTOM_RUN=true - arch: arm64 compiler: clang env: - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=MinSizeRel -Dbuild_tests=ON -DBUILD_SHARED_LIBS=OFF -Denable_cplusplus=ON -Denable_gc_assertions=ON" - NO_CLONE_LIBATOMIC_OPS=true - arch: arm64 compiler: gcc env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - arch: ppc64le compiler: clang - arch: ppc64le compiler: gcc env: - CONF_OPTIONS="--disable-disclaim" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - clang-12 sources: - ubuntu-toolchain-r-test arch: ppc64le compiler: clang-12 dist: focal env: - CC=clang-12 - CXX=clang++-12 - CFLAGS_EXTRA="-O3 -D _FORTIFY_SOURCE=2 -D FORCE_MPROTECT_BEFORE_MADVISE" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - g++-11 sources: - ubuntu-toolchain-r-test arch: ppc64le compiler: g++-11 dist: bionic env: - CC=gcc-11 - CXX=g++-11 - CFLAGS_EXTRA="-O3 -D NO_MPROTECT_VDB" - CONF_OPTIONS="--enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - clang-12 sources: - ubuntu-toolchain-r-test arch: ppc64le compiler: clang-12 dist: focal language: c env: - CFLAGS_EXTRA="-fsanitize=memory,undefined -fno-omit-frame-pointer" - CONF_OPTIONS="--disable-shared" - NO_CLONE_LIBATOMIC_OPS=true - TESTS_CUSTOM_RUN=true - arch: ppc64le compiler: clang env: - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -Dbuild_tests=ON -Denable_cplusplus=ON -Denable_gc_assertions=ON" - NO_CLONE_LIBATOMIC_OPS=true - arch: ppc64le compiler: clang env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - arch: s390x compiler: clang - arch: s390x compiler: gcc - addons: apt: packages: - clang-12 sources: - ubuntu-toolchain-r-test arch: s390x compiler: clang-12 dist: focal env: - CC=clang-12 - CXX=clang++-12 - CFLAGS_EXTRA="-O3 -flto -D _FORTIFY_SOURCE=2 -D NO_RETRY_SIGNALS" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus" - addons: apt: packages: - g++-10 sources: - ubuntu-toolchain-r-test arch: s390x compiler: g++-10 dist: focal env: - CC=gcc-10 - CXX=g++-10 - CFLAGS_EXTRA="-O3 -flto=auto -D _FORTIFY_SOURCE=2 -D PREFER_MMAP_PROT_NONE" - CONF_OPTIONS="--enable-cplusplus --disable-shared" - NO_CLONE_LIBATOMIC_OPS=true - arch: s390x compiler: gcc env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - os: freebsd compiler: gcc env: - CFLAGS_EXTRA="-O3 -D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions" - MAKE_NPROC=8 - NO_CLONE_LIBATOMIC_OPS=true - os: freebsd env: - CONF_OPTIONS="--enable-cplusplus" - MAKE_NPROC=8 - NO_CLONE_LIBATOMIC_OPS=true - os: freebsd env: - CONF_OPTIONS="--enable-gc-assertions --disable-shared" - MAKE_NPROC=8 - NO_CLONE_LIBATOMIC_OPS=true - os: freebsd env: - CMAKE_BUILD_OPTIONS="--verbose" - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -Denable_cplusplus=ON" - NO_CLONE_LIBATOMIC_OPS=true - os: freebsd compiler: clang env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - MAKE_NPROC=8 - compiler: gcc dist: jammy env: - CFLAGS_EXTRA="-O3 -march=native" - CONF_OPTIONS="--enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-multilib compiler: clang env: - CFLAGS_EXTRA="-m32 -funsigned-char -D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-gc-assertions" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-multilib compiler: gcc dist: jammy env: - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-gc-assertions --enable-mmap" - os: osx env: - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CONF_OPTIONS="--disable-threads --enable-checksums --disable-munmap --enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D DBG_HDRS_ALL -D SHORT_DBG_HDRS" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CFLAGS_EXTRA="-D DBG_HDRS_ALL -D SHORT_DBG_HDRS -D LINT2" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-handle-fork=manual --disable-throw-bad-alloc-library" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CFLAGS_EXTRA="-D DEBUG_ADD_DEL_ROOTS -D DEBUG_THREADS -D GC_DEBUG -D GC_LOG_TO_FILE_ALWAYS" - CONF_OPTIONS="--enable-cplusplus" - compiler: gcc env: - 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" - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions" - compiler: clang env: - CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2 -D DEFAULT_VDB -D TEST_WITH_SYSTEM_MALLOC" - CONF_OPTIONS="--without-libatomic-ops --enable-cplusplus --disable-handle-fork" - addons: apt: packages: - libatomic-ops-dev compiler: gcc dist: jammy env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D TEST_PAGES_EXECUTABLE" - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus --disable-throw-bad-alloc-library" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2 -D AO_DISABLE_GCC_ATOMICS" - CONF_OPTIONS="--without-libatomic-ops --enable-munmap --enable-cplusplus --enable-static" - compiler: gcc env: - CONF_CFLAGS="-O3 -D _FORTIFY_SOURCE=2 -D AO_USE_PTHREAD_DEFS -D RANDOM_ONE_CPU_CORE" - CONF_OPTIONS="--without-libatomic-ops --enable-gc-assertions --enable-cplusplus --enable-static" - compiler: clang env: - CONF_CFLAGS="-D AO_USE_PTHREAD_DEFS" - CONF_OPTIONS="--without-libatomic-ops" - addons: apt: packages: - libatomic-ops-dev compiler: gcc env: - CONF_CFLAGS="-O3 -D AO_USE_PTHREAD_DEFS -D RANDOM_ONE_CPU_CORE" - CONF_OPTIONS="--with-libatomic-ops=yes --enable-cplusplus" - CFLAGS_EXTRA="-D GC_NO_FINALIZATION" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - libatomic-ops-dev compiler: clang env: - CONF_CFLAGS="-O3 -D AO_USE_PTHREAD_DEFS -D RANDOM_ONE_CPU_CORE" - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus --disable-shared --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CFLAGS_EXTRA="-funsigned-char -D _FORTIFY_SOURCE=2 -D DONT_ADD_BYTE_AT_END -D GC_TIME_LIMIT=3" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus" - addons: apt: packages: - gcc-multilib compiler: gcc env: - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2 -D MARK_BIT_PER_OBJ -D USE_CUSTOM_SPECIFIC" - CONF_OPTIONS="--enable-gc-assertions" - compiler: clang env: - CFLAGS_EXTRA="-D MARK_BIT_PER_OBJ" - CONF_OPTIONS="--enable-cplusplus" - compiler: gcc env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D NO_CLOCK -D POINTER_MASK=~0xf" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-handle-fork=manual" - compiler: gcc env: - CFLAGS_EXTRA="-D PROC_VDB -D GC_NO_SYS_FAULT_H -D NO_INCREMENTAL -D DEBUG_DIRTY_BITS" - CONF_OPTIONS="--enable-cplusplus --disable-docs" - compiler: clang env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D TEST_MANUAL_VDB" - CONF_OPTIONS="--enable-gc-assertions --disable-parallel-mark" - compiler: gcc env: - CFLAGS_EXTRA="-D TEST_MANUAL_VDB" - CONF_OPTIONS="--enable-gc-assertions --disable-munmap" - compiler: gcc dist: jammy env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2 -D FIND_LEAK -D SKIP_LEAKED_OBJECTS_PRINTING" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus" - compiler: gcc env: - CFLAGS_EXTRA="-D SMALL_CONFIG -D NO_GETENV" - CONF_OPTIONS="--enable-cplusplus" - compiler: gcc env: - CFLAGS_EXTRA="-std=c11 -D _FORTIFY_SOURCE=2 -D GC_NO_SIGSETJMP" - CONF_OPTIONS="--disable-threads --enable-gc-assertions" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang env: - CONF_OPTIONS="--disable-thread-local-alloc --enable-cplusplus --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CFLAGS_EXTRA="-O3 -flto -D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--disable-parallel-mark --disable-thread-local-alloc --enable-gc-assertions --enable-cplusplus" - compiler: gcc env: - CONF_OPTIONS="--enable-gc-debug --enable-cplusplus" - compiler: gcc env: - CONF_OPTIONS="--disable-gc-debug --enable-cplusplus" - compiler: clang env: - CONF_OPTIONS="--enable-large-config --enable-cplusplus --disable-shared --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CFLAGS_EXTRA="-D TEST_HANDLE_FORK" - CONF_OPTIONS="--enable-cplusplus --disable-shared --enable-static" - os: osx env: - CONF_OPTIONS="--enable-large-config --enable-cplusplus --disable-handle-fork" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-multilib compiler: gcc env: - CONF_OPTIONS="--enable-large-config --disable-munmap" - CFLAGS_EXTRA="-m32" - compiler: gcc env: - CONF_OPTIONS="--enable-large-config --enable-cplusplus --enable-gc-assertions --enable-static" - CFLAGS_EXTRA="-D LINT2 -D NO_VDB_FOR_STATIC_ROOTS -D TEST_REUSE_SIG_SUSPEND" - compiler: gcc env: - CONF_OPTIONS="--enable-large-config --enable-redirect-malloc --disable-threads" - CFLAGS_EXTRA="-O3" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-multilib compiler: clang dist: jammy env: - CONF_OPTIONS="--enable-redirect-malloc --enable-static --disable-threads" - CFLAGS_EXTRA="-m32" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CONF_OPTIONS="--enable-redirect-malloc --enable-cplusplus --enable-static --disable-threads" - CFLAGS_EXTRA="-m32" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CFLAGS_EXTRA="-D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-redirect-malloc --enable-gc-debug --enable-cplusplus --enable-gc-assertions" - compiler: clang env: - CONF_OPTIONS="--disable-threads --enable-cplusplus" - CFLAGS_EXTRA="-O3 -march=native" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CONF_OPTIONS="--disable-static --disable-threads --enable-cplusplus" - CFLAGS_EXTRA="-O3 -march=native -D GC_PREFER_MPROTECT_VDB" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CONF_OPTIONS="--disable-threads --enable-cplusplus" - CFLAGS_EXTRA="-O3 -march=native" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CMAKE_OPTIONS="-Denable_cplusplus=ON -Denable_gc_assertions=ON" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - libatomic-ops-dev compiler: clang env: - CMAKE_OPTIONS="-Denable_cplusplus=ON -Denable_munmap=OFF -Dwith_libatomic_ops=ON" - compiler: gcc env: - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -Denable_cplusplus=ON -Denable_large_config=ON" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc env: - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -Denable_gc_debug=ON -Dwithout_libatomic_ops=ON" - compiler: gcc dist: jammy env: - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Denable_threads=OFF" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CMAKE_BUILD_OPTIONS="--verbose" - CMAKE_OPTIONS="-Denable_cplusplus=ON" - NO_CLONE_LIBATOMIC_OPS=true - os: osx env: - CMAKE_BUILD_OPTIONS="--verbose" - CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -Denable_cplusplus=ON -Denable_gc_assertions=ON -Denable_large_config=ON" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - compiler: gcc dist: jammy env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - os: osx env: - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="check cord/de" - addons: apt: packages: - musl-tools compiler: musl-gcc dist: jammy language: c env: - CONF_OPTIONS="--disable-parallel-mark --enable-gc-assertions" - compiler: clang env: - CFLAGS_EXTRA="-fsanitize=address -fno-common -fno-omit-frame-pointer" - CONF_OPTIONS="--enable-cplusplus --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - TESTS_CUSTOM_RUN=true - addons: apt: packages: - gcc-5 sources: - ubuntu-toolchain-r-test compiler: gcc-5 language: c env: - CFLAGS_EXTRA="-fsanitize=address -O0" - CONF_OPTIONS="--enable-gc-assertions" - LDFLAGS="-fuse-ld=gold" - os: osx env: - CFLAGS_EXTRA="-fsanitize=address -m32 -fno-omit-frame-pointer" - CONF_OPTIONS="--disable-shared --enable-cplusplus" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy language: c env: - CFLAGS_EXTRA="-fsanitize=memory -fno-omit-frame-pointer -std=gnu11" - CONF_OPTIONS="--enable-static" - TESTS_CUSTOM_RUN=true - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CFLAGS_EXTRA="-fsanitize=undefined -fno-common -fno-omit-frame-pointer" - TESTS_CUSTOM_RUN=true - CONF_OPTIONS="--enable-cplusplus --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc dist: jammy env: - CFLAGS_EXTRA="-fsanitize=thread -fno-omit-frame-pointer" - CONF_OPTIONS="--enable-gc-assertions" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - clang-12 sources: - ubuntu-toolchain-r-test compiler: clang-12 dist: focal language: c env: - CFLAGS_EXTRA="-O3 -fsanitize=thread -fno-omit-frame-pointer" - CONF_OPTIONS="--enable-static" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CFLAGS_EXTRA="-fsanitize=thread -D NO_INCREMENTAL -fno-omit-frame-pointer -D TEST_FORK_WITHOUT_ATFORK" - CONF_OPTIONS="--enable-gc-assertions --enable-handle-fork=manual" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CFLAGS_EXTRA="-fsanitize=thread -D NO_INCREMENTAL -fno-omit-frame-pointer -D TEST_FORK_WITHOUT_ATFORK" - CONF_OPTIONS="--enable-gc-assertions --enable-gc-debug --enable-handle-fork=manual --enable-large-config --without-libatomic-ops" - compiler: clang env: - CFLAGS_EXTRA="-fsanitize=thread -fno-omit-frame-pointer -D NTHREADS=10" - CONF_OPTIONS="--disable-parallel-mark" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CFLAGS_EXTRA="-fsanitize=thread -D NO_INCREMENTAL -fno-omit-frame-pointer -D NTHREADS=0" - CONF_OPTIONS="--disable-parallel-mark --disable-thread-local-alloc --disable-shared --enable-gc-assertions --without-libatomic-ops" - compiler: clang env: - CFLAGS_EXTRA="-O3 -march=native" - CONF_OPTIONS="--enable-cplusplus --enable-static --enable-single-obj-compilation" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-multilib compiler: clang dist: jammy env: - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2 -D GC_DISABLE_INCREMENTAL -std=gnu11" - CONF_OPTIONS="--enable-gc-assertions --enable-gc-debug" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-8 - g++-8 sources: - ubuntu-toolchain-r-test compiler: gcc-8 language: c env: - CXX=g++-8 - CONF_OPTIONS="--enable-cplusplus --enable-gc-assertions --enable-static" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-8 - gcc-8-multilib - gcc-multilib sources: - ubuntu-toolchain-r-test compiler: gcc-8 language: c env: - CFLAGS_EXTRA="-m32 -O3 -std=gnu11" - CONF_OPTIONS="--disable-shared --enable-static --enable-single-obj-compilation" - NO_CLONE_LIBATOMIC_OPS=true - addons: apt: packages: - gcc-8 - gcc-8-multilib - gcc-multilib sources: - ubuntu-toolchain-r-test compiler: gcc-8 language: c env: - CFLAGS_EXTRA="-mx32 -march=native -D _FORTIFY_SOURCE=2" - CONF_OPTIONS="--enable-large-config --enable-gc-assertions" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CFLAGS_EXTRA="-x c++" - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus --enable-gc-debug --disable-shared" - MAKEFILE_TARGETS="all" - NO_CLONE_LIBATOMIC_OPS=true - compiler: gcc dist: jammy env: - CC_FOR_CHECK=g++ - CONF_OPTIONS="--enable-gc-assertions" - MAKEFILE_TARGETS="all" - MAKEFILE_TARGETS_CHECK="check" - NO_CLONE_LIBATOMIC_OPS=true - compiler: clang dist: jammy env: - CFLAGS_EXTRA="-O3 -Wall -Wextra -Werror -x c++" - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="cords" - compiler: gcc dist: jammy env: - CC_FOR_CHECK=g++ - CFLAGS_EXTRA="-O3 -Wall -Wextra -Werror -D TEST_MANUAL_VDB" - MAKEFILE_NAME=Makefile.direct - MAKEFILE_TARGETS="cords" - MAKEFILE_TARGETS_CHECK="cord/de check" - addons: apt: packages: - g++-mingw-w64 - gcc-mingw-w64 compiler: x86_64-w64-mingw32-gcc dist: jammy language: c env: - CXX=x86_64-w64-mingw32-g++ - CONF_OPTIONS="--host=x86_64-w64-mingw32 --enable-cplusplus --disable-shared" - MAKEFILE_TARGETS="all" - addons: apt: packages: - gcc-mingw-w64 compiler: x86_64-w64-mingw32-gcc dist: jammy language: c env: - CONF_OPTIONS="--host=x86_64-w64-mingw32 --enable-gc-assertions --enable-gc-debug --enable-threads=pthreads" - MAKEFILE_TARGETS="all" - addons: apt: packages: - gcc-mingw-w64 compiler: i686-w64-mingw32-gcc dist: jammy language: c env: - CONF_OPTIONS="--host=i686-w64-mingw32" - MAKEFILE_TARGETS="all" - CFLAGS_EXTRA="-fno-omit-frame-pointer" - dist: focal env: - MAKEFILE_TARGETS="distcheck" - AUTOCONF_VER=2.71 - AUTOMAKE_VER=1.16.5 - LIBTOOL_VER=2.4.7 - M4_VER=1.4.19 - NO_CLONE_LIBATOMIC_OPS=true before_install: - if [[ "$CPPCHECK_ENABLE" != "" ]]; then CPPCHECK_VER=2.4.1; git clone --depth=3 https://github.com/danmar/cppcheck.git ~/cppcheck -b $CPPCHECK_VER; make --directory ~/cppcheck -j8 CXXFLAGS="-O3 -march=native -D NDEBUG"; fi - if [[ "$AUTOCONF_VER" != "" || "$AUTOMAKE_VER" != "" || "$LIBTOOL_VER" != "" || "$M4_VER" != "" ]]; then GNUTOOLS_ROOT=`pwd`/../gnu-tools; export PATH=$GNUTOOLS_ROOT/bin:$PATH; GNU_DOWNLOAD_SITE=https://ftp.gnu.org/gnu; fi - if [[ "$M4_VER" != "" ]]; then M4_XZ_URL=$GNU_DOWNLOAD_SITE/m4/m4-$M4_VER.tar.xz; wget -O - $M4_XZ_URL | tar xf - --xz --directory ~; (cd ~/m4-$M4_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install); fi - if [[ "$LIBTOOL_VER" != "" ]]; then LIBTOOL_XZ_URL=$GNU_DOWNLOAD_SITE/libtool/libtool-$LIBTOOL_VER.tar.xz; wget -O - $LIBTOOL_XZ_URL | tar xf - --xz --directory ~; (cd ~/libtool-$LIBTOOL_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install); fi - if [[ "$AUTOCONF_VER" != "" ]]; then AUTOCONF_XZ_URL=$GNU_DOWNLOAD_SITE/autoconf/autoconf-$AUTOCONF_VER.tar.xz; wget -O - $AUTOCONF_XZ_URL | tar xf - --xz --directory ~; (cd ~/autoconf-$AUTOCONF_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install); fi - if [[ "$AUTOMAKE_VER" != "" ]]; then AUTOMAKE_XZ_URL=$GNU_DOWNLOAD_SITE/automake/automake-$AUTOMAKE_VER.tar.xz; wget -O - $AUTOMAKE_XZ_URL | tar xf - --xz --directory ~; (cd ~/automake-$AUTOMAKE_VER && ./configure --prefix=$GNUTOOLS_ROOT && make -j && make install); fi - if [[ "$MAKEFILE_TARGETS" == *"dist"* ]]; then autoconf --version; automake --version; m4 --version; libtool --version || true; fi - if [[ "$CMAKE_OPTIONS" != "" ]]; then cmake --version; fi - if [[ "$CONF_CFLAGS" == "" ]]; then CONF_CFLAGS="-g -O2"; fi - if [[ "$MAKEFILE_NAME" == "" ]]; then MAKEFILE_NAME=Makefile; fi - if [[ "$MAKEFILE_TARGETS" == "" ]]; then MAKEFILE_TARGETS="check"; fi install: - if [[ "$NO_CLONE_LIBATOMIC_OPS" != true ]]; then git clone --depth=50 https://github.com/ivmai/libatomic_ops.git; fi - if [[ "$CMAKE_OPTIONS" == "" ]]; then ./autogen.sh; fi - if [[ "$GNUTOOLS_ROOT" != "" ]]; then mv $GNUTOOLS_ROOT $GNUTOOLS_ROOT-x; fi - if [[ "$REPORT_COVERAGE" == true ]]; then gem install coveralls-lcov; fi script: - if [[ "$CSA_CHECK" != true && "$CMAKE_OPTIONS" == "" && "$CPPCHECK_ENABLE" == "" && "$MAKEFILE_NAME" != "Makefile.direct" && "$COVERITY_SCAN_BRANCH" != 1 ]]; then CFLAGS="$CONF_CFLAGS" ./configure $CONF_OPTIONS --enable-werror && cat include/config.h; fi - if [[ "$CSA_CHECK" != true && "$CMAKE_OPTIONS" == "" && "$CPPCHECK_ENABLE" == "" && "$COVERITY_SCAN_BRANCH" != 1 ]]; then make -j$MAKE_NPROC -f $MAKEFILE_NAME $MAKEFILE_TARGETS CFLAGS_EXTRA="$CFLAGS_EXTRA" LDFLAGS="$LDFLAGS"; fi - if [[ "$CMAKE_OPTIONS" != "" ]]; then cmake $CMAKE_OPTIONS -Dbuild_tests=ON -Denable_werror=ON -Werror=dev . && cmake --build . $CMAKE_BUILD_OPTIONS; fi - if [[ "$CMAKE_OPTIONS" != "" ]]; then ctest -j4 -V; fi - if [[ "$CC_FOR_CHECK" != "" ]]; then make -f $MAKEFILE_NAME $MAKEFILE_TARGETS_CHECK CC=$CC_FOR_CHECK CFLAGS_EXTRA="$CFLAGS_EXTRA"; fi - if [ -f cordtest.log ]; then cat cordtest.log; fi - if [ -f disclaim_bench.log ]; then cat disclaim_bench.log; fi - if [ -f disclaimtest.log ]; then cat disclaimtest.log; fi - if [ -f gctest.log ]; then cat gctest.log; fi - if [ -f threadkeytest.log ]; then cat threadkeytest.log; fi - if [ -f threadleaktest.log ]; then cat threadleaktest.log; fi - if [ -f weakmaptest.log ]; then cat weakmaptest.log; fi - if [[ "$CSA_CHECK" == true ]]; then set -o pipefail; ${CC} --analyze -Xanalyzer -analyzer-output=text -Werror -I include -I libatomic_ops/src $CFLAGS_EXTRA *.c *.cc cord/*.c cord/tests/cordtest.c cord/tests/de.c extra/gc.c extra/msvc_dbg.c extra/pcr_interface.c extra/real_malloc.c tests/*.c tests/*.cc tools/*.c 2>&1 | tee clang-analyzer-output.log; if [ -s clang-analyzer-output.log ]; then exit 1; fi; fi - if [[ "$CPPCHECK_ENABLE" != "" ]]; then if [[ "$CPPCHECK_OUT_FILTER" == "" ]]; then CPPCHECK_OUT_FILTER="c "; fi; set -o pipefail; ~/cppcheck/cppcheck --error-exitcode=2 -U GC_API -D CPPCHECK -I include $CPPCHECK_ENABLE | grep --line-buffered "$CPPCHECK_OUT_FILTER"; fi - if [[ "$TESTS_CUSTOM_RUN" == true ]]; then ASAN_OPTIONS="detect_leaks=1" UBSAN_OPTIONS="halt_on_error=1" make check-without-test-driver; fi after_success: - if [[ "$REPORT_COVERAGE" == true ]]; then lcov --capture --base-directory . --directory . --output-file coverage.info; lcov --remove coverage.info '/usr/*' 'cord/tests/*' 'libatomic_ops/*' 'tests/*' --output-file coverage.info; lcov --list coverage.info; coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info; bash <(curl -s https://codecov.io/bash); fi deploy: provider: releases edge: true file: gc-*.tar.gz file_glob: true on: condition: $MAKEFILE_TARGETS = distcheck repo: ivmai/bdwgc tags: true