build errors on 32bit architectures
I tried packaging virtiofsd 1.7 on debian, and immediately faced build errors on all 32bit architectures where it worked before.
- https://buildd.debian.org/status/fetch.php?pkg=rust-virtiofsd&arch=i386&ver=1.7.0-1&stamp=1689707022&raw=0
- https://buildd.debian.org/status/fetch.php?pkg=rust-virtiofsd&arch=armel&ver=1.7.0-1&stamp=1689702166&raw=0
- https://buildd.debian.org/status/fetch.php?pkg=rust-virtiofsd&arch=armhf&ver=1.7.0-1&stamp=1689701927&raw=0
- https://buildd.debian.org/status/fetch.php?pkg=rust-virtiofsd&arch=mipsel&ver=1.7.0-1&stamp=1689729344&raw=0
- https://buildd.debian.org/status/fetch.php?pkg=rust-virtiofsd&arch=powerpc&ver=1.7.0-1&stamp=1689714343&raw=0
The set of problems here is quite standard:
- Assuming AtomicU64 is available despite it is platform-dependent in rust
- Assuming time_t is u64 despite it having its own type (that's the most common issues)
- Needless or wrong type conversions (sai.atime as i64, see above about time_t)
- Non-existing syscalls (SYS_newfstatat, SYS_mmap, etc)
- And some less common
Now, I really tired trying to fix that stuff everywhere, since less and less people these days even know about 32bit architectures, and those who do, care less and less too. I'll try to restrict at least this package in Debian to 64bit architectures for now. Adding this issue here if not just for reference. It's somewhat sad this is happening, but c'est la vie :)
Edited by Michael Tokarev