Skip to content

Symlinked libraries after commit #12164 #12459

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

Closed
pethin opened this issue Feb 22, 2014 · 0 comments
Closed

Symlinked libraries after commit #12164 #12459

pethin opened this issue Feb 22, 2014 · 0 comments

Comments

@pethin
Copy link

pethin commented Feb 22, 2014

When compiling, rustc produces the error:

src/gen/main.rs:1:1: 1:1 error: multiple rlib candidates for `std` found
src/gen/main.rs:1 // Copyright 2013 The gl-rs developers. For a full listing of the authors,
                  ^
src/gen/main.rs:1:1: 1:1 note: candidate #1: /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-966edb7e-0.10-pre.rlib
src/gen/main.rs:1 // Copyright 2013 The gl-rs developers. For a full listing of the authors,
                  ^
src/gen/main.rs:1:1: 1:1 note: candidate #2: /usr/lib/libstd-966edb7e-0.10-pre.rlib
src/gen/main.rs:1 // Copyright 2013 The gl-rs developers. For a full listing of the authors,
                  ^
src/gen/main.rs:1:1: 1:1 error: multiple dylib candidates for `std` found
src/gen/main.rs:1 // Copyright 2013 The gl-rs developers. For a full listing of the authors,
                  ^
src/gen/main.rs:1:1: 1:1 note: candidate #1: /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-966edb7e-0.10-pre.so
src/gen/main.rs:1 // Copyright 2013 The gl-rs developers. For a full listing of the authors,
                  ^
src/gen/main.rs:1:1: 1:1 note: candidate #2: /usr/lib/libstd-966edb7e-0.10-pre.so
src/gen/main.rs:1 // Copyright 2013 The gl-rs developers. For a full listing of the authors,
                  ^
error: aborting due to 2 previous errors

The libraries in /usr/lib/ are symlinked to the libraries in /usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/.

alexcrichton added a commit to alexcrichton/rust that referenced this issue Feb 22, 2014
This commit implements a layman's version of realpath() for metadata::loader to
use in order to not error on symlinks pointing to the same file.

Closes rust-lang#12459
bors added a commit that referenced this issue Apr 15, 2016
Deduplicate libraries on hash instead of filename.

Removes the need for canonicalization to prevent #12459.

(Now with passing tests!)

Canonicalization breaks certain environments where the libraries are symlinks to files that don't end in .rlib (e.g. /remote/cas/$HASH).
bors added a commit to rust-lang-ci/rust that referenced this issue Jul 25, 2022
matthiaskrgr pushed a commit to matthiaskrgr/rust that referenced this issue Mar 21, 2024
…, r=Jarcho

lint when calling the blanket `Into` impl from a `From` impl

Closes rust-lang#11150
```
warning: function cannot return without recursing
  --> x.rs:9:9
   |
9  | /         fn from(value: f32) -> Self {
10 | |             value.into()
11 | |         }
   | |_________^
   |
note: recursive call site
  --> x.rs:10:13
   |
10 |             value.into()
   |             ^^^^^^^^^^^^
```

I'm also thinking that we can probably generalize this lint to rust-lang#11032 at some point (instead of hardcoding a bunch of impls), like how rustc's `unconditional_recursion` works, at least up to one indirect call, but this still seems useful for now :)

I've also noticed that we use `fn_def_id` in a bunch of lints and then try to get the node args of the call in a separate step, so I made a helper function that does both in one. I intend to refactor a bunch of uses of `fn_def_id` to use this later

I can add more test cases, but this is already using much of the same logic that exists for the other impls that this lint looks for (e.g. making sure that there are no conditional returns).

changelog: [`unconditional_recursion`]: emit a warning inside of `From::from` when unconditionally calling the blanket `.into()` impl
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

Successfully merging a pull request may close this issue.

1 participant