Package: marisa
Version: 0.2.4-5
Severity: importnat
Tags: upstream patch
Justification: fails to build from source

marisa fails to build from source on s390x due to testsuite failures. It
appears that it uses an hardcoded list of architectures to determine the
size of a size_t type, which doesn't include s390x. The patch below
fixes the issue:

--- marisa-0.2.4.orig/lib/marisa/base.h
+++ marisa-0.2.4/lib/marisa/base.h
@@ -30,7 +30,7 @@ typedef uint64_t marisa_uint64;
 
 #if defined(_WIN64) || defined(__amd64__) || defined(__x86_64__) || \
     defined(__ia64__) || defined(__ppc64__) || defined(__powerpc64__) || \
-    defined(__sparc64__) || defined(__mips64__) || defined(__aarch64__)
+    defined(__sparc64__) || defined(__mips64__) || defined(__aarch64__) || 
defined(__s390x__)
  #define MARISA_WORD_SIZE 64
 #else  // defined(_WIN64), etc.
  #define MARISA_WORD_SIZE 32

BTW, __sparc64__ doesn't exist and should be replaced by (__sparc__ && 
__arch64__)

That said, I don't really see the point of using an hardcoded
architecture list to determine the size of a size_t type. This can be
done the following way:

| #include <stdint.h>
|
| #if SIZE_MAX == UINT64_MAX
|  #define MARISA_WORD_SIZE 64
| #else
|  #define MARISA_WORD_SIZE 32
| #endif

However as marisa is using autotools, the best way to do that would be
to add a test in configure.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: s390x

Kernel: Linux 3.2.0-4-s390x (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to