-
Notifications
You must be signed in to change notification settings - Fork 13k
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
mk: Add -C metadata
for compiling crates we ship
#32560
Conversation
This should re-enable all external builds of crates with the same name. Right now Cargo doesn't pass `-C metadata` for the top-level library being compiled, so if that library is called `libc`, for example, then it won't be able to link to the standard library which *also* has a `libc` library compiled without `-C metadata`. This can result in naming conflicts which need to be resolved. By passing `-C metadata` to the in-tree crates we ship it should add some extra salt to all symbol names to ensure that they don't collide.
r? @aturon (rust_highfive has picked a reviewer for you, use r? to override) |
@bors r+ p=1 |
📌 Commit 6908e4e has been approved by |
I suspect that this will not fix #32532, unfortunately |
@alexcrichton I think @michaelwoerister thought that it likely would, but I guess we'll find out. (We'll obviously need a new nightly.) |
Thinking for a few seconds on this as well, I believe you are right! The bug there was that the in-tree libc had blank metadata, and then when we generate documentation out of tree it also has blank metadata (as Cargo doesn't pass |
…tsakis mk: Add `-C metadata` for compiling crates we ship This should re-enable all external builds of crates with the same name. Right now Cargo doesn't pass `-C metadata` for the top-level library being compiled, so if that library is called `libc`, for example, then it won't be able to link to the standard library which *also* has a `libc` library compiled without `-C metadata`. This can result in naming conflicts which need to be resolved. By passing `-C metadata` to the in-tree crates we ship it should add some extra salt to all symbol names to ensure that they don't collide. Closes #32532
@alexcrichton You've made exactly the same changes that I already had locally I had some symbol conflicts when running make check on this with |
Ah ok, thanks @michaelwoerister! |
@michaelwoerister that is probably #32518 On Mon, Mar 28, 2016 at 3:52 PM, bors notifications@github.com wrote:
|
@nikomatsakis Yes, that seems to be it. And @dotdash's fix in #32557 is also what I had in mind. |
This should re-enable all external builds of crates with the same name. Right
now Cargo doesn't pass
-C metadata
for the top-level library being compiled,so if that library is called
libc
, for example, then it won't be able to linkto the standard library which also has a
libc
library compiled without-C metadata
. This can result in naming conflicts which need to be resolved.By passing
-C metadata
to the in-tree crates we ship it should add some extrasalt to all symbol names to ensure that they don't collide.
Closes #32532