Skip to content

Error: linking with avr-gcc failed #149

Closed
@jonahbron

Description

@jonahbron

I'm working on a program that uses @Rahix's avr-hal and the w5500 driver crate. However when compiling, I get this error:

$ export RUST_TARGET_PATH="/home/jonah/Projects/smart-plug/"
$ export RUSTUP_TOOLCHAIN=avr-toolchain
$ export XARGO_RUST_SRC="/home/jonah/Projects/rust/src"
$ xargo build --target avr-atmega328p --release
error: linking with `avr-gcc` failed: exit code: 1
  |
  = note: "avr-gcc" "-Os" "-mmcu=atmega328p" "-L" "/home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib" "/home/jonah/Projects/smart-plug/target/avr-atmega328p/release/deps/smart_plug-c760f2efbebaee9b.smart_plug.17dox426-cgu.0.rcgu.o" "-o" "/home/jonah/Projects/smart-plug/target/avr-atmega328p/release/deps/smart_plug-c760f2efbebaee9b.elf" "-Wl,--gc-sections" "-L" "/home/jonah/Projects/smart-plug/target/avr-atmega328p/release/deps" "-L" "/home/jonah/Projects/smart-plug/target/release/deps" "-L" "/home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib" "-Wl,--start-group" "-Wl,--end-group" "-Wl,-Bstatic" "/home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib" "-Wl,-Bdynamic" "-Wl,--gc-sections"
  = note: /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_24':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x35c): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_26':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x37c): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_51':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x7ee): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_65':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x924): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_89':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xbde): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_101':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xcfc): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB4_103':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xd22): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB12_17':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x2df6): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB12_23':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x2e52): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x2e64): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB18_17':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x5e84): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB18_23':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x5ee0): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x5ef4): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB24_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x89c2): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB24_12':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x89dc): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB25_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x8aa6): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB26_8':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x8bfc): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB30_8':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x9210): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB30_10':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x921a): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB31_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x92da): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB32_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x940e): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB36_76':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xa2f0): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB36_78':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xa352): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB39_46':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xc024): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xc044): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xc056): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xc070): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB39_75':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xc526): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB39_78':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xc5a6): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB48_3':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xdebc): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB62_53':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0xfd98): undefined reference to `__divmodti4'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB64_49':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1091e): undefined reference to `__divmodti4'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB74_6':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11b7a): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11b8c): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11ba2): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB74_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11bb4): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB75_6':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11c50): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11c60): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11c76): undefined reference to `__ashrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB75_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11c88): undefined reference to `__ashrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB76_6':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11d5e): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11d6e): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11d84): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB76_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x11d96): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB83_21':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x12dc2): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x12dd6): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB84_21':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x134a4): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x134c2): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB85_24':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x13bda): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x13bf6): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB90_93':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x15668): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `_$LT$i32$u20$as$u20$compiler_builtins..int..Int$GT$::wrapping_shl::h538766759685e63f':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x18eba): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB148_9':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1aa00): undefined reference to `__divmodti4'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB149_9':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1ac50): undefined reference to `__divmodti4'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `_$LT$u32$u20$as$u20$compiler_builtins..int..WideInt$GT$::wide_shift_left::h2260981b3eb5ef04':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b7fa): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b814): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b83a): undefined reference to `__ashlsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB169_3':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b8e0): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b8f8): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b914): undefined reference to `__ashlsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b942): undefined reference to `__lshrsi3'
          /home/jonah/.xargo/lib/rustlib/avr-atmega328p/lib/libcompiler_builtins-9a1ff32ee7e2d645.rlib(compiler_builtins-9a1ff32ee7e2d645.compiler_builtins.d7w6r55k-cgu.0.rcgu.o): In function `LBB169_7':
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b984): undefined reference to `__lshrsi3'
          compiler_builtins.d7w6r55k-cgu.0:(.progmem.data+0x1b99c): undefined reference to `__ashlsi3'
          collect2: error: ld returned 1 exit status
          

error: aborting due to previous error

Because these clearly aren't normal Rust compiler errors, it seems like this might be a bug with the Rust compiler itself. Does anything obvious stand out as a problem here? Could there be a problem with my setup? I just updated and re-compiled avr-rust today to make sure. Note that this error only occurs if I invoke the receive method of w5500 in my application. Full application code can be found here:

https://github.com/jonahbron/smart-plug/tree/c9f8994

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