Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make install on top of an already installed rust results in breakage #2877

Closed
jwise opened this issue Jul 12, 2012 · 5 comments
Closed

make install on top of an already installed rust results in breakage #2877

jwise opened this issue Jul 12, 2012 · 5 comments
Milestone

Comments

@jwise
Copy link
Contributor

jwise commented Jul 12, 2012

After doing a make install (of an early rust-0.3.tar.gz) on top of an already installed Rust (from git a few days ago), I now get the following error while compiling things:

joshua@icfp:~$ cat > hello.rs
fn main(args: ~[str]) {
    io::println("hello world from '" + args[0] + "'!");
}
joshua@icfp:~$ rustc hello.rs
hello.rs:1:0: 1:0 error: multiple matching crates for `core`
hello.rs:1 fn main(args: ~[str]) {
           ^
note: candidates:
note: path: /usr/local/lib/rustc/i686-unknown-linux-gnu/lib/libcore-d27e4777a53c3e50-0.2.so
note: meta: #[link(name = "core",
       vers = "0.2",
       uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8",
       url = "https://github.com/mozilla/rust/tree/master/src/libcore")]
note: path: /usr/local/lib/rustc/i686-unknown-linux-gnu/lib/libcore-d27e4777a53c3e50-0.3.so
note: meta: #[link(name = "core",
       vers = "0.3",
       uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8",
       url = "https://github.com/mozilla/rust/tree/master/src/libcore")]
error: aborting due to previous error

There should be logic to override with newer versions, or otherwise warn about this sort of thing.

@killerswan
Copy link
Contributor

Shouldn't rustc be smart enough to find the right libcore-xxx-yyy.so?

@killerswan
Copy link
Contributor

Hmm, so src/rustc/rustc.rc actually does ask for linking with use core(vers = "0.3"), so this is a matter of rustc not forcing its need on the program or library it is compiling...

@killerswan
Copy link
Contributor

Well, even adding use core(vers = "0.3"); to a demo program's .rc file isn't enough to resolve this.

@tav
Copy link
Contributor

tav commented Oct 21, 2012

I just ran into the same problem:

rusty.rc:1:0: 1:0 error: multiple matching crates for `core`
rusty.rc:1 // Public Domain (-) 2012 The Rusty Authors.
           ^
note: candidates:
note: path: /usr/local/lib/rustc/x86_64-apple-darwin/lib/libcore-c3ca5d77d81b46c1-0.4.dylib
note: meta: name = "core"
note: meta: vers = "0.4"
note: meta: uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8"
note: meta: url = "https://github.com/mozilla/rust/tree/master/src/libcore"
note: path: /usr/local/lib/rustc/x86_64-apple-darwin/lib/libcore-c3ca5d77d81b46c1-0.5.dylib
note: meta: name = "core"
note: meta: vers = "0.5"
note: meta: uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8"
note: meta: url = "https://github.com/mozilla/rust/tree/master/src/libcore"
error: aborting due to previous error

A work-around is to be explicit about the use of core, i.e. add the following to a crate file:

#[no_core];

extern mod core(vers = "0.5");
use core::*;

Just importing a specific version of core doesn't work, e.g.

extern mod core(vers = "0.5");

I am guessing this is because somewhere we implicitly add the following to a crate file:

extern mod core;
use core::*;

Given that multi-version installs of rust are only going to be increasing in number, it might help create better second impressions if we fixed this somehow.

Could we add the current version to the implicit extern mod core; ?

@catamorphism
Copy link
Contributor

#3225 supersedes this.

celinval pushed a commit to celinval/rust-dev that referenced this issue Jun 4, 2024
CBMC only provides binaries for x86_64, but it runs fine on other arches
(like aarch64) Build from source in that case

---------

Co-authored-by: Adrian Palacios <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants