Skip to content

please update crossbeam crates to fix compile for custom -vendor- rust targets #104866

Closed
@stefson

Description

@stefson

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions