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

Reply via email to