lcms2 make check on powerpc64 LE platform was failing it's endianness
check.

After a bit of debug, we've determined that the __BYTE_ORDER__, and
__LITTLE_ENDIAN__ macros used in lcms2.h are missing their trialing
underscores, so the intended check is failing for the wrong reasons.

Also need to compare the __BYTE_ORDER__ value to the
__ORDER_LITTLE_ENDIAN__ value of (4321), instead of to the value of
__LITTLE_ENDIAN (1).  

For reference, The defined macros can be viewed by  "gcc -E -dM -
< /dev/null".   On this platform, the related entries are:
#define __ORDER_LITTLE_ENDIAN__ 1234
#define _LITTLE_ENDIAN 1
#define __LITTLE_ENDIAN__ 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__

Thanks, 
-Will

diff --git a/include/lcms2.h b/include/lcms2.h
index a0eeea7..29b0d6d 100644
--- a/include/lcms2.h
+++ b/include/lcms2.h
@@ -192,8 +192,8 @@ typedef int                  cmsBool;
 
 #if defined(__powerpc__) || defined(__ppc__) || defined(TARGET_CPU_PPC)
 #   define CMS_USE_BIG_ENDIAN   1
-#   if defined (__GNUC__) && defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN)
-#       if __BYTE_ORDER  == __LITTLE_ENDIAN
+#   if defined (__GNUC__) && defined(__BYTE_ORDER__) && 
defined(__LITTLE_ENDIAN__)
+#       if __BYTE_ORDER__  == __ORDER_LITTLE_ENDIAN__
 //               // Don't use big endian for PowerPC little endian mode
 #                undef CMS_USE_BIG_ENDIAN
 #       endif



------------------------------------------------------------------------------
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to