Publishing a crate that depends on cross-build of libcore


I want to publish this crate: to, but I can’t figure a proper way to do that.

The crate depends on libcore being cross-compiled, for that there are a bunch of targets specified pointing at repo that hosts a wrapper to fetch and compile libcore as a cargo package.

I can’t publish rust-libcore:

api errors: cannot upload a crate with a reserved name

and I can’t publish volatile_cell without it:

all dependencies must come from the same source.
dependency `core` comes from instead

Is there any way to sort this out?


The canonical source of libcore is the compiler; using some other source for it is an unsupported hack, and will never be accepted on

Granted, the current procedure for installing a cross-compile target is a bit inconvenient, but that’s something which will hopefully be improved in the future.


Actually, I figured that I just need to rename the package: to get it through.


Actually figured that renaming the crate to rust-libcore fixes it for, but it’s broken if sourced from git directly:

no matching package named `core` found (required by `zinc`)
location searched:
version required: *


I think you should just remove the dependency on a custom libcore. Then you will get a crate core not found error for custom targets, but you can fix it by adding a cross-compiled libcore to your libs. See my nighly-libcore crate for instructions.


As huon pointed out on irc, I should have updated the crate name in all the relevant Cargo.toml files, so now it works again. While expecting the compiler to provide libcore is a nice idea overall, I prefer it when users need to run a single command, that works now again in my case, even for the price of slight cross-target mess in the Cargo.toml files.