<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi, <br>
</p>
<p>On Thu, 7 Mar 2024 14:39:31 +0000 Peter Green <plugwash@debian.org>
wrote:</plugwash@debian.org></p>
<p><plugwash@debian.org></plugwash@debian.org></p>
<plugwash@debian.org>> > I have built the rust-polling
successfully in my local loong64 <br>
> > environment, without modifications required.<br>
> <br>
> Make sure you are not using DEB_BUILD_OPTIONS=nocheck<br>
> <br>
<br>
I didn't use any DEB_BUILD_OPTIONS in my local ENV.<br>
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:<br>
- My local ENV<br>
Compiling libc v0.2.150 //Note that<br>
Compiling rustix v0.38.25<br>
Compiling linux-raw-sys v0.4.11<br>
Compiling pin-project-lite v0.2.13<br>
Compiling cfg-if v1.0.0<br>
Compiling bitflags v2.4.0<br>
Compiling tracing-core v0.1.30<br>
- Debian Package Auto-Building ENV<br>
Compiling libc v0.2.150 //Note that<br>
Compiling rustix v0.38.25<br>
Compiling linux-raw-sys v0.4.11<br>
Compiling pin-project-lite v0.2.13<br>
Compiling cfg-if v1.0.0<br>
Compiling bitflags v2.4.0<br>
Compiling tracing-core v0.1.30<br>
<br>
The error build log of rust-polling is as follows,<br>
```<br>
error[E0425]: cannot find value `FS_IOC_GETFLAGS` in module `c`<br>
-->
/usr/share/cargo/registry/rustix-0.38.30/src/fs/ioctl.rs:142:57 <br>
......<br>
error[E0425]: cannot find value `FS_IOC_SETFLAGS` in module `c`<br>
-->
/usr/share/cargo/registry/rustix-0.38.30/src/fs/ioctl.rs:161:57<br>
|<br>
161 | let ctl = ioctl::Setter::<ioctl::BadOpcode<{
c::FS_IOC_SETFLAGS }>, u32>::new(flags.bits());<br>
|
^^^^^^^^^^^^^^^<br>
|<br>
:::
/usr/share/cargo/registry/libc-0.2.152/src/unix/linux_like/linux/mod.rs:2922:1<br>
......<br>
```<br>
<br>
> > Please try to rebuild rust-polling for loong64 in the
Debian Package <br>
> > Auto-Building environment.<br>
> <br>
> It failed again.<br>
</plugwash@debian.org><br>
Analyzed by our rust team, due to rust libc 0.2.152 missing
LoongArch's FS_IOC_{G,S}{ETVERSION,ETFLAGS} related symbol bindings.<br>
The following commit (Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS} for
LoongArch64) can resolve this question:<br>
<a class="moz-txt-link-freetext" href="https://github.com/rust-lang/libc/commit/9a074313961e93a0f38fab26b72a4fc393ed1148">https://github.com/rust-lang/libc/commit/9a074313961e93a0f38fab26b72a4fc393ed1148</a><br>
<br>
Could the above commit "Add ioctl FS_IOC_{G,S}{ETVERSION,ETFLAGS}
for LoongArch64" be backpunched to Debian rust-libc 0.2.152-1。<br>
Or wait for the next upstream version of rust-lang/libc.<br>
What about your suggestion?<br>
<br>
<br>
Thanks,<br>
Dandan Zhang<br>
</body>
</html>