From f8a32e9a4efcbbbf79cbaeec9c3f4346e5348d76 Mon Sep 17 00:00:00 2001 From: DevJPM Date: Sat, 7 Nov 2020 20:49:41 +0100 Subject: Bumped minimal tested LLVM version to 9 This bumps the minimal tested llvm version to 9. This should enable supporting newer LLVM features (and CPU extensions). --- .../host-x86_64/x86_64-gnu-llvm-8/Dockerfile | 59 ---------------------- .../host-x86_64/x86_64-gnu-llvm-9/Dockerfile | 59 ++++++++++++++++++++++ src/ci/github-actions/ci.yml | 4 +- 3 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 src/ci/docker/host-x86_64/x86_64-gnu-llvm-8/Dockerfile create mode 100644 src/ci/docker/host-x86_64/x86_64-gnu-llvm-9/Dockerfile (limited to 'src') diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-8/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-8/Dockerfile deleted file mode 100644 index bd046f802c8..00000000000 --- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-8/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM ubuntu:18.04 - -RUN apt-get update && apt-get install -y --no-install-recommends \ - g++ \ - g++-arm-linux-gnueabi \ - make \ - ninja-build \ - file \ - curl \ - ca-certificates \ - python2.7 \ - git \ - cmake \ - sudo \ - gdb \ - llvm-8-tools \ - libedit-dev \ - libssl-dev \ - pkg-config \ - zlib1g-dev \ - xz-utils \ - nodejs - -COPY scripts/sccache.sh /scripts/ -RUN sh /scripts/sccache.sh - -# using llvm-link-shared due to libffi issues -- see #34486 -ENV RUST_CONFIGURE_ARGS \ - --build=x86_64-unknown-linux-gnu \ - --llvm-root=/usr/lib/llvm-8 \ - --enable-llvm-link-shared \ - --set rust.thin-lto-import-instr-limit=10 - -ENV SCRIPT python2.7 ../x.py --stage 2 test --exclude src/tools/tidy && \ - # Run the `mir-opt` tests again but this time for a 32-bit target. - # This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have - # both 32-bit and 64-bit outputs updated by the PR author, before - # the PR is approved and tested for merging. - # It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`, - # despite having different output on 32-bit vs 64-bit targets. - # - # HACK(eddyb) `armv5te` is used (not `i686`) to support older LLVM than LLVM 9: - # https://github.com/rust-lang/compiler-builtins/pull/311#issuecomment-612270089. - # This also requires `--pass=build` because we can't execute the tests - # on the `x86_64` host when they're built as `armv5te` binaries. - # (we're only interested in the MIR output, so this doesn't matter) - python2.7 ../x.py --stage 2 test src/test/mir-opt --pass=build \ - --host='' --target=armv5te-unknown-linux-gnueabi && \ - # Run the UI test suite again, but in `--pass=check` mode - # - # This is intended to make sure that both `--pass=check` continues to - # work. - # - # FIXME: We ideally want to test this in 32-bit mode, but currently - # (due to the LLVM problems mentioned above) that isn't readily - # possible. - python2.7 ../x.py --stage 2 test src/test/ui --pass=check && \ - # Run tidy at the very end, after all the other tests. - python2.7 ../x.py --stage 2 test src/tools/tidy diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-9/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-9/Dockerfile new file mode 100644 index 00000000000..36c9238195c --- /dev/null +++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-9/Dockerfile @@ -0,0 +1,59 @@ +FROM ubuntu:18.04 + +RUN apt-get update && apt-get install -y --no-install-recommends \ + g++ \ + g++-arm-linux-gnueabi \ + make \ + ninja-build \ + file \ + curl \ + ca-certificates \ + python2.7 \ + git \ + cmake \ + sudo \ + gdb \ + llvm-9-tools \ + libedit-dev \ + libssl-dev \ + pkg-config \ + zlib1g-dev \ + xz-utils \ + nodejs + +COPY scripts/sccache.sh /scripts/ +RUN sh /scripts/sccache.sh + +# using llvm-link-shared due to libffi issues -- see #34486 +ENV RUST_CONFIGURE_ARGS \ + --build=x86_64-unknown-linux-gnu \ + --llvm-root=/usr/lib/llvm-9 \ + --enable-llvm-link-shared \ + --set rust.thin-lto-import-instr-limit=10 + +ENV SCRIPT python2.7 ../x.py --stage 2 test --exclude src/tools/tidy && \ + # Run the `mir-opt` tests again but this time for a 32-bit target. + # This enforces that tests using `// EMIT_MIR_FOR_EACH_BIT_WIDTH` have + # both 32-bit and 64-bit outputs updated by the PR author, before + # the PR is approved and tested for merging. + # It will also detect tests lacking `// EMIT_MIR_FOR_EACH_BIT_WIDTH`, + # despite having different output on 32-bit vs 64-bit targets. + # + # HACK(eddyb) `armv5te` is used (not `i686`) to support older LLVM than LLVM 9: + # https://github.com/rust-lang/compiler-builtins/pull/311#issuecomment-612270089. + # This also requires `--pass=build` because we can't execute the tests + # on the `x86_64` host when they're built as `armv5te` binaries. + # (we're only interested in the MIR output, so this doesn't matter) + python2.7 ../x.py --stage 2 test src/test/mir-opt --pass=build \ + --host='' --target=armv5te-unknown-linux-gnueabi && \ + # Run the UI test suite again, but in `--pass=check` mode + # + # This is intended to make sure that both `--pass=check` continues to + # work. + # + # FIXME: We ideally want to test this in 32-bit mode, but currently + # (due to the LLVM problems mentioned above) that isn't readily + # possible. + python2.7 ../x.py --stage 2 test src/test/ui --pass=check && \ + # Run tidy at the very end, after all the other tests. + python2.7 ../x.py --stage 2 test src/tools/tidy diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml index 031000d147c..9eea6243dfa 100644 --- a/src/ci/github-actions/ci.yml +++ b/src/ci/github-actions/ci.yml @@ -280,7 +280,7 @@ jobs: - name: mingw-check <<: *job-linux-xl - - name: x86_64-gnu-llvm-8 + - name: x86_64-gnu-llvm-9 <<: *job-linux-xl - name: x86_64-gnu-tools @@ -412,7 +412,7 @@ jobs: - name: x86_64-gnu-distcheck <<: *job-linux-xl - - name: x86_64-gnu-llvm-8 + - name: x86_64-gnu-llvm-9 env: RUST_BACKTRACE: 1 <<: *job-linux-xl -- cgit 1.4.1-3-g733a5