Bugzilla – Bug 1220175
bcachefs-tools fails to build on 32bit architectures
Last modified: 2024-02-22 11:35:08 UTC
With the update to upstream v1.6.3 arm7hl and i586 architectures fail to build with: [ 68s] Compiling bch_bindgen v0.1.0 (/home/abuild/rpmbuild/BUILD/bcachefs-tools-1.6.3/bch_bindgen) [ 68s] error[E0308]: mismatched types [ 68s] --> src/wrappers/handle.rs:50:61 [ 68s] | [ 68s] 50 | let ret = unsafe { libc::ioctl(self.inner.ioctl_fd, request as u64, payload_ptr) }; [ 68s] | ----------- ^^^^^^^^^^^^^^ expected `u32`, found `u64` [ 68s] | | [ 68s] | arguments to this function are incorrect [ 68s] | [ 68s] note: function defined here [ 68s] --> /home/abuild/rpmbuild/BUILD/bcachefs-tools-1.6.3/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs:1405:12 [ 68s] | [ 68s] 1405 | pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; [ 68s] | ^^^^^ [ 68s] help: you can convert a `u64` to a `u32` and panic if the converted value doesn't fit [ 68s] | [ 68s] 50 | let ret = unsafe { libc::ioctl(self.inner.ioctl_fd, (request as u64).try_into().unwrap(), payload_ptr) }; [ 68s] | + +++++++++++++++++++++ It looks like this has already been fixed upstream via 25e84a99 ("rust: use libc::Ioctl type for ioctl() request argument") so my plan is to pull that in.
On it's way to Factory via https://build.opensuse.org/request/show/1149116 . Closing...