]> granicus.if.org Git - gc/commitdiff
Travis CI: enable builds for release-7_6 branch
authorIvan Maidanski <ivmai@mail.ru>
Wed, 12 Jul 2017 08:26:50 +0000 (11:26 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 12 Jul 2017 08:26:50 +0000 (11:26 +0300)
(Back-port .travis.yml from 'master' branch.)

.travis.yml [new file with mode: 0644]

diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..85d705b
--- /dev/null
@@ -0,0 +1,497 @@
+language: c++
+
+matrix:
+  include:
+  - os: linux
+    compiler: clang
+    env:
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: osx
+    env:
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - libatomic-ops-dev
+    dist: trusty
+    env:
+    - MAKEFILE_TARGETS="distcheck"
+    - AUTOMAKE_VER=1.15
+    - M4_VER=1.4.18
+    - LIBTOOL_VER=2.4.6
+    - PKG_CONFIG_VER=0.29.2
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    env:
+    - MAKEFILE_TARGETS="dist"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - libatomic-ops-dev
+    compiler: clang
+    dist: trusty
+    env:
+    - CONF_OPTIONS="--enable-cplusplus"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - libatomic-ops-dev
+    compiler: gcc
+    dist: trusty
+    env:
+    - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-multilib
+    compiler: clang
+    env:
+    - CFLAGS_EXTRA="-m32"
+    - CONF_OPTIONS="--enable-gc-assertions"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-multilib
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-m32"
+    - CONF_OPTIONS="--enable-gc-assertions"
+  - os: osx
+    env:
+    - CFLAGS_EXTRA="-m32"
+    - CONF_OPTIONS="--enable-gc-assertions --enable-handle-fork --enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-D CHECKSUMS"
+    - CONF_OPTIONS="--disable-threads --disable-munmap --enable-cplusplus"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    compiler: clang
+    env:
+    - CFLAGS_EXTRA="-D DBG_HDRS_ALL -D SHORT_DBG_HDRS"
+    - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
+  - os: osx
+    env:
+    - CFLAGS_EXTRA="-D DBG_HDRS_ALL -D SHORT_DBG_HDRS -D LINT2"
+    - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-D DEBUG_ADD_DEL_ROOTS -D DEBUG_DIRTY_BITS -D DEBUG_THREADS -D GC_LOG_TO_FILE_ALWAYS"
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-D DEFAULT_STACK_MAYBE_SMALL -D ENABLE_TRACE -D EMPTY_GETENV_RESULTS -D GC_ALWAYS_MULTITHREADED -D CPPCHECK"
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: linux
+    compiler: clang
+    env:
+    - CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2"
+    - CONF_OPTIONS="--with-libatomic-ops=no --enable-cplusplus"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - libatomic-ops-dev
+    compiler: gcc
+    dist: trusty
+    env:
+    - CONF_OPTIONS="--with-libatomic-ops=yes --enable-gc-assertions --enable-cplusplus"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: osx
+    env:
+    - CFLAGS_EXTRA="-march=native -D _FORTIFY_SOURCE=2 -D AO_DISABLE_GCC_ATOMICS"
+    - CONF_OPTIONS="--with-libatomic-ops=no --enable-munmap --enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-D DONT_ADD_BYTE_AT_END"
+    - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-multilib
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-m32 -D MARK_BIT_PER_OBJ"
+  - os: linux
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-D POINTER_MASK=~0xf"
+    - CONF_OPTIONS="--enable-gc-assertions --enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CFLAGS_EXTRA="-D SMALL_CONFIG -D NO_GETENV"
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    dist: trusty
+    env:
+    - CFLAGS_EXTRA="-std=c11 -D GC_NO_SIGSETJMP"
+    - CONF_OPTIONS="--disable-threads --enable-gc-assertions --enable-cplusplus"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - lcov
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--enable-gcov --enable-handle-fork --enable-munmap --enable-single-obj-compilation --enable-cplusplus --disable-shared --enable-gc-assertions"
+    - REPORT_COVERAGE=true
+  - os: linux
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--enable-gc-debug --enable-cplusplus"
+  - os: linux
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--disable-gc-debug --enable-cplusplus"
+  - os: linux
+    compiler: clang
+    env:
+    - CONF_OPTIONS="--enable-large-config --enable-cplusplus"
+  - os: osx
+    env:
+    - CONF_OPTIONS="--enable-large-config --enable-cplusplus"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-multilib
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--enable-large-config --disable-munmap"
+    - CFLAGS_EXTRA="-m32"
+  - os: linux
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--enable-large-config --enable-munmap --enable-cplusplus"
+    - CFLAGS_EXTRA="-D LINT2"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-multilib
+    compiler: clang
+    env:
+    - CONF_OPTIONS="--enable-redirect-malloc --disable-threads"
+    - CFLAGS_EXTRA="-m32"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: osx
+    env:
+    - CONF_OPTIONS="--enable-redirect-malloc --enable-cplusplus --disable-threads"
+    - CFLAGS_EXTRA="-m32"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--enable-redirect-malloc --enable-gc-debug --enable-cplusplus --enable-gc-assertions"
+  - os: linux
+    compiler: clang
+    env:
+    - CONF_OPTIONS="--disable-static --disable-threads --enable-cplusplus"
+    - CFLAGS_EXTRA="-O3 -march=native"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: linux
+    compiler: gcc
+    env:
+    - CONF_OPTIONS="--disable-static --disable-threads --enable-cplusplus"
+    - CFLAGS_EXTRA="-O3 -march=native"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: osx
+    env:
+    - CONF_OPTIONS="--disable-static --disable-threads --enable-cplusplus"
+    - CFLAGS_EXTRA="-O3 -march=native"
+    - NO_CLONE_LIBATOMIC_OPS=true
+  - os: osx
+    env:
+    - CSA_CHECK=true
+    - CFLAGS_EXTRA="-m32"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - clang-4.0
+        sources:
+        - llvm-toolchain-trusty-4.0
+    compiler: clang-4.0
+    dist: trusty
+    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"
+  - os: linux
+    env:
+    - CPPCHECK_ENABLE="-j16 --enable=information,performance,portability,style,warning extra/AmigaOS.c extra/MacOS.c extra/msvc_dbg.c extra/symbian.cpp"
+    sudo: required
+  - os: linux
+    env:
+    - CPPCHECK_ENABLE="--enable=unusedFunction"
+    sudo: required
+  - os: linux
+    compiler: clang
+    env:
+    - MAKEFILE_NAME=Makefile.direct
+    - MAKEFILE_TARGETS="check check-cpp cord/de"
+  - os: linux
+    compiler: gcc
+    env:
+    - MAKEFILE_NAME=Makefile.direct
+    - MAKEFILE_TARGETS="check check-cpp cord/de"
+  - os: osx
+    env:
+    - MAKEFILE_NAME=Makefile.direct
+    - MAKEFILE_TARGETS="check check-cpp cord/de"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - musl-tools
+    compiler: musl-gcc
+    dist: trusty
+    language: c
+    env:
+    - CONF_OPTIONS="--disable-parallel-mark --enable-gc-assertions"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - clang-4.0
+        sources:
+        - llvm-toolchain-trusty-4.0
+    compiler: clang-4.0
+    dist: trusty
+    language: c
+    env:
+    - CXX=clang++-4.0
+    - CFLAGS_EXTRA="-fsanitize=address -fno-common -fno-omit-frame-pointer"
+    - CONF_OPTIONS="--enable-cplusplus"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - clang-4.0
+        sources:
+        - llvm-toolchain-trusty-4.0
+    compiler: clang-4.0
+    dist: trusty
+    language: c
+    env:
+    - CFLAGS_EXTRA="-fsanitize=memory -fno-omit-frame-pointer"
+    - CONF_OPTIONS="--enable-handle-fork --enable-munmap"
+    - MSAN_OR_UBSAN=true
+    sudo: required
+  - os: linux
+    compiler: clang
+    env:
+    - CFLAGS_EXTRA="-fsanitize=undefined -fno-common -fno-omit-frame-pointer"
+    - MSAN_OR_UBSAN=true
+    - CONF_OPTIONS="--enable-cplusplus --enable-handle-fork --enable-munmap"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - clang-4.0
+        sources:
+        - llvm-toolchain-trusty-4.0
+    compiler: clang-4.0
+    dist: trusty
+    language: c
+    env:
+    - CXX=clang++-4.0
+    - CFLAGS_EXTRA="-O3 -march=native"
+    - CONF_OPTIONS="--enable-cplusplus --enable-single-obj-compilation"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - clang-4.0
+        - gcc-multilib
+        sources:
+        - llvm-toolchain-trusty-4.0
+    compiler: clang-4.0
+    dist: trusty
+    language: c
+    env:
+    - CFLAGS_EXTRA="-m32 -D _FORTIFY_SOURCE=2"
+    - CONF_OPTIONS="--enable-munmap --enable-gc-assertions"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-5
+        - g++-5
+        sources:
+        - ubuntu-toolchain-r-test
+    compiler: gcc-5
+    dist: trusty
+    language: c
+    env:
+    - CXX=g++-5
+    - CONF_OPTIONS="--enable-munmap --enable-cplusplus --enable-gc-assertions"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-5
+        - gcc-5-multilib
+        - gcc-multilib
+        sources:
+        - ubuntu-toolchain-r-test
+    compiler: gcc-5
+    dist: trusty
+    language: c
+    env:
+    - CFLAGS_EXTRA="-m32 -O3"
+    - CONF_OPTIONS="--disable-shared --enable-single-obj-compilation"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-5
+        - gcc-5-multilib
+        - gcc-multilib
+        sources:
+        - ubuntu-toolchain-r-test
+    compiler: gcc-5
+    dist: trusty
+    language: c
+    env:
+    - CFLAGS_EXTRA="-mx32 -march=native -D _FORTIFY_SOURCE=2"
+    - CONF_OPTIONS="--enable-munmap --enable-large-config --enable-gc-assertions"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - g++-mingw-w64
+        - gcc-mingw-w64
+    compiler: x86_64-w64-mingw32-gcc
+    dist: trusty
+    language: c
+    env:
+    - CXX=x86_64-w64-mingw32-g++
+    - CONF_OPTIONS="--host=x86_64-w64-mingw32 --enable-cplusplus"
+    - MAKEFILE_TARGETS="all"
+  - os: linux
+    addons:
+      apt:
+        packages:
+        - gcc-mingw-w64
+    compiler: i686-w64-mingw32-gcc
+    dist: trusty
+    language: c
+    env:
+    - CONF_OPTIONS="--host=i686-w64-mingw32 --enable-munmap"
+    - MAKEFILE_TARGETS="all"
+    - CFLAGS_EXTRA="-fno-omit-frame-pointer"
+
+before_install:
+- if [[ "$CPPCHECK_ENABLE" != "" ]]; then
+    git clone --depth=3 https://github.com/danmar/cppcheck.git
+            ~/cppcheck -b master;
+    make --directory ~/cppcheck -j CXXFLAGS="-O3 -march=native -D NDEBUG";
+  fi
+- if [[ "$AUTOMAKE_VER" != "" || "$LIBTOOL_VER" != ""
+        || "$M4_VER" != "" || "$PKG_CONFIG_VER" != "" ]]; then
+    GNUTOOLS_ROOT=`pwd`/../gnu-tools;
+    export PATH=$GNUTOOLS_ROOT/bin:$PATH;
+  fi
+- if [[ "$M4_VER" != "" ]]; then
+    M4_XZ_URL=https://ftp.gnu.org/gnu/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 check && make install);
+  fi
+- if [[ "$LIBTOOL_VER" != "" ]]; then
+    LIBTOOL_XZ_URL=https://ftp.gnu.org/gnu/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 [[ "$AUTOMAKE_VER" != "" ]]; then
+    AUTOMAKE_XZ_URL=https://ftp.gnu.org/gnu/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 [[ "$PKG_CONFIG_VER" != "" ]]; then
+    PKG_CONFIG_GZ_URL=https://pkgconfig.freedesktop.org/releases/pkg-config-$PKG_CONFIG_VER.tar.gz;
+    wget -O - $PKG_CONFIG_GZ_URL | tar xf - --gz --directory ~;
+    (cd ~/pkg-config-$PKG_CONFIG_VER && ./configure --with-internal-glib --prefix=$GNUTOOLS_ROOT && make -j check && make install);
+  fi
+- if [[ "$MAKEFILE_TARGETS" == *"dist"* ]]; then
+    autoconf --version;
+    automake --version;
+    m4 --version;
+    libtool --version || true;
+    pkg-config --version;
+  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
+              -b release-7_6;
+  fi
+- "./autogen.sh"
+- 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 && "$CPPCHECK_ENABLE" == ""
+        && "$MAKEFILE_NAME" != "Makefile.direct" ]]; then
+    ./configure $CONF_OPTIONS --enable-werror && cat include/config.h;
+  fi
+- if [[ "$CSA_CHECK" != true && "$CPPCHECK_ENABLE" == "" ]]; then
+    make -j -f $MAKEFILE_NAME $MAKEFILE_TARGETS CFLAGS_EXTRA="$CFLAGS_EXTRA";
+  fi
+- if [ -f gctest.log ]; then cat gctest.log; fi
+- if [[ "$CSA_CHECK" == true ]]; then
+    ${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 tests/*.c tests/*.cc tools/*.c;
+  fi
+- if [[ "$CPPCHECK_ENABLE" != "" ]]; then
+    ~/cppcheck/cppcheck -q -f --error-exitcode=2 -U GC_API -U long -D CPPCHECK
+        -I include -I libatomic_ops/src $CPPCHECK_ENABLE
+        *.cc cord/*.c cord/tests/*.c tests/*.c tests/*.cc tools/*.c
+        extra/gc.c;
+  fi
+- if [[ "$MSAN_OR_UBSAN" == true ]]; then
+    UBSAN_OPTIONS="halt_on_error=1" make check;
+  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;
+  fi
+
+deploy:
+  provider: releases
+  api_key:
+    secure: j1HkSD5hyYFo//XzPemojLk6iBT+T9+PwktxtDOwdasR0lOvPyBS2k/RbBZp+amDna/40efTg2WVI8BEfpRMV8+QoYGVoTWCKCaxFCHMfSZdsPLYsHpeqp7PBh3sFX6iuQuZkRGXHNeG8cLHTTw1TatrEBU/vTZXItYKmOJH8WnlwwkiVXKQ3BvU9EJjFB1OJX9PArBXgoHjDcgi6D1kL6ErsraU9nwnaBNRFx5Tpvz/fXZDwjzMnGcxeu02zhVC37mFDd6VbKom8Pm28u4NjYLLhjdICexc0BaVC0kr3+usJytyMtWMRm6LN4kFievOntHZOEAtuU6/E0Bg8wnB8FX8vXaytb+eUVtcfS/n/x6ykgPtKHrCnWEP8nnruW/3qRExxSBASyAwBceJK+yyzVBtQudK4YZnBXUWkFfsc9pPiauUDXkYlUgvVyb3rXvJTvjdiIle194GtRsCQsGKxCZiI6jMB/wRQAA9AgcSb3FpRTqkVPEUT3Gnn0xT+Y0QLJBBm4eAG8qWoEuMMAW8lAVvfHdZh3AnnIvqONvc2dk7kq5EZyhUPTFFDxZGnXWzIwY7Nm9QkUOdvb9t+RsnoTwBL4hSD4/T1CgW/hULQ7cuiwtK/E+8r5C1VES5/I20qkwfTGwKQchdR6lOLO7YM4VlHfNbEUe/wsE3PBh0ekc=
+  file: gc-*.tar.gz
+  file_glob: true
+  skip_cleanup: true
+  on:
+    condition: $MAKEFILE_TARGETS = distcheck
+    repo: ivmai/bdwgc
+    tags: true