bytecodealliance / bytecodealliance/rustix

x86_64-unknown-linux-gnux32 target fails to compile

Aperta
#1,645 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
2.1k
Fork
294
Merge medio
6g 22h
PR unite (30g)
4

Descrizione

The following targets fail to compile since https://github.com/bytecodealliance/rustix/pull/1594:

- `x86_64-unknown-linux-gnux32` (Tier 2 without Host Tools)
- `mips64-openwrt-linux-musl` (Tier 3)
- `sparc-unknown-linux-gnu` (Tier 3)
- `aarch64-unknown-linux-gnu_ilp32` (Tier 3)

```log
$ cargo check -q --workspace --target=x86_64-unknown-linux-gnux32 --features=all-apis --all-targets
error[E0308]: mismatched types
--> src/io_uring/mod.rs:2000:9
|
2000 | static_assertions::assert_eq_align!(io_uring_ptr, u64);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
= note: this error originates in the macro `static_assertions::assert_eq_align` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
--> src/check_types.rs:9:9
|
9 | ::static_assertions::assert_eq_align!($struct, c::$struct);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
::: src/io_uring/mod.rs:2086:9
|
2086 | / check_struct!(
2087 | | io_uring_params,
2088 | | sq_entries,
2089 | | cq_entries,
... |
2097 | | cq_off
2098 | | );
| |_________- in this macro invocation
|
= note: this error originates in the macro `::static_assertions::assert_eq_align` which comes from the expansion of the macro `check_struct` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
--> src/check_types.rs:9:9
|
9 | ::static_assertions::assert_eq_align!($struct, c::$struct);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
::: src/io_uring/mod.rs:2099:9
|
2099 | / check_struct!(
2100 | | io_sqring_offsets,
2101 | | head,
2102 | | tail,
... |
2109 | | user_addr
2110 | | );
| |_________- in this macro invocation
|
= note: this error originates in the macro `::static_assertions::assert_eq_align` which comes from the expansion of the macro `check_struct` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
--> src/check_types.rs:9:9
|
9 | ::static_assertions::assert_eq_align!($struct, c::$struct);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
::: src/io_uring/mod.rs:2111:9
|
2111 | / check_struct!(
2112 | | io_cqring_offsets,
2113 | | head,
2114 | | tail,
... |
2121 | | user_addr
2122 | | );
| |_________- in this macro invocation
|
= note: this error originates in the macro `::static_assertions::assert_eq_align` which comes from the expansion of the macro `check_struct` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
--> src/check_types.rs:9:9
|
9 | ::static_assertions::assert_eq_align!($struct, c::$struct);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
::: src/io_uring/mod.rs:2130:9
|
2130 | / check_struct!(
2131 | | io_uring_getevents_arg,
2132 | | sigmask,
2133 | | sigmask_sz,
2134 | | min_wait_usec,
2135 | | ts
2136 | | );
| |_________- in this macro invocation
|
= note: this error originates in the macro `::static_assertions::assert_eq_align` which comes from the expansion of the macro `check_struct` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
--> src/check_types.rs:9:9
|
9 | ::static_assertions::assert_eq_align!($struct, c::$struct);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
::: src/io_uring/mod.rs:2140:9
|
2140 | check_struct!(io_uring_buf, addr, len, bid, resv);
| ------------------------------------------------- in this macro invocation
|
= note: this error originates in the macro `::static_assertions::assert_eq_align` which comes from the expansion of the macro `check_struct` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
--> src/check_types.rs:18:9
|
18 | ::static_assertions::assert_eq_align!($to, c::$from);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| expected an array with a size of 4, found one with a size of 8
| expected due to this
|
::: src/io_uring/mod.rs:2157:9
|
2157 | / check_renamed_type!(
2158 | | buf_ring_bufs_struct,
2159 | | io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2
2160 | | );
| |_________- in this macro invocation
|
= note: this error originates in the macro `::static_assertions::assert_eq_align` which comes from the expansion of the macro `check_renamed_type` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
--> src/fs/constants.rs:60:9
|
60 | static_assertions::assert_eq_size!(FsWord, linux_raw_sys::general::__fsword_t);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: source type: `i64` (64 bits)
= note: target type: `u32` (32 bits)
= note: this error originates in the macro `static_assertions::assert_eq_size` (in Nightly builds, run with -Z macro-backtrace for more info)

Some errors have detailed explanations: E0308, E0512.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `rustix` (lib test) due to 8 previous errors
```

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia eseguendo il comando cargo check riportato per x86_64-unknown-linux-gnux32 ed esamina le assertion in src/io_uring/mod.rs, src/check_types.rs e src/fs/constants.rs. Confronta i controlli di layout e dimensione che falliscono tra i target elencati. Il lavoro è completato quando il workspace compila con tutte le API e tutti i target per i target interessati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
operating-systems
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
50/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.