Source: rust-cpufeatures
Version: 0.2.11-1
Severity: normal
Tags: ftbfs patch
User: debian-loonga...@lists.debian.org
Usertags: loong64
X-Debbugs-CC: debian-loonga...@lists.debian.org
Dear maintainers,
Compiling the rust-cpufeatures failed for loong64 in the Debian Package
Auto-Building environment.
The error log is as follows,
```
......
error[E0425]: cannot find value `HWCAP_CPUCFG` in crate `libc`
--> src/loongarch64.rs:82:39
|
82 | pub const CPUCFG: c_ulong = libc::HWCAP_CPUCFG;
| ^^^^^^^^^^^^ not found in `libc`
error[E0425]: cannot find value `HWCAP_LAM` in crate `libc`
--> src/loongarch64.rs:83:36
|
83 | pub const LAM: c_ulong = libc::HWCAP_LAM;
| ^^^^^^^^^ not found in `libc`
error[E0425]: cannot find value `HWCAP_UAL` in crate `libc`
--> src/loongarch64.rs:84:36
|
84 | pub const UAL: c_ulong = libc::HWCAP_UAL;
| ^^^^^^^^^ not found in `libc`
......
```
The full build log can be found at
https://buildd.debian.org/status/fetch.php?pkg=rust-cpufeatures&arch=loong64&ver=0.2.11-1%2Bb1&stamp=1736041499&raw=0.
About the above build error on loong64, due to there are inconsistent
phenomena between rust-libc 0.2.169-1 and rust-cpufeatures 0.2.11-1.
When rust-libc's version is 0.2.169-1(built on December,28,2024),
rust-cpufeatures's version should be >=v0.2.13.
So, I have 2 suggestions,
1.Please upgrade Debian rust-cpufeatures version higher than(including)
v0.2.13.
Now the lastest version in upstream is v0.2.16.
2.Please consider the patch I attached.
Backport patch to Debian rust-cpufeatures 0.2.11-1.
Based on the attached patch, I have built rust-cpufeatures
0.2.11-1+loong64 locally.
```
dh_builddeb -O--buildsystem=cargo
dpkg-deb: building package 'librust-cpufeatures-dev' in
'../librust-cpufeatures-dev_0.2.11-1+loong64_loong64.deb'.
dpkg-genbuildinfo -O../rust-cpufeatures_0.2.11-1+loong64_loong64.buildinfo
dpkg-genchanges -O../rust-cpufeatures_0.2.11-1+loong64_loong64.changes
```
Best regards,
Dandan Zhang
Description: Cherry-pick loongarch64 code from upstream to fix "`HWCAP_XXX` not found in crate `libc`"
.
rust-cpufeatures (0.2.11-1+loong64) unstable; urgency=medium
.
* Cherry-pick loongarch64 code from upstream.
Author: Dandan Zhang <zhangdan...@loongson.cn>
---
Last-Update: 2025-01-10
--- rust-cpufeatures-0.2.11.orig/src/loongarch64.rs
+++ rust-cpufeatures-0.2.11/src/loongarch64.rs
@@ -79,20 +79,20 @@ __expand_check_macro! {
pub mod hwcaps {
use libc::c_ulong;
- pub const CPUCFG: c_ulong = libc::HWCAP_CPUCFG;
- pub const LAM: c_ulong = libc::HWCAP_LAM;
- pub const UAL: c_ulong = libc::HWCAP_UAL;
- pub const FPU: c_ulong = libc::HWCAP_FPU;
- pub const LSX: c_ulong = libc::HWCAP_LSX;
- pub const LASX: c_ulong = libc::HWCAP_LASX;
- pub const CRC32: c_ulong = libc::HWCAP_CRC32;
- pub const COMPLEX: c_ulong = libc::HWCAP_COMPLEX;
- pub const CRYPTO: c_ulong = libc::HWCAP_CRYPTO;
- pub const LVZ: c_ulong = libc::HWCAP_LVZ;
- pub const LBT_X86: c_ulong = libc::HWCAP_LBT_X86;
- pub const LBT_ARM: c_ulong = libc::HWCAP_LBT_ARM;
- pub const LBT_MIPS: c_ulong = libc::HWCAP_LBT_MIPS;
- pub const PTW: c_ulong = libc::HWCAP_PTW;
+ pub const CPUCFG: c_ulong = libc::HWCAP_LOONGARCH_CPUCFG;
+ pub const LAM: c_ulong = libc::HWCAP_LOONGARCH_LAM;
+ pub const UAL: c_ulong = libc::HWCAP_LOONGARCH_UAL;
+ pub const FPU: c_ulong = libc::HWCAP_LOONGARCH_FPU;
+ pub const LSX: c_ulong = libc::HWCAP_LOONGARCH_LSX;
+ pub const LASX: c_ulong = libc::HWCAP_LOONGARCH_LASX;
+ pub const CRC32: c_ulong = libc::HWCAP_LOONGARCH_CRC32;
+ pub const COMPLEX: c_ulong = libc::HWCAP_LOONGARCH_COMPLEX;
+ pub const CRYPTO: c_ulong = libc::HWCAP_LOONGARCH_CRYPTO;
+ pub const LVZ: c_ulong = libc::HWCAP_LOONGARCH_LVZ;
+ pub const LBT_X86: c_ulong = libc::HWCAP_LOONGARCH_LBT_X86;
+ pub const LBT_ARM: c_ulong = libc::HWCAP_LOONGARCH_LBT_ARM;
+ pub const LBT_MIPS: c_ulong = libc::HWCAP_LOONGARCH_LBT_MIPS;
+ pub const PTW: c_ulong = libc::HWCAP_LOONGARCH_PTW;
}
// On other targets, runtime CPU feature detection is unavailable