Description
This change to using #[pkgid]
is causing a serious problem. Library names are now completely different. And I don't mean the hash. I mean the actual name on-disk. Not only that, but libraries without a #[pkgid]
will potentially be named completely incorrectly and collide on-disk.
The library name on disk is lib<name>-<hash>...
. Previously, <name>
came from the link args, so #[link(name="foo")];
produced libfoo-<hash>...
. Now, it's apparently based off of the last path component of the #[pkgid]
. So if my library doesn't have a #[pkgid]
, and the root file is named lib.rs
, then I'll end up with liblib-<hash>...
. And since the hash is also based off of the #[pkgid]
, then every single non-#[pkgid]
library with the same root source file will result in the same full filename (as both the library name and the hash are identical). That's really bad.
If I go ahead and add a #[pkgid]
, and use the recommended approach of using my github path as the pkgid, then I end up with a library that's potentially named incorrectly. For example, my github.com/kballard/rust-lua library wants to produce liblua-<hash>...
but instead with the #[pkgid]
it's now librust-lua-<hash>...
.