language: cpp # run on new infrastructure sudo: false cache: apt # required packages to install addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.8 - g++-4.8 - gperf - autoconf - automake - autotools-dev - libmpc-dev - libmpfr-dev - libgmp-dev - gawk - build-essential - bison - flex - texinfo - help2man - python-pexpect - libusb-1.0-0-dev - device-tree-compiler env: global: - RISCV="/home/travis/riscv_install" - MAKEFLAGS="-j2" - PATH="$TRAVIS_BUILD_DIR/.build/riscv64-unknown-elf/buildtools/bin:$PATH" - PATH="/home/travis/riscv_install/bin:$PATH" - CROSSTOOL_VERSION=1.24.0-rc3 before_install: # make install destination - mkdir -p $RISCV # don't forget to clone riscv-tests/env - cd riscv-tests - git submodule update --init - cd .. # openocd also needs submodules - cd riscv-openocd - git submodule update --init - cd .. - unset CC CXX # extra time duing long builds install: travis_wait # pexpect ends up in /usr/lib/python2.7/dist-packages, which is not part of the # default python path. script: - mkdir ~/src - curl http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-$CROSSTOOL_VERSION.tar.xz | tar -xJp - cd crosstool-ng-$CROSSTOOL_VERSION; ./configure --prefix=$RISCV; cd .. - make -C crosstool-ng-$CROSSTOOL_VERSION - make -C crosstool-ng-$CROSSTOOL_VERSION install - ct-ng riscv64-unknown-elf - echo CT_CC_GCC_USE_GRAPHITE=n >> .config - echo CT_ISL_NEEDED=n >> .config - echo CT_ISL=n >> .config - echo CT_MULTILIB=n >> .config # Newlib download fails periodically, so retry the build a few times. - travis_wait 100 ct-ng build || travis_wait 100 ct-ng build || travis_wait 100 ct-ng build - which riscv64-unknown-elf-gcc # Work around toolchain path issues - cp .build/riscv64-unknown-elf/build/build-libc/riscv64-unknown-elf/libgloss/riscv/crt0.o .build/riscv64-unknown-elf/buildtools/lib/gcc/riscv64-unknown-elf/8.3.0 - cp -r .build/src/newlib-3.1.0.20181231/newlib/libc/include .build/riscv64-unknown-elf/buildtools/lib/gcc/riscv64-unknown-elf/8.3.0/../../../../riscv64-unknown-elf/include - cp .build/riscv64-unknown-elf/build/build-libc/riscv64-unknown-elf/newlib/libm.a .build/riscv64-unknown-elf/buildtools/lib/gcc/riscv64-unknown-elf/8.3.0 - cp .build/riscv64-unknown-elf/build/build-libc/riscv64-unknown-elf/newlib/libc.a .build/riscv64-unknown-elf/buildtools/lib/gcc/riscv64-unknown-elf/8.3.0 - cp .build/riscv64-unknown-elf/build/build-libc/riscv64-unknown-elf/libgloss/riscv/libgloss.a .build/riscv64-unknown-elf/buildtools/lib/gcc/riscv64-unknown-elf/8.3.0 # Remove new autotools from path - rm -f .build/riscv64-unknown-elf/buildtools/bin/automake* - rm -f .build/riscv64-unknown-elf/buildtools/bin/aclocal* # Actually build this repo - ./build.sh # Put compiler in expected place for debug tests - ln -s $TRAVIS_BUILD_DIR/.build/riscv64-unknown-elf/buildtools/bin/riscv64-unknown-elf-gcc $RISCV/bin - ln -s $TRAVIS_BUILD_DIR/.build/riscv64-unknown-elf/build/build-gdb-cross/gdb/gdb $RISCV/bin/riscv64-unknown-elf-gdb # Run debug tests. Currently we expect 11 failures. - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check | grep "11 tests returned fail"