diff --git a/.appveyor.yml b/.appveyor.yml index b10afe49..73a5b794 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -22,8 +22,8 @@ environment: - { C: msvc-14.0-x64, CL_VERSION: 19.00, VS_VERSION: 2015 } - { C: msvc-14.1-x86, CL_VERSION: 19.16, VS_VERSION: 2017, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 } - { C: msvc-14.1-x64, CL_VERSION: 19.16, VS_VERSION: 2017, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 } - - { C: msvc-14.2-x86, CL_VERSION: 19.24, VS_VERSION: 2019, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 } - - { C: msvc-14.2-x64, CL_VERSION: 19.24, VS_VERSION: 2019, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 } + - { C: msvc-14.2-x86, CL_VERSION: 19.28, VS_VERSION: 2019, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 } + - { C: msvc-14.2-x64, CL_VERSION: 19.28, VS_VERSION: 2019, APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 } UPX_AUTOMATIC_BUILDS_SSL_KEY: secure: PZMpVeqnEYe39kK+Zu2/fnmZ6/HG6Lvls0hh9GMVU9vCWsr8xaU7kIbHBS01puUkb4bEWPILKYvSEDuhOhguDjd/P4QdXWipvV/F2GaVax0= UPX_AUTOMATIC_BUILDS_SSL_IV: @@ -45,15 +45,15 @@ install: - cd c:\projects\upx - git submodule update --init --recursive - cd c:\projects\deps - - curl -q -L --retry 5 -o ucl-1.03.tar.gz "https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.gz" - - curl -q -L --retry 5 -o zlib-1.2.8.tar.gz "https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.gz" + - curl -q -sS -L --retry 5 -o ucl-1.03.tar.gz "https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.gz" + - curl -q -sS -L --retry 5 -o zlib-1.2.8.tar.gz "https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.gz" - git clone https://github.com/upx/upx-testsuite - tar -xzf ucl-1.03.tar.gz - tar -xzf zlib-1.2.8.tar.gz # patch UCL for msvc-14.0 (vsnprintf issue) - sed -i '/# *define.*snprintf *_v*snprintf$/d' ucl-1.03/acc/acc_auto.h -##- curl -q -L --retry 5 -o config.guess "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" -##- curl -q -L --retry 5 -o config.sub "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" +##- curl -q -sS -L --retry 5 -o config.guess "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" +##- curl -q -sS -L --retry 5 -o config.sub "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" ##- cp config.guess config.sub ucl-1.03/acconfig/ # setup compiler - if "%C%"=="msvc-10.0-x86" ( call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 ) diff --git a/.github/workflows/ci-build-linux.yml b/.github/workflows/ci-build-linux.yml deleted file mode 100644 index 257b14ce..00000000 --- a/.github/workflows/ci-build-linux.yml +++ /dev/null @@ -1,63 +0,0 @@ -# Support for GitHub Actions -- https://github.com/features/actions -# Copyright (C) Markus Franz Xaver Johannes Oberhumer - -name: GitHub CI - -on: - push: - branches: - - '*' - - '!appveyor*' - - '!gitlab*' - - '!travis*' - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - build: - - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - { os: ubuntu-20.04, C: clang-10-m64 } - - { os: ubuntu-20.04, C: gcc-10-m64 } - #- { os: ubuntu-20.04, X: rebuild-stubs } - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - #if: contains(matrix.os, 'ubuntu') - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - with: { submodules: true } - - - name: 'Step: prepare sources' - run: | - export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux - uname -a; pwd; id; umask - #cat /etc/os-release || true - #env - cd ..; mkdir -p deps build/github; cd deps - wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ - wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ - git clone https://github.com/upx/upx-testsuite - if [[ $X =~ (^|\+)rebuild-stubs($|\+) ]]; then - wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ - fi - - - name: 'Step: build' - run: | - export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux - bash ./.github/travis_build.sh - - - name: 'Step: run testsuite' - run: | - export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux - bash ./.github/travis_testsuite_1.sh - -# vim:set ts=2 sw=2 et: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..49e4aac8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,167 @@ +# Support for GitHub Actions -- https://github.com/features/actions +# Copyright (C) Markus Franz Xaver Johannes Oberhumer + +name: 'CI' + +on: + push: + branches: + - '*' + - '!appveyor*' + - '!gitlab*' + - '!travis*' + + workflow_dispatch: + +jobs: + job-ci-rebuild-and-verify-stubs: + name: 'Rebuild stubs' + runs-on: ubuntu-16.04 + steps: + - name: 'Install extra packages' + run: | + uname -a; pwd; id; umask + export DEBIAN_FRONTEND=noninteractive + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y libmpfr4:i386 zlib1g:i386 + cd ..; mkdir -p deps; cd deps + wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ + - name: 'Check out code' + uses: actions/checkout@v2 + with: { submodules: true } + - name: 'Rebuild and verify stubs' + run: env C=gcc X=rebuild-stubs TRAVIS_OS_NAME=linux bash ./.github/travis_build.sh + + job-ci-linux-toolchains: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + include: + - { name: amd64-linux-clang-10, os: ubuntu-20.04, C: clang-10-m64 } + - { name: amd64-linux-gcc-10, os: ubuntu-20.04, C: gcc-10-m64 } + - { name: i386-linux-clang-10, os: ubuntu-20.04, C: clang-10-m32 } + - { name: i386-linux-gcc-10, os: ubuntu-20.04, C: gcc-10-m32 } + + steps: + - name: 'Install extra packages' + run: | + uname -a; pwd; id; umask + #cat /etc/os-release || true + #env + if [[ ${{ matrix.os }} =~ ^ubuntu ]]; then + export DEBIAN_FRONTEND=noninteractive + if [[ ${{ matrix.C }} =~ ^(clang|gcc).*-m32$ ]]; then + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y g++-9-multilib g++-10-multilib zlib1g-dev:i386 + fi + fi + + - name: 'Check out code' + uses: actions/checkout@v2 + with: { submodules: true } + + - name: 'Prepare sources' + run: | + cd ..; mkdir -p deps build/github; cd deps + wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ + git clone --depth=1 https://github.com/upx/upx-testsuite + + - name: 'Build' + run: | + export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux + export BUILD_LOCAL_UCL=1 + bash ./.github/travis_build.sh + + - name: 'Run test suite' + run: | + export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux + bash ./.github/travis_testsuite_1.sh + + job-ci-windows-toolchains: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + include: + - { name: amd64-win64-msvc-14.2, os: windows-2019, C: msvc-14.2-x64, A: x64 } + - { name: i386-win32-msvc-14.2, os: windows-2019, C: msvc-14.2-x86, A: x86 } + + steps: + - name: 'Check out code' + uses: actions/checkout@v2 + with: { submodules: true } + + - name: 'Prepare sources' + run: | + $C="${{ matrix.C }}" + Get-Command bash,cat,chmod,cmp,cp,curl,date,env,file,git,gzip,mkdir,mv,openssl,readlink,rm,rmdir,sed,sha256sum,sort,ssh,ssh-add,ssh-agent,ssh-keyscan,tar,touch,which + cd ..; md build,build\$C,deps; cd deps + curl -sS -L --retry 5 -o ucl-1.03.tar.gz "https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.gz" + curl -sS -L --retry 5 -o zlib-1.2.8.tar.gz "https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.gz" + git clone --depth=1 https://github.com/upx/upx-testsuite + tar -xzf ucl-1.03.tar.gz + tar -xzf zlib-1.2.8.tar.gz + # patch UCL for newer msvc (vsnprintf issue) + sed -i '/# *define.*snprintf *_v*snprintf$/d' ucl-1.03/acc/acc_auto.h + + - name: 'Set up Developer Command Prompt' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.A }} + + - name: 'Build' + shell: cmd + run: | + set C=${{ matrix.C }} + set B=release + @REM setup directories following the VPATH build in travis_build.sh + where cl & where link + set BDIR=\a\upx\build\%C%\%B% + md %BDIR% %BDIR%\ucl-1.03 %BDIR%\upx %BDIR%\upx-testsuite %BDIR%\zlib-1.2.8 + set DEFS=-D_CRT_SECURE_NO_WARNINGS + git rev-parse --short=12 HEAD > %BDIR%\upx\.GITREV.txt + @REM build UCL + cd %BDIR%\ucl-1.03 + set s=\a\upx\deps\ucl-1.03 + cl -MT -O2 -W4 %DEFS% -I%s%\include -I%s% -c %s%\src\*.c + link -lib -out:ucl.lib *.obj + @REM build zlib + cd %BDIR%\zlib-1.2.8 + cl -MT -O2 -W2 %DEFS% -c \a\upx\deps\zlib-1.2.8\*.c + link -lib -out:zlib.lib *.obj + @REM build UPX + cd %BDIR%\upx + set s=\a\upx\upx\src + cat .GITREV.txt + set /p GITREV=<.GITREV.txt + cl -MT -EHsc -J -O2 -W4 -WX -DUPX_VERSION_GITREV="""%GITREV%""" %DEFS% -DUCL_NO_ASM -I%s%\lzma-sdk -I\a\upx\deps\ucl-1.03\include -I\a\upx\deps\zlib-1.2.8 -Feupx.exe %s%\*.cpp %BDIR%\ucl-1.03\ucl.lib %BDIR%\zlib-1.2.8\zlib.lib + + - name: 'Basic tests' + shell: cmd + run: | + set C=${{ matrix.C }} + set B=release + cd \a\upx\build\%C%\%B%\upx + set UPX=--no-color --no-progress + .\upx.exe --version + .\upx.exe upx.exe -o upx_packed.exe + dir *.exe + .\upx.exe -l upx_packed.exe + .\upx.exe -t upx_packed.exe + .\upx_packed.exe --version + + - name: 'Run test suite' + shell: cmd + run: | + set C=${{ matrix.C }} + set B=release + bash ./.github/travis_testsuite_1.sh + +# vim:set ts=2 sw=2 et: diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3473d48c..00000000 --- a/.travis.yml +++ /dev/null @@ -1,560 +0,0 @@ -# Support for Travis CI -- https://travis-ci.org/upx/upx/builds -# Copyright (C) Markus Franz Xaver Johannes Oberhumer - -sudo: false -os: linux -dist: xenial -language: cpp - -notifications: { email: { on_success: never, on_failure: change } } - -branches: - except: - - /^appveyor.*/ - - /^github.*/ - - /^gitlab.*/ - -# Ubuntu 12.04 LTS "Precise" -# also see TB_OS_linux_precise_llvm below -.ubuntu_precise_toolchain_sources: &PS - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.5 - - llvm-toolchain-precise-3.6 - - llvm-toolchain-precise-3.7 - - llvm-toolchain-precise-3.8 - - llvm-toolchain-precise-3.9 - -# Ubuntu 14.04 LTS "Trusty" -.ubuntu_trusty_toolchain_sources: &TS - - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-3.9 - - llvm-toolchain-trusty-4.0 - - llvm-toolchain-trusty-5.0 - - llvm-toolchain-trusty-6.0 - - llvm-toolchain-trusty-7 - - llvm-toolchain-trusty-8 - -# Ubuntu 16.04 LTS "Xenial" -.ubuntu_xenial_toolchain_sources: &XS - - ubuntu-toolchain-r-test - - llvm-toolchain-xenial-6.0 - - llvm-toolchain-xenial-7 - - llvm-toolchain-xenial-8 - -env: - global: - # TB_LEVEL >= 1: gcc-7, gcc-8, gcc-9, clang-8, xcode11 - # TB_LEVEL >= 2: gcc-4.4, gcc-4.8, gcc-6, clang-3.4, clang-7 - # TB_LEVEL >= 3: gcc-4.6, gcc-5, clang-3.9, clang-6, xcode9, xcode10 - # TB_LEVEL >= 4: include sanitize/scan-build/valgrind builds - # TB_LEVEL >= 5: cross-compilers running testsuite under qemu/wine - # TB_LEVEL >= 6: all other compilers & builds - - TB_LEVEL=5 - - TB_OS_linux=1 TB_OS_osx=1 - - TB_OS_linux_precise_llvm=1 - - CROSS= C= B= T= X= - - secure: "YXHLXK+CM5d8yELIUSSs+P0/CoefClO7/AUX1oBj5W75g+YzR5uS2doVsB8UH8S8/GdNxk4P9Jgn4EiEVnjfGgn2eAD9MVpDPIxyJs5vI+5G77asq3QNdSl6QFv3O9I/6yBoVCewgPFPqsMd7Yvs/Ea3LcQkqalVhrC8ybYtmfs6VL2w33gn2J3b3TCn/s21L0ijklM0xvP1GNMDtuUpTSish5wvGOHE/91rwtdUDbJR8u31QY7fTASDiNnL/7ihgEIZ5XxpDYXviX1GC+nemhX1fWpmVmuT8m30Ruodi0yJVGASw9i2SaKv/VX/fJ/w2vlCfspL5LMZKkVLlfpIo3mQGqmMHFxv7mNy+hRu50ptoWNSkWArcqifwveh2liHUpl4jTvWaVll5Tw5VUGJhAUdzCTnqLIbWFnKIgCedL3iRFi4+EbyWNxel8lFESMOTDZFfJG5yEiDJbgbLsUaT2GmrsOphwAG7zDcZzvYTdjg/lF4Wh0MUnQJ+0MhDpii8Ahjp49lAPdw8uRQyyY7d7ksYKXVIkbgl6dRCC5vZSPucJiFjq2BClqIoEmzZPvHveDbovzFkNhJX9tFLrHLcXbPPcegww1FGoQ3wBM6JwJ+TvSD6N4OdCmou05aDuuQeznHi3GxOScjGwxdMIU28fdJDCTDg2rOihm22kHVajo=" - - secure: "JpSv3+QRmHcfN/bmT3mVkqET44NCPhM/qpcUssCVXnd2GW0qWURoyPHzVMn/gbeAkUjR6djtN3OzJ+M181QmlmTmE26pZC9Q6r1buNDWdkIH1FcpMCa67BBAjmq+yDwulDtvCMv0lbz60v57lzHBOLczF3yMxBVTjXxt1RsrzDLHzzVaDR5lEe+sQUNeRL7Vaq8crimPNTr4ZhMe59eweTO/3AWovuSPf250k1flfv7I8audZgrVZdbVKvj5C3Sziy1AGXcu8mDfET9/Ya2XBCQHWODjiKlnhSxqthhP3gQuacaLjpS2FjvQlamd+I9x6BBoLSeNbiXD9vgCydDUKvmUrU+zQs64U1hHk9WZWVC19kG7lTtTdanGDIUlIUtFZgqE4AQpJaIUWkUmHGyHi61JMvduzX21eL5c5j9DoJteX42FPb1n3xK/JSnUkLMpbFdQuy5inhzefhDfeNzaYxt8nPwHnJqrF73SW4PLDKeRyzvg/P+zqcou8nXrHfA1z9/FlnYzf7Qc9meai9Q/JARX3Q1ZKu5uyG+RuBLe2POq0192w6pflTr1ZlLJsKNSc1147PviKfmpla1lg3/6uVzMp5tgwbve/hx9SDXiRueGttKw/ymsY662+8G24NRKo4fxNklWFHaB4owM84edDzXDckPXbPgue8/HQT8BFio=" - -matrix: - fast_finish: true - include: - - if: 1 = 1 - os: linux - dist: xenial - compiler: gcc - env: X=rebuild-stubs - addons: { apt: { packages: [ "g++-multilib", "lib32z1" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.4-m32 - addons: { apt: { sources: *PS, packages: [ "g++-4.4-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.4-m64 - addons: { apt: { sources: *PS, packages: [ "g++-4.4" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.5-m32 - addons: { apt: { sources: *PS, packages: [ "g++-4.5-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.5-m64 - addons: { apt: { sources: *PS, packages: [ "g++-4.5" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.6-m32 - addons: { apt: { packages: [ "g++-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.6-m64 - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.7-m32 - addons: { apt: { sources: *PS, packages: [ "g++-4.7-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: precise - compiler: gcc - env: C=gcc-4.7-m64 - addons: { apt: { sources: *PS, packages: [ "g++-4.7" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-4.8-m32 - addons: { apt: { packages: [ "g++-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-4.8-m64 - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-4.8-mx32 - addons: { apt: { packages: [ "g++-multilib", "libx32stdc++-4.8-dev" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-4.9-m32 - addons: { apt: { sources: *TS, packages: [ "g++-4.9-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-4.9-m64 - addons: { apt: { sources: *TS, packages: [ "g++-4.9" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-5-m32 - addons: { apt: { sources: *TS, packages: [ "g++-5-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-5-m64 - addons: { apt: { sources: *TS, packages: [ "g++-5" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-6-m32 - addons: { apt: { sources: *TS, packages: [ "g++-6-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-6-m64 - addons: { apt: { sources: *TS, packages: [ "g++-6" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-7-m32 - addons: { apt: { sources: *TS, packages: [ "g++-7-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-7-m64 - addons: { apt: { sources: *TS, packages: [ "g++-7" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m32 - addons: { apt: { sources: *TS, packages: [ "g++-8-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m64 - addons: { apt: { sources: *TS, packages: [ "g++-8" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m32 B=debug - addons: { apt: { sources: *TS, packages: [ "g++-8-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m64 B=debug - addons: { apt: { sources: *TS, packages: [ "g++-8" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - # must use sudo CAP_SYS_PTRACE for sanitize - see https://github.com/travis-ci/travis-ci/issues/9033 - sudo: true - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m64 B=debug+sanitize - addons: { apt: { sources: *TS, packages: [ "g++-8" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - # must use sudo CAP_SYS_PTRACE for sanitize - see https://github.com/travis-ci/travis-ci/issues/9033 - sudo: true - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m64 B=sanitize - addons: { apt: { sources: *TS, packages: [ "g++-8" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - os: linux - dist: trusty - compiler: gcc - env: C=gcc-8-m64 B=valgrind T=valgrind - addons: { apt: { sources: *TS, packages: [ "g++-8", valgrind ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: xenial - compiler: gcc - env: C=gcc-9-m32 - addons: { apt: { sources: *XS, packages: [ "g++-9-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: xenial - compiler: gcc - env: C=gcc-9-m64 - addons: { apt: { sources: *XS, packages: [ "g++-9" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: precise - compiler: clang - env: C=clang-3.4-m32 - addons: { apt: { packages: [ "g++-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: precise - compiler: clang - env: C=clang-3.4-m64 - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.5-m32 - addons: { apt: { sources: *PS, packages: [ "clang-3.5", "g++-6-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.5-m64 - addons: { apt: { sources: *PS, packages: [ "clang-3.5" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.6-m32 - addons: { apt: { sources: *PS, packages: [ "clang-3.6", "g++-6-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.6-m64 - addons: { apt: { sources: *PS, packages: [ "clang-3.6" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.7-m32 - addons: { apt: { sources: *PS, packages: [ "clang-3.7", "g++-6-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.7-m64 - addons: { apt: { sources: *PS, packages: [ "clang-3.7" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.8-m32 - addons: { apt: { sources: *PS, packages: [ "clang-3.8", "g++-6-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ AND env(TB_OS_linux_precise_llvm) = 1 - os: linux - dist: precise - compiler: clang - env: C=clang-3.8-m64 - addons: { apt: { sources: *PS, packages: [ "clang-3.8" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-3.9-m32 - addons: { apt: { sources: *TS, packages: [ "clang-3.9", "g++-7-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-3.9-m64 - addons: { apt: { sources: *TS, packages: [ "clang-3.9" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-4.0-m32 - addons: { apt: { sources: *TS, packages: [ "clang-4.0", "g++-7-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-4.0-m64 - addons: { apt: { sources: *TS, packages: [ "clang-4.0" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-5.0-m32 - addons: { apt: { sources: *TS, packages: [ "clang-5.0", "g++-7-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-5.0-m64 - addons: { apt: { sources: *TS, packages: [ "clang-5.0" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-6.0-m32 - addons: { apt: { sources: *TS, packages: [ "clang-6.0", "g++-7-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-6.0-m64 - addons: { apt: { sources: *TS, packages: [ "clang-6.0" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - # must use sudo CAP_SYS_PTRACE for sanitize - see https://github.com/travis-ci/travis-ci/issues/9033 - sudo: true - os: linux - dist: trusty - compiler: clang - env: C=clang-6.0-m64 B=debug+sanitize - addons: { apt: { sources: *TS, packages: [ "clang-6.0" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - # must use sudo CAP_SYS_PTRACE for sanitize - see https://github.com/travis-ci/travis-ci/issues/9033 - sudo: true - os: linux - dist: trusty - compiler: clang - env: C=clang-6.0-m64 B=sanitize - addons: { apt: { sources: *TS, packages: [ "clang-6.0" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-6.0-m64 B=debug+scan-build - addons: { apt: { sources: *TS, packages: [ "clang-6.0", "clang-tools-6.0" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[4-9]$/ - os: linux - dist: trusty - compiler: clang - env: C=clang-6.0-m64 B=scan-build - addons: { apt: { sources: *TS, packages: [ "clang-6.0", "clang-tools-6.0" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: xenial - compiler: clang - env: C=clang-7-m32 - addons: { apt: { sources: *XS, packages: [ "clang-7", "g++-9-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[2-9]$/ - os: linux - dist: xenial - compiler: clang - env: C=clang-7-m64 - addons: { apt: { sources: *XS, packages: [ "clang-7" ] } } - - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: xenial - compiler: clang - env: C=clang-8-m32 - addons: { apt: { sources: *XS, packages: [ "clang-8", "g++-9-multilib", "zlib1g-dev:i386" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: linux - dist: xenial - compiler: clang - env: C=clang-8-m64 - addons: { apt: { sources: *XS, packages: [ "clang-8" ] } } - - # Ubuntu 12.04 cross compilers - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-9]$/ - os: linux - dist: precise - compiler: gcc - env: CROSS=arm-linux-gnueabi C=gcc-4.6 T=qemu - addons: { apt: { packages: [ "g++-arm-linux-gnueabi", "qemu-user" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-9]$/ - os: linux - dist: precise - compiler: gcc - env: CROSS=arm-linux-gnueabihf C=gcc-4.6 T=qemu - addons: { apt: { packages: [ "g++-arm-linux-gnueabihf", "qemu-user" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-9]$/ - os: linux - dist: precise - compiler: gcc - env: CROSS=i386-w64-mingw32 C=gcc-4.6 T=wine - addons: { apt: { packages: [ "binutils-mingw-w64-i686", "g++-mingw-w64-i686", "wine" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-9]$/ - os: linux - dist: precise - compiler: gcc - env: CROSS=x86_64-w64-mingw32 C=gcc-4.6 T=wine - addons: { apt: { packages: [ "binutils-mingw-w64-x86-64", "g++-mingw-w64-x86-64", "wine" ] } } - - # Ubuntu 16.04 cross compilers - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-90]$/ - os: linux - dist: xenial - compiler: gcc - env: CROSS=mips-linux-gnu C=gcc-5 T=qemu - addons: { apt: { packages: [ "g++-5-mips-linux-gnu", "qemu-user" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-90]$/ - os: linux - dist: xenial - compiler: gcc - env: CROSS=mipsel-linux-gnu C=gcc-5 T=qemu - addons: { apt: { packages: [ "g++-5-mipsel-linux-gnu", "qemu-user" ] } } - - if: env(TB_OS_linux) = 1 AND env(TB_LEVEL) =~ /^[5-90]$/ - os: linux - dist: xenial - compiler: gcc - env: CROSS=powerpc-linux-gnu C=gcc-5 T=qemu - addons: { apt: { packages: [ "g++-5-powerpc-linux-gnu", "qemu-user" ] } } - - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: osx - osx_image: xcode6.4 - compiler: clang - # must use debug build or else we get "ld: internal error: atom not found" when linking - env: C=clang-602-m32 B=debug - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: osx - osx_image: xcode6.4 - compiler: clang - # must use debug build or else we get "ld: internal error: atom not found" when linking - env: C=clang-602-m64 B=debug - - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: osx - osx_image: xcode7.3 - compiler: clang - env: C=clang-703-m32 - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: osx - osx_image: xcode7.3 - compiler: clang - env: C=clang-703-m64 - - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: osx - osx_image: xcode8.3 - compiler: clang - env: C=clang-802-m32 - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[6-9]$/ - os: osx - osx_image: xcode8.3 - compiler: clang - env: C=clang-802-m64 - - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: osx - osx_image: xcode9.4 - compiler: clang - env: C=clang-902-m32 - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: osx - osx_image: xcode9.4 - compiler: clang - env: C=clang-902-m64 - - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[3-9]$/ - os: osx - osx_image: xcode10.3 - compiler: clang - env: C=clang-1001-m64 - - - if: env(TB_OS_osx) = 1 AND env(TB_LEVEL) =~ /^[1-9]$/ - os: osx - osx_image: xcode11.3 - compiler: clang - env: C=clang-1100-m64 - addons: { homebrew: { packages: [ "coreutils" ] } } - -install: - - uname -a; pwd; id; umask - - cat /etc/os-release || true - - | - cd / - if [[ $TRAVIS_OS_NAME == linux ]]; then - if [[ $B =~ (^|\+)coverage($|\+) ]]; then - travis_retry pip install --user cpp-coveralls - fi - fi - if [[ $TRAVIS_OS_NAME == osx ]]; then - if ! gsha256sum /dev/null 2>/dev/null; then travis_retry brew install coreutils; fi - if [[ $B =~ (^|\+)coverage($|\+) ]]; then - travis_retry brew install lcov - travis_retry pip install --user cpp-coveralls - fi - fi - - git --version && bash --version - - umask 022; cd $TRAVIS_BUILD_DIR && mkdir -p ../deps ../build/travis - - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ - - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ - - cd ../deps && travis_retry git clone https://github.com/upx/upx-testsuite - - | - if [[ $X =~ (^|\+)rebuild-stubs($|\+) ]]; then - cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ - fi - -script: - - success=1 - - cd $TRAVIS_BUILD_DIR || success=0 - - test $success = 0 || bash ./.github/travis_build.sh || success=0 - - test $success = 0 || bash ./.github/travis_testsuite_1.sh || success=0 - - test $success = 0 || bash ./.github/travis_deploy.sh || success=0 - - test $success = 1 - -# vim:set ts=2 sw=2 et: