Closed
Description
hello everyone,
some linux targets use a custom vendor in their rustc, and it so happens that the crossbeam crate missdetects the target. Here is an example from librsvg when using powerpc-gentoo-linux-musl:
[...]
Running `rustc --crate-name crossbeam_utils --edition=2018 /var/tmp/portage/gnome-base/librsvg-2.55.1/work/cargo_home/gentoo/crossbeam-utils-0.8.11/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="once_cell"' --cfg 'feature="std"' -C metadata=650926ecf19e73c2 -C extra-filename=-650926ecf19e73c2 --out-dir /var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps -L dependency=/var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps --extern cfg_if=/var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps/libcfg_if-8b0eed1ca9f18504.rmeta --extern once_cell=/var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps/libonce_cell-5ba52b14be4f5b16.rmeta --cap-lints allow`
error[E0432]: unresolved imports `core::sync::atomic::AtomicI64`, `core::sync::atomic::AtomicU64`
--> /var/tmp/portage/gnome-base/librsvg-2.55.1/work/cargo_home/gentoo/crossbeam-utils-0.8.11/src/lib.rs:79:49
|
79 | pub(crate) use core::sync::atomic::{AtomicI64, AtomicU64};
| ^^^^^^^^^ ^^^^^^^^^ no `AtomicU64` in `sync::atomic`
| |
| no `AtomicI64` in `sync::atomic`
|
help: a similar name exists in the module
|
79 | pub(crate) use core::sync::atomic::{AtomicI8, AtomicU64};
| ~~~~~~~~
help: a similar name exists in the module
|
79 | pub(crate) use core::sync::atomic::{AtomicI64, AtomicU8};
| ~~~~~~~~
error[E0412]: cannot find type `AtomicU64` in module `core::sync::atomic`
--> /var/tmp/portage/gnome-base/librsvg-2.55.1/work/cargo_home/gentoo/crossbeam-utils-0.8.11/src/atomic/consume.rs:78:14
|
78 | impl_atomic!(AtomicU64, u64);
| ^^^^^^^^^ help: a struct with a similar name exists: `AtomicU16`
error[E0412]: cannot find type `AtomicI64` in module `core::sync::atomic`
--> /var/tmp/portage/gnome-base/librsvg-2.55.1/work/cargo_home/gentoo/crossbeam-utils-0.8.11/src/atomic/consume.rs:80:14
|
80 | impl_atomic!(AtomicI64, i64);
| ^^^^^^^^^ help: a struct with a similar name exists: `AtomicI16`
Some errors have detailed explanations: E0412, E0432.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `crossbeam-utils` due to 3 previous errors
Caused by:
process didn't exit successfully: `rustc --crate-name crossbeam_utils --edition=2018 /var/tmp/portage/gnome-base/librsvg-2.55.1/work/cargo_home/gentoo/crossbeam-utils-0.8.11/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="once_cell"' --cfg 'feature="std"' -C metadata=650926ecf19e73c2 -C extra-filename=-650926ecf19e73c2 --out-dir /var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps -L dependency=/var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps --extern cfg_if=/var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps/libcfg_if-8b0eed1ca9f18504.rmeta --extern once_cell=/var/tmp/portage/gnome-base/librsvg-2.55.1/work/librsvg-2.55.1-.ppc/target/release/deps/libonce_cell-5ba52b14be4f5b16.rmeta --cap-lints allow` (exit status: 1)
make[2]: *** [Makefile:1554: librsvg_c_api.la] Error 101
there is a fix for the missdetection, which was merged in crossbeam-rs/crossbeam#922
that fix was backported to crossbeam-utils 0.8.13, crossbeam-queue 0.3.7, and crossbeam-epoch 0.9.12
can you please consider to update the rust vendored crates to a fixed state?
thank you