Subject: [PATCH] gnu: libcbor: Fix cross-compiling to 32-bit architecture
From: Christoph Buck <[email-masked]>
To: [email-masked]
Cc: Christoph Buck <[email-masked]>
Date: Thu, 12 Dec 2024 14:04:35 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/compression.scm (libcbor)[arguments]: Disable examples because
they don't build during cross-compilation. The callback definition
`find_string` in examples/streaming_parser.c uses `size_t` as type for
argument `len` which is 4 bytes on a 32bit platform. However, the callback
handler of type `cbor_callbacks.string` to which `find_string` is assigned
expects an `uint64_t`. Since the examples are not required this patch will
disable them from the build.

Change-Id: I596a62a9d0ab936179c8344e91ecc2cb0419316f
---
 gnu/packages/compression.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 99ea090091..eb3968cbce 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2919,6 +2919,7 @@ (define-public libcbor
           "-DCMAKE_BUILD_TYPE=Release"
           "-DBUILD_SHARED_LIBS=ON"
           "-DCBOR_CUSTOM_ALLOC=ON"
+          "-DWITH_EXAMPLES=OFF"
           (string-append "-DCMAKE_INSTALL_LIBDIR=" lib)
           (string-append "-DCMAKE_INSTALL_RPATH=" lib)))))
     (synopsis "The C library for parsing and generating CBOR")

base-commit: d916d3b1568a2def0dfb9089d61f2202db35beb7
-- 
2.46.0