From 01c6b661313e8c5d350228665acbda4b8b675382 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Tue, 5 Mar 2019 13:20:10 -0800 Subject: Remove the toolchain in riscv-tools The toolchain pointed to by riscv-tools hasn't been maintained for more than a year now. This pointer was necessary when we had out-of-tree ports of the various toolchain components, but now that everything is upstream toolchains can be obtained via dozens of standard mechanisms. Having a broken toolchain so publicly visible causes everyone headaches, so unless someone wants to step up and maintain this I'm going to remove it. In order to keep the Travis running, I've gone ahead and used crosstool-ng to build a toolchain. This should be a lot more reliable than the old riscv-gnu-toolchain based approach. --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 1614a25..d4a41a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,7 @@ env: - RISCV="/home/travis/riscv_install" - MAKEFLAGS="-j2" - PATH="/home/travis/riscv_install/bin:$PATH" + - CROSSTOOL_VERSION=1.24.0-rc3 before_install: # make install destination @@ -52,5 +53,12 @@ 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 + - make -C crosstool-ng-$CROSSTOOL_VERSION + - make -C crosstool-ng-$CROSSTOOL_VERSION install + - ct-ng riscv64-unknown-elf + - ct-ng build - ./build.sh - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From 1e246980a4172c7764fc4399cc2fc6ee04d01caf Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Fri, 22 Mar 2019 16:36:39 -0700 Subject: Add missing help2man package --- .travis.yml | 1 + 1 file changed, 1 insertion(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index d4a41a7..6a9b710 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ addons: - bison - flex - texinfo + - help2man - python-pexpect - libusb-1.0-0-dev - device-tree-compiler -- cgit v1.1 From a5148d5a79600d40fa15d2779218df2583cf48e4 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Fri, 22 Mar 2019 16:58:02 -0700 Subject: Back out of crosstools directory after building it --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 6a9b710..abdd9b3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,7 +56,7 @@ install: travis_wait 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 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 -- cgit v1.1 From 4efa55a240e2640054489aeb2cc99570d1c28b53 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sat, 23 Mar 2019 17:19:44 -0700 Subject: Don't set CC, which crosstool-ng complains about --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index abdd9b3..8ead553 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,8 +45,7 @@ before_install: - cd riscv-openocd - git submodule update --init - cd .. - # actually use new gcc - - export CXX=g++-4.8 CC=gcc-4.8 + - unset CC CXX # extra time duing long builds install: travis_wait -- cgit v1.1 From fa8b0ff1abef4ab66a421a94bca39a989dcbb236 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sat, 23 Mar 2019 19:03:18 -0700 Subject: Add travis_wait directive --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 8ead553..a28e4da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,6 @@ script: - make -C crosstool-ng-$CROSSTOOL_VERSION - make -C crosstool-ng-$CROSSTOOL_VERSION install - ct-ng riscv64-unknown-elf - - ct-ng build + - travis_wait 100 ct-ng build - ./build.sh - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From c590df753625633d251c999f1133e1666a896f49 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sun, 24 Mar 2019 17:38:44 -0700 Subject: Retry ct-ng build because of occasional newlib download failure --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index a28e4da..b0d1588 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,7 @@ script: - make -C crosstool-ng-$CROSSTOOL_VERSION - make -C crosstool-ng-$CROSSTOOL_VERSION install - ct-ng riscv64-unknown-elf - - travis_wait 100 ct-ng build + # 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 - ./build.sh - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From 77821c141c7737457b3e3ef54b4e2de4fbc50b7c Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sun, 24 Mar 2019 19:41:47 -0700 Subject: Speed up build a bit by disabling graphite and multilib --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index b0d1588..5965d14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,10 @@ script: - 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 - ./build.sh -- cgit v1.1 From ee54055545715a31398e6eb495dbcf3fed9f00d0 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sun, 24 Mar 2019 22:29:35 -0700 Subject: Add toolchain to build path --- .travis.yml | 1 + 1 file changed, 1 insertion(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 5965d14..bd74d2b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,6 +31,7 @@ env: global: - RISCV="/home/travis/riscv_install" - MAKEFLAGS="-j2" + - PATH="/home/travis/.build/riscv64-unknown-elf/buildtools/bin:$PATH" - PATH="/home/travis/riscv_install/bin:$PATH" - CROSSTOOL_VERSION=1.24.0-rc3 -- cgit v1.1 From 8d7ac56f48981a42ae0bace84ef59c14e0c38856 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sun, 24 Mar 2019 23:09:33 -0700 Subject: Hack up the toolchain paths --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index bd74d2b..abc8bc1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -66,5 +66,10 @@ script: - 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 + # 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 + # Actually test this repo - ./build.sh - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From b1ef25c962a8449e9108013481a21ae377b9036e Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 25 Mar 2019 00:03:52 -0700 Subject: fix PATH and add sanity check --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index abc8bc1..d6b0471 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,7 +31,7 @@ env: global: - RISCV="/home/travis/riscv_install" - MAKEFLAGS="-j2" - - PATH="/home/travis/.build/riscv64-unknown-elf/buildtools/bin:$PATH" + - PATH="$TRAVIS_BUILD_DIR/.build/riscv64-unknown-elf/buildtools/bin:$PATH" - PATH="/home/travis/riscv_install/bin:$PATH" - CROSSTOOL_VERSION=1.24.0-rc3 @@ -66,6 +66,7 @@ script: - 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 -- cgit v1.1 From 4ff55aa8e96066a6136cacd31decf3cd8e7b73e6 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 25 Mar 2019 01:26:48 -0700 Subject: Fix openocd build by removing crosstools automake/aclocal --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index d6b0471..958603f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,6 +71,9 @@ script: - 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 + # Remove new autotools from path + - rm -f .build/riscv64-unknown-elf/buildtools/bin/automake* + - rm -f .build/riscv64-unknown-elf/buildtools/bin/aclocal* # Actually test this repo - ./build.sh - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From f93205e8dc7a50ecc05f3716351615019f95ef20 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 25 Mar 2019 03:30:16 -0700 Subject: Put gcc in expected place for debug tests --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 958603f..1530321 100644 --- a/.travis.yml +++ b/.travis.yml @@ -74,6 +74,10 @@ script: # Remove new autotools from path - rm -f .build/riscv64-unknown-elf/buildtools/bin/automake* - rm -f .build/riscv64-unknown-elf/buildtools/bin/aclocal* - # Actually test this repo + # 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/buildtools/bin/riscv64-unknown-elf-gdb $RISCV/bin + # Run debug tests - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From 1c7928ed88a6f5892668da2c2d9618bac96321dd Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 25 Mar 2019 09:31:03 -0700 Subject: copy libc and libgloss, too --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 1530321..1645171 100644 --- a/.travis.yml +++ b/.travis.yml @@ -71,6 +71,8 @@ script: - 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* -- cgit v1.1 From 2ead9e45fee7764e46e9347a329de42781a50efb Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 25 Mar 2019 11:41:08 -0700 Subject: fix gdb path --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 1645171..2f3c5e8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -80,6 +80,6 @@ script: - ./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/buildtools/bin/riscv64-unknown-elf-gdb $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 - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check -- cgit v1.1 From a924da58ab64f0cc60350d7a8f70014d34aa588c Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 25 Mar 2019 18:21:00 -0700 Subject: Expect 11 debug test failures We need a GDB with RISC-V XML target description, which isn't in a release yet, so isn't available through crosstools. Additionally, the riscv-tests/debug scripts will need to be updated to handle different GDB output when printing FP registers. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '.travis.yml') diff --git a/.travis.yml b/.travis.yml index 2f3c5e8..a16ac48 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,5 +81,5 @@ script: # 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 - - PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages make -C riscv-tests/build debug-check + # 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" -- cgit v1.1