Index: .travis.yml ================================================================== --- .travis.yml +++ .travis.yml @@ -1,33 +1,85 @@ language: c matrix: include: # Linux + - os: linux + compiler: clang + dist: precise + sudo: required + + - os: linux + compiler: gcc + dist: precise + sudo: required + + - os: linux + arch: arm64 + compiler: clang + dist: precise + sudo: required + + - os: linux + arch: arm64 + compiler: gcc + dist: precise + sudo: required + + - os: linux + arch: ppc64le + compiler: clang + dist: precise + sudo: required + + - os: linux + arch: ppc64le + compiler: gcc + dist: precise + sudo: required + + # Clang seems to have broken exceptions on s390x + #- os: linux + # arch: s390x + # compiler: clang + # dist: precise + # sudo: required + + - os: linux + arch: s390x + compiler: gcc + dist: precise + sudo: required + + - os: linux + compiler: clang + dist: trusty + sudo: required + - os: linux compiler: gcc - dist: bionic + dist: trusty sudo: required + - os: linux compiler: clang - dist: bionic + dist: xenial sudo: required + - os: linux compiler: gcc dist: xenial sudo: required + - os: linux compiler: clang - dist: xenial + dist: bionic sudo: required + - os: linux compiler: gcc - dist: trusty - sudo: required - - os: linux - compiler: clang - dist: trusty + dist: bionic sudo: required # macOS - os: osx osx_image: xcode11.2 @@ -189,16 +241,20 @@ env: - config=wii before_install: - if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then - if ! sudo apt-get -qq update >/tmp/apt_log 2>&1; then - cat /tmp/apt_log; - exit 1; - fi; - if ! sudo apt-get -qq install -y gobjc-multilib >/tmp/apt_log 2>&1; - then + case "$TRAVIS_CPU_ARCH" in + amd64 | s390x) + gobjc_pkg="gobjc-multilib"; + ;; + *) + gobjc_pkg="gobjc"; + ;; + esac; + + if ! sudo apt-get -qq install -y $gobjc_pkg >/tmp/apt_log 2>&1; then cat /tmp/apt_log; exit 1; fi; fi @@ -224,11 +280,11 @@ wget -q https://franke.ms/download/amiga-gcc.tgz; tar -C / -xzf amiga-gcc.tgz; fi script: - - echo -e '%s/-DSTDOUT$/&_SIMPLE/\nwq' | ed -s tests/Makefile + - sed -i 's/-DSTDOUT$/&_SIMPLE/' tests/Makefile - build() { if ! git clean -fxd >/tmp/clean_log 2>&1; then cat /tmp/clean_log; exit 1; @@ -252,26 +308,41 @@ } - if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then build_32_64() { build OBJC="$CC" $@; - build OBJC="$CC -m32" --host=i686-pc-linux-gnu $@; + + case "$TRAVIS_CPU_ARCH" in + amd64) + build OBJC="$CC -m32" + --host=i686-pc-linux-gnu $@; + ;; + s390x) + build OBJC="$CC -m31" + --host=s390-pc-linux-gnu $@; + ;; + esac }; build_32_64; build_32_64 --enable-seluid24; - build_32_64 --disable-threads; - build_32_64 --disable-threads --disable-sockets; - build_32_64 --disable-threads --disable-files; - build_32_64 --disable-threads --disable-sockets --disable-files; - build_32_64 --disable-sockets; - build_32_64 --disable-sockets --disable-files; - build_32_64 --disable-files; - build_32_64 --disable-shared; - build_32_64 --disable-shared --enable-seluid24; build_32_64 --disable-compiler-tls; - build_32_64 --disable-compiler-tls --disable-threads; + + true The following are not CPU-dependent, so only run them on amd64; + if [ "$TRAVIS_CPU_ARCH" = "amd64" ]; then + build_32_64 --disable-threads; + build_32_64 --disable-threads --disable-sockets; + build_32_64 --disable-threads --disable-files; + build_32_64 --disable-threads --disable-sockets + --disable-files; + build_32_64 --disable-sockets; + build_32_64 --disable-sockets --disable-files; + build_32_64 --disable-files; + build_32_64 --disable-shared; + build_32_64 --disable-shared --enable-seluid24; + build_32_64 --disable-compiler-tls --disable-threads; + fi; fi - if [ "$TRAVIS_OS_NAME" = "osx" -a -z "$config" ]; then build_mac_32_64() { build $@; @@ -361,13 +432,5 @@ export DEVKITPRO="/opt/devkitpro"; export PATH="$DEVKITPRO/devkitPPC/bin:$PATH"; build ac_cv_prog_wiiload= --host=powerpc-eabi --with-wii; fi - -notifications: - webhooks: - urls: - - "https://scalar.vector.im/api/neb/services/hooks/dHJhdmlzLWNpLyU0MGpzJTNBbmlsLmltLyUyMUZZSVhDS2dOZlltd2Z4ZFJkZiUzQW5pbC5pbQ" - on_success: always - on_failure: always - on_start: never