libspa 1.7.x makes platform-dependent assumptions about integer sizes
On 32bit linux platforms, a long
is 32 bits wide instead of 64. This causes libspa to fail to compile on those platforms.
error[E0308]: mismatched types
--> /host/cargo/registry/src/index.crates.io-1cd66030c949c28d/libspa-0.7.0/src/pod/parser.rs:180:75
|
180 | let res = spa_sys::spa_pod_parser_get_long(self.as_raw_ptr(), long.as_mut_ptr());
| -------------------------------- ^^^^^^^^^^^^^^^^^ expected `*mut i64`, found `*mut i32`
| |
| arguments to this function are incorrect
|
= note: expected raw pointer `*mut i64`
found raw pointer `*mut i32`
note: function defined here
--> /host/cargo/registry/src/index.crates.io-1cd66030c949c28d/libspa-sys-0.7.0/src/pod/parser.rs:61:12
|
61 | pub fn spa_pod_parser_get_long(parser: *mut spa_pod_parser, value: *mut i64) -> c_int;
| ^^^^^^^^^^^^^^^^^^^^^^^
For more information about this error, try `rustc --explain E0308`.
error: could not compile `libspa` (lib) due to previous error
This error happens even after updating libspa(-sys) to 1.7.2
Found when compiling helvum 0.4.1 Os: Void Linux Pipewire library version: 0.3.80