Package: kraptor
Version: 0.0.20040403-1
Severity: important

Hi,

Your package is failing to build on all 64 bit arches with the
following error:
src/pmask.c:34: error: size of array `_compile_time_assert__' is negative

The problem is that MASK_WORD_BITBITS is not defined right for
our arch.

>From pmask.h:
//MASK_WORD_TYPE and MASK_WORD_BITBITS can be changed for your
//platform

//MASK_WORD_TYPE should be the largest fast integer type
//available
#define MASK_WORD_TYPE unsigned long int

//MASK_WORD_BITBITS should be the log base 2
//of the number of bits in MASK_WORD_TYPE
//e.g. 4 for 16-bit ints, 5 for 32-bit ints, 6 for 64-bit ints
#define MASK_WORD_BITBITS 5

Then there is:
#define MASK_WORD_SIZE sizeof(MASK_WORD_TYPE)
#define MASK_WORD_BITS (MASK_WORD_SIZE*8)

Which the later fails in pmask.c:
        COMPILE_TIME_ASSERT((1 << MASK_WORD_BITBITS) == MASK_WORD_BITS);

I suggest you do something as
#if defined(__alpha__) || defined(__ia64__) || defined(__x86_64__)
#define MASK_WORD_BITBITS 6
#else
#define MASK_WORD_BITBITS 5
#endif

I've attached a patch that does that.


Kurt

--- include/pmask.h.old 2005-06-03 19:30:46.460166688 +0200
+++ include/pmask.h     2005-06-03 19:38:18.848393224 +0200
@@ -44,7 +44,11 @@
 //MASK_WORD_BITBITS should be the log base 2
 //of the number of bits in MASK_WORD_TYPE
 //e.g. 4 for 16-bit ints, 5 for 32-bit ints, 6 for 64-bit ints
+#if defined(__alpha__) || defined(__ia64__) || defined(__x86_64__)
+#define MASK_WORD_BITBITS 6
+#else
 #define MASK_WORD_BITBITS 5
+#endif
 
 
 //if SINGLE_MEMORY_BLOCK is defined

Reply via email to