Hi,

On Thu, 7 Mar 2024 14:39:31 +0000 Peter Green wrote:

> > I have built the rust-polling successfully in my local loong64
> > environment, without modifications required.
>
> Make sure you are not using DEB_BUILD_OPTIONS=nocheck
>

I didn't use any DEB_BUILD_OPTIONS in my local ENV.
After comparing, I found that the packages version I used when compiling rust-polling locally were different from the current Debian Auto-Building packages version, for examples:
- My local ENV
   Compiling libc v0.2.150   //Note that
   Compiling rustix v0.38.25
   Compiling linux-raw-sys v0.4.11
   Compiling pin-project-lite v0.2.13
   Compiling cfg-if v1.0.0
   Compiling bitflags v2.4.0
   Compiling tracing-core v0.1.30
- Debian Package Auto-Building ENV
   Compiling libc v0.2.150   //Note that
   Compiling rustix v0.38.25
   Compiling linux-raw-sys v0.4.11
   Compiling pin-project-lite v0.2.13
   Compiling cfg-if v1.0.0
   Compiling bitflags v2.4.0
   Compiling tracing-core v0.1.30

The error build log of rust-polling is as follows,
```
error[E0425]: cannot find value `FS_IOC_GETFLAGS` in module `c`
    --> /usr/share/cargo/registry/rustix-0.38.30/src/fs/ioctl.rs:142:57
......
error[E0425]: cannot find value `FS_IOC_SETFLAGS` in module `c`
    --> /usr/share/cargo/registry/rustix-0.38.30/src/fs/ioctl.rs:161:57
     |
161  |         let ctl = ioctl::Setter::<ioctl::BadOpcode<{ c::FS_IOC_SETFLAGS }>, u32>::new(flags.bits());
     | ^^^^^^^^^^^^^^^
     |
    ::: /usr/share/cargo/registry/libc-0.2.152/src/unix/linux_like/linux/mod.rs:2922:1
......
```

> > Please try to rebuild rust-polling for loong64 in the Debian Package
> > Auto-Building environment.
>
> It failed again.

Analyzed by our rust team, due to rust libc 0.2.152 missing LoongArch's FS_IOC_{G,S}{ETVERSION,ETFLAGS} related symbol bindings. The following commit (Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS} for LoongArch64) can resolve this question:
https://github.com/rust-lang/libc/commit/9a074313961e93a0f38fab26b72a4fc393ed1148

Could the above commit "Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS} for LoongArch64" be backpunched to Debian rust-libc 0.2.152-1。
Or wait for the next upstream version of rust-lang/libc.
What about your suggestion?


Thanks,
Dandan Zhang

Reply via email to