Skip to content

multiple rlib candidates for compiler_builtins found #334

Closed
@tomaka

Description

@tomaka

Sorry if this is not the right place to report this issue.

After upgrading to the latest nightly, my no_std project suddenly stopped compiling with this error:

error[E0465]: multiple rlib candidates for `compiler_builtins` found
  |
  = note: candidate #1: /home/pierre/Projets/os/target/arm-freestanding/release/deps/libcompiler_builtins-26c139968e75b8d8.rlib
  = note: candidate #2: /home/pierre/Projets/os/target/arm-freestanding/release/deps/libcompiler_builtins-1ff647597e07803f.rlib

error[E0463]: can't find crate for `compiler_builtins`

I'm following the instructions in README.md which ask you to add compiler_builtins as a dependency and add extern crate compiler_builtins;.

It seems that Rust indeed passes compiler_builtins twice when compiling the crate. Here's a fragment of the invocation of rustc:

--extern 'noprelude:compiler_builtins=/home/pierre/Projets/os/target/arm-freestanding/release/deps/libcompiler_builtins-1ff647597e07803f.rlib' --extern compiler_builtins=/home/pierre/Projets/os/target/arm-freestanding/release/deps/libcompiler_builtins-26c139968e75b8d8.rlib

Interestingly, if I do that in Cargo.toml:

compiler_builtins_under_a_different_name = { package = "compiler_builtins", git = "https://github.com/rust-lang/compiler-builtins" }

And then extern crate compiler_builtins_under_a_different_name;, then everything works fine on some platforms but gives linking errors for memcpy for memcmp on some others.

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