[SOLVED] Rust-lld: error: duplicate symbol: __aeabi_d2f

Hello, I'm trying to build this project for DM42 target. However, there is a "duplicate symbol" error:


...rscalc$ make rscalc.pgm
cargo build --target thumbv7em-none-eabihf -Z build-std=core,alloc --release --no-default-features --features dm42
   Compiling rscalc v0.1.0 (/home/.../Github/rscalc)
...
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/tmp/rustcY2OSNF/symbols.o" "/home/.../Github/rscalc/target/thumbv7em-none-eabihf/release/deps/rscalc-201d8df9902ac16b.rscalc.b3b4f384-cgu.0.rcgu.o" "--as-needed" "-L" "/home/.../Github/rscalc/target/thumbv7em-none-eabihf/release/deps" "-L" "/home/.../Github/rscalc/target/release/deps" "-L" "/home/.../Github/rscalc/intel_dfp/lib/dm42" "-L" "/home/vit/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-Bstatic" "/tmp/rustcY2OSNF/libintel_dfp-ed77c3f3c9358941.rlib" "/home/.../Github/rscalc/target/thumbv7em-none-eabihf/release/deps/libcompiler_builtins-e1135fe2bf7e5312.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/vit/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/thumbv7em-none-eabihf/lib" "-o" "/home/.../Github/rscalc/target/thumbv7em-none-eabihf/release/deps/rscalc-201d8df9902ac16b" "--gc-sections" "-Tdmcp/stm32_program.ld"
  = note: rust-lld: error: duplicate symbol: __aeabi_d2f
          >>> defined at rscalc.b3b4f384-cgu.0
          >>>            /home/.../Github/rscalc/target/thumbv7em-none-eabihf/release/deps/rscalc-201d8df9902ac16b.rscalc.b3b4f384-cgu.0.rcgu.o:(__aeabi_d2f)
          >>> defined at compiler_builtins.bc3efce5-cgu.0
          >>>            compiler_builtins-e1135fe2bf7e5312.compiler_builtins.bc3efce5-cgu.0.rcgu.o:(.text.__aeabi_d2f+0x1) in archive /home/.../Github/rscalc/target/thumbv7em-none-eabihf/release/deps/libcompiler_builtins-e1135fe2bf7e5312.rlib

What could be a reason?

It seems that the problem was in src/dm42/device.rs, I've commented this part out and the build was linked correctly:

// #[no_mangle]
// This is missing from the linked C library but it can be provided by Rust
//pub extern "C" fn __aeabi_d2f(value: f64) -> f32 {
// value as f32
//}

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.