Bug 1220175

Summary: bcachefs-tools fails to build on 32bit architectures
Product: [openSUSE] openSUSE Tumbleweed Reporter: David Disseldorp <ddiss>
Component: Kernel:FilesystemsAssignee: David Disseldorp <ddiss>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description David Disseldorp 2024-02-22 06:09:46 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.
Comment 1 David Disseldorp 2024-02-22 11:35:08 UTC
On it's way to Factory via https://build.opensuse.org/request/show/1149116 . Closing...