Skip to content

"LLVM ERROR: Not supported instr" on avr-unknown-gnu-atmega328 #400

Closed
rust-lang/rust
#96845
@sobolevn

Description

@sobolevn

I am experiencing a bug when trying to compile my application for Arduino Uno.

Probably, there's a regression somewhere.
Because, it used to work 1 month ago. CI: https://travis-ci.com/github/Rahix/avr-hal/builds/207260821

Original issue: Rahix/avr-hal#124

Output

Step 6/6 : RUN cargo +nightly build --example uno-blink
 ---> Running in fde0189b88d8
    Updating git repository `https://github.com/Rahix/ufmt.git`
    Updating crates.io index
 Downloading crates ...
  Downloaded nb v0.1.3
  Downloaded paste v1.0.4
  Downloaded rustc_version v0.2.3
  Downloaded semver-parser v0.7.0
  Downloaded quote v1.0.8
  Downloaded proc-macro2 v1.0.24
  Downloaded proc-macro-hack v0.5.19
  Downloaded vcell v0.1.3
  Downloaded void v1.0.2
  Downloaded cfg-if v0.1.10
  Downloaded unicode-xid v0.2.1
  Downloaded syn v1.0.58
  Downloaded avr-device-macros v0.2.3
  Downloaded avr-device v0.2.3
  Downloaded semver v0.9.0
  Downloaded panic-halt v0.2.0
  Downloaded nb v1.0.0
  Downloaded embedded-hal v0.2.4
  Downloaded bare-metal v0.2.5
 Downloading crates ...
  Downloaded cc v1.0.60
  Downloaded compiler_builtins v0.1.39
  Downloaded getopts v0.2.21
  Downloaded hashbrown v0.9.0
  Downloaded addr2line v0.14.0
  Downloaded gimli v0.23.0
  Downloaded miniz_oxide v0.4.0
  Downloaded adler v0.2.3
  Downloaded object v0.22.0
  Downloaded unicode-width v0.1.8
  Downloaded rustc-demangle v0.1.18
  Downloaded libc v0.2.79
   Compiling compiler_builtins v0.1.39
   Compiling core v0.0.0 (/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
   Compiling proc-macro2 v1.0.24
   Compiling unicode-xid v0.2.1
   Compiling syn v1.0.58
   Compiling semver-parser v0.7.0
   Compiling proc-macro-hack v0.5.19
   Compiling paste v1.0.4
   Compiling semver v0.9.0
   Compiling rustc_version v0.2.3
   Compiling quote v1.0.8
   Compiling bare-metal v0.2.5
   Compiling rustc-std-workspace-core v1.99.0 (/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
LLVM ERROR: Not supported instr: <MCInst 258 <MCOperand Reg:1> <MCOperand Imm:15> <MCOperand Reg:40>>
error: could not compile `compiler_builtins`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
The command '/bin/sh -c cargo +nightly build --example uno-blink' returned a non-zero code: 101

With --release and --verbose:

  Compiling embedded-hal v0.2.4
     Running `rustc --crate-name embedded_hal /Users/sobolev/.cargo/registry/src/github.com-1ecc6299db9ec823/embedded-hal-0.2.4/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=s -C panic=abort -C linker-plugin-lto -C codegen-units=1 -C debuginfo=2 --cfg 'feature="unproven"' -C metadata=503a59343e486e01 -C extra-filename=-503a59343e486e01 --out-dir /Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps --target /Users/sobolev/Desktop/avr-hal/avr-specs/avr-atmega328p.json -L dependency=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps -L dependency=/Users/sobolev/Desktop/avr-hal/target/release/deps --extern 'noprelude:compiler_builtins=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps/libcompiler_builtins-afa03ed941a63b4f.rmeta' --extern 'noprelude:core=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps/libcore-30308749cc1695e3.rmeta' --extern nb=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps/libnb-e03ff2173c96de6e.rmeta --extern void=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps/libvoid-4cf9d65885018701.rmeta -Z unstable-options --cap-lints allow`
LLVM ERROR: Not supported instr: <MCInst 258 <MCOperand Reg:1> <MCOperand Imm:15> <MCOperand Reg:40>>
error: could not compile `compiler_builtins`

Caused by:
  process didn't exit successfully: `rustc --crate-name compiler_builtins /Users/sobolev/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.39/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=s -C panic=abort -C linker-plugin-lto -C codegen-units=1 -C debuginfo=2 --cfg 'feature="compiler-builtins"' --cfg 'feature="core"' --cfg 'feature="default"' --cfg 'feature="rustc-dep-of-std"' -C metadata=afa03ed941a63b4f -C extra-filename=-afa03ed941a63b4f --out-dir /Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps --target /Users/sobolev/Desktop/avr-hal/avr-specs/avr-atmega328p.json -Z force-unstable-if-unmarked -L dependency=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps -L dependency=/Users/sobolev/Desktop/avr-hal/target/release/deps --extern core=/Users/sobolev/Desktop/avr-hal/target/avr-atmega328p/release/deps/librustc_std_workspace_core-2709fdbb3f7a5de3.rmeta --cap-lints allow --cfg 'feature="unstable"'` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error: build failed

Reproduction

  1. Clone https://github.com/Rahix/avr-hal
  2. Add this Dockefile:
FROM rustlang/rust:nightly-slim

RUN apt-get update \
  && apt-get install --no-install-recommends -y \
    avr-libc \
    binutils-avr \
    gcc-avr \
  && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
  && apt-get clean -y && rm -rf /var/lib/apt/lists/*

COPY . /code

WORKDIR /code/boards/arduino-uno

RUN rustup component add rust-src
RUN cargo +nightly build --example uno-blink
  1. Run docker build --tag=ard .

Versions

info: The currently active `rustc` version is `rustc 1.51.0-nightly (c8915eebe 2021-01-07)`
» avr-gcc --version
avr-gcc  9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions