Subject: | Digest::Tiger chooses incorrect Endianness for x86_64 machines |
Date: | Fri, 25 Mar 2011 14:26:55 -0500 (CDT) |
To: | bug-Digest-Tiger [...] rt.cpan.org |
From: | Kyle Bresin <kyle [...] bresin.com> |
The logic in Tiger.xs assigns all architectures other than alpha, i386 and
vax as BIG_ENDIAN.
This causes it to define BIG_ENDIAN on all x86_64 machines, which causes
all test cases to fail.
Here's a patch that fixed the problem for me:
--- Digest-Tiger-0.02/Tiger.xs 2002-06-16 13:59:05.000000000 -0700
+++ Digest-Tiger-0.02-x86_64-patched/Tiger.xs 2011-03-25
12:19:12.000000000 -0700
@@ -11,7 +11,7 @@
typedef unsigned char byte;
/* Big endian: */
-#if !(defined(__alpha)||defined(__i386__)||defined(__vax__))
+#if !(defined(__alpha)||defined(__i386__)||defined(__vax__)||defined(__x86_64__))
#define BIG_ENDIAN
#else
#undef BIG_ENDIAN
kyle.
--
Kyle Bresin
kyle@bresin.com