Source: haskell-charsetdetect-ae Version: 1.1.0.4-7.1 Severity: important Tags: ftbfs patch User: debian-ri...@lists.debian.org Usertags: riscv64 X-Debbugs-Cc: debian-ri...@lists.debian.org
Dear Maintainer, haskell-charsetdetect-ae has one FTBFS issue on riscv64 due to lack of supporting for it, the full buildd log is here: https://buildd.debian.org/status/fetch.php?pkg=haskell-charsetdetect-ae&arch=riscv64&ver=1.1.0.4-7.1&stamp=1746625967&raw=0 I had proposed one patch to support this and I tested it on my local Unmatched board. This should be forwarded to upstream also but it seems the upstream[0] has been abandoned. So please let me know if there is anything I can improve. [0]: https://github.com/neongreen/charsetdetect-ae/issues/8 -- Regards, -- Bo YU
diff -Nru haskell-charsetdetect-ae-1.1.0.4/debian/changelog haskell-charsetdetect-ae-1.1.0.4/debian/changelog --- haskell-charsetdetect-ae-1.1.0.4/debian/changelog 2025-05-07 10:59:35.000000000 +0000 +++ haskell-charsetdetect-ae-1.1.0.4/debian/changelog 2025-05-07 15:05:22.000000000 +0000 @@ -1,3 +1,10 @@ +haskell-charsetdetect-ae (1.1.0.4-7.2) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Add build support for riscv64. (Closes: #-1) + + -- Bo YU <vi...@debian.org> Wed, 07 May 2025 15:05:22 +0000 + haskell-charsetdetect-ae (1.1.0.4-7.1) unstable; urgency=medium * Non-maintainer upload diff -Nru haskell-charsetdetect-ae-1.1.0.4/debian/patches/add-riscv64-support.patch haskell-charsetdetect-ae-1.1.0.4/debian/patches/add-riscv64-support.patch --- haskell-charsetdetect-ae-1.1.0.4/debian/patches/add-riscv64-support.patch 1970-01-01 00:00:00.000000000 +0000 +++ haskell-charsetdetect-ae-1.1.0.4/debian/patches/add-riscv64-support.patch 2025-05-07 15:05:12.000000000 +0000 @@ -0,0 +1,194 @@ +Description: Add build support for riscv64 +Author: Bo YU <vi...@debian.org> +Forwarded: no, upstream has dead: https://github.com/neongreen/charsetdetect-ae/issues/8 +Last-Update: 2025-05-07 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/libcharsetdetect/nspr-emu/prcpucfg_freebsd.h ++++ b/libcharsetdetect/nspr-emu/prcpucfg_freebsd.h +@@ -330,6 +330,63 @@ + #define PR_ALIGN_OF_POINTER 8 + #define PR_ALIGN_OF_WORD 8 + ++#elif defined(__riscv) && __riscv_xlen == 64 ++ ++#define IS_LITTLE_ENDIAN 1 ++#undef IS_BIG_ENDIAN ++#define HAVE_ALIGNED_DOUBLES ++#define HAVE_ALIGNED_LONGLONGS ++#define IS_64 ++ ++#define PR_BYTES_PER_BYTE 1 ++#define PR_BYTES_PER_SHORT 2 ++#define PR_BYTES_PER_INT 4 ++#define PR_BYTES_PER_INT64 8 ++#define PR_BYTES_PER_LONG 8 ++#define PR_BYTES_PER_FLOAT 4 ++#define PR_BYTES_PER_DOUBLE 8 ++#define PR_BYTES_PER_WORD 8 ++#define PR_BYTES_PER_DWORD 8 ++#define PR_BYTES_PER_WORD_LOG2 3 ++#define PR_BYTES_PER_DWORD_LOG2 3 ++ ++#define PR_BITS_PER_BYTE 8 ++#define PR_BITS_PER_SHORT 16 ++#define PR_BITS_PER_INT 32 ++#define PR_BITS_PER_INT64 64 ++#define PR_BITS_PER_LONG 64 ++#define PR_BITS_PER_FLOAT 32 ++#define PR_BITS_PER_DOUBLE 64 ++#define PR_BITS_PER_WORD 64 ++ ++#define PR_BITS_PER_BYTE_LOG2 3 ++#define PR_BITS_PER_SHORT_LOG2 4 ++#define PR_BITS_PER_INT_LOG2 5 ++#define PR_BITS_PER_INT64_LOG2 6 ++#define PR_BITS_PER_LONG_LOG2 6 ++#define PR_BITS_PER_FLOAT_LOG2 5 ++#define PR_BITS_PER_DOUBLE_LOG2 6 ++#define PR_BITS_PER_WORD_LOG2 6 ++ ++#define PR_ALIGN_OF_SHORT 2 ++#define PR_ALIGN_OF_INT 4 ++#define PR_ALIGN_OF_LONG 8 ++#define PR_ALIGN_OF_INT64 8 ++#define PR_ALIGN_OF_FLOAT 4 ++#define PR_ALIGN_OF_DOUBLE 8 ++#define PR_ALIGN_OF_POINTER 8 ++#define PR_ALIGN_OF_WORD 8 ++ ++#elif defined(__riscv) && __riscv_xlen == 64 ++ ++#else ++ ++#error "Unknown CPU architecture" ++ ++#endif ++ ++#ifndef NO_NSPR_10_SUPPORT ++ + #else + + #error "Unknown CPU architecture" +--- a/libcharsetdetect/nspr-emu/prcpucfg_linux.h ++++ b/libcharsetdetect/nspr-emu/prcpucfg_linux.h +@@ -458,6 +458,52 @@ + #define PR_BYTES_PER_WORD_LOG2 3 + #define PR_BYTES_PER_DWORD_LOG2 3 + ++#elif defined(__riscv) && __riscv_xlen == 64 ++ ++#define IS_LITTLE_ENDIAN 1 ++#undef IS_BIG_ENDIAN ++#define IS_64 ++ ++#define PR_BYTES_PER_BYTE 1 ++#define PR_BYTES_PER_SHORT 2 ++#define PR_BYTES_PER_INT 4 ++#define PR_BYTES_PER_INT64 8 ++#define PR_BYTES_PER_LONG 8 ++#define PR_BYTES_PER_FLOAT 4 ++#define PR_BYTES_PER_DOUBLE 8 ++#define PR_BYTES_PER_WORD 8 ++#define PR_BYTES_PER_DWORD 8 ++ ++#define PR_BITS_PER_BYTE 8 ++#define PR_BITS_PER_SHORT 16 ++#define PR_BITS_PER_INT 32 ++#define PR_BITS_PER_INT64 64 ++#define PR_BITS_PER_LONG 64 ++#define PR_BITS_PER_FLOAT 32 ++#define PR_BITS_PER_DOUBLE 64 ++#define PR_BITS_PER_WORD 64 ++ ++#define PR_BITS_PER_BYTE_LOG2 3 ++#define PR_BITS_PER_SHORT_LOG2 4 ++#define PR_BITS_PER_INT_LOG2 5 ++#define PR_BITS_PER_INT64_LOG2 6 ++#define PR_BITS_PER_LONG_LOG2 6 ++#define PR_BITS_PER_FLOAT_LOG2 5 ++#define PR_BITS_PER_DOUBLE_LOG2 6 ++#define PR_BITS_PER_WORD_LOG2 6 ++ ++#define PR_ALIGN_OF_SHORT 2 ++#define PR_ALIGN_OF_INT 4 ++#define PR_ALIGN_OF_LONG 8 ++#define PR_ALIGN_OF_INT64 8 ++#define PR_ALIGN_OF_FLOAT 4 ++#define PR_ALIGN_OF_DOUBLE 8 ++#define PR_ALIGN_OF_POINTER 8 ++#define PR_ALIGN_OF_WORD 8 ++ ++#define PR_BYTES_PER_WORD_LOG2 3 ++#define PR_BYTES_PER_DWORD_LOG2 3 ++ + #elif defined(__mips__) + + #ifdef __MIPSEB__ +--- a/libcharsetdetect/nspr-emu/prcpucfg_openbsd.h ++++ b/libcharsetdetect/nspr-emu/prcpucfg_openbsd.h +@@ -330,6 +330,53 @@ + #define PR_ALIGN_OF_POINTER 8 + #define PR_ALIGN_OF_WORD 8 + ++#elif defined(__riscv) && __riscv_xlen == 64 ++ ++#define IS_LITTLE_ENDIAN 1 ++#undef IS_BIG_ENDIAN ++#define HAVE_ALIGNED_DOUBLES ++#define HAVE_ALIGNED_LONGLONGS ++#define IS_64 ++ ++#define PR_BYTES_PER_BYTE 1 ++#define PR_BYTES_PER_SHORT 2 ++#define PR_BYTES_PER_INT 4 ++#define PR_BYTES_PER_INT64 8 ++#define PR_BYTES_PER_LONG 8 ++#define PR_BYTES_PER_FLOAT 4 ++#define PR_BYTES_PER_DOUBLE 8 ++#define PR_BYTES_PER_WORD 8 ++#define PR_BYTES_PER_DWORD 8 ++#define PR_BYTES_PER_WORD_LOG2 3 ++#define PR_BYTES_PER_DWORD_LOG2 3 ++ ++#define PR_BITS_PER_BYTE 8 ++#define PR_BITS_PER_SHORT 16 ++#define PR_BITS_PER_INT 32 ++#define PR_BITS_PER_INT64 64 ++#define PR_BITS_PER_LONG 64 ++#define PR_BITS_PER_FLOAT 32 ++#define PR_BITS_PER_DOUBLE 64 ++#define PR_BITS_PER_WORD 64 ++ ++#define PR_BITS_PER_BYTE_LOG2 3 ++#define PR_BITS_PER_SHORT_LOG2 4 ++#define PR_BITS_PER_INT_LOG2 5 ++#define PR_BITS_PER_INT64_LOG2 6 ++#define PR_BITS_PER_LONG_LOG2 6 ++#define PR_BITS_PER_FLOAT_LOG2 5 ++#define PR_BITS_PER_DOUBLE_LOG2 6 ++#define PR_BITS_PER_WORD_LOG2 6 ++ ++#define PR_ALIGN_OF_SHORT 2 ++#define PR_ALIGN_OF_INT 4 ++#define PR_ALIGN_OF_LONG 8 ++#define PR_ALIGN_OF_INT64 8 ++#define PR_ALIGN_OF_FLOAT 4 ++#define PR_ALIGN_OF_DOUBLE 8 ++#define PR_ALIGN_OF_POINTER 8 ++#define PR_ALIGN_OF_WORD 8 ++ + #else + + #error "Unknown CPU architecture" +--- a/libcharsetdetect/nspr-emu/prcpucfg_win.h ++++ b/libcharsetdetect/nspr-emu/prcpucfg_win.h +@@ -100,7 +100,7 @@ + #define PR_BYTES_PER_WORD_LOG2 2 + #define PR_BYTES_PER_DWORD_LOG2 2 + +-#elif defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_) || defined(__x86_64) || defined(__loongarch64) ++#elif defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_) || defined(__x86_64) || defined(__loongarch64) || defined(__riscv) && __riscv_xlen == 64 + + #define IS_LITTLE_ENDIAN 1 + #undef IS_BIG_ENDIAN diff -Nru haskell-charsetdetect-ae-1.1.0.4/debian/patches/series haskell-charsetdetect-ae-1.1.0.4/debian/patches/series --- haskell-charsetdetect-ae-1.1.0.4/debian/patches/series 2024-08-15 16:38:03.000000000 +0000 +++ haskell-charsetdetect-ae-1.1.0.4/debian/patches/series 2025-05-07 14:50:11.000000000 +0000 @@ -1,2 +1,3 @@ kfreebsd add-loongarch-support.patch +add-riscv64-support.patch
signature.asc
Description: PGP signature