tag 523813 +patch
thanks

The endian detection code is broken. It also fails on s390.

Attached is a fully untested patch (or well, it builds on i386 and amd64), but 
beside that, untested.

/Sune
-- 
How could I disable a driver?

First of all you have to save the head of the port in order to debug the 3Dfx 
directory.

--- a/dngconverter/dngwriter/extra/dng_sdk/dng_flags.h
+++ b/dngconverter/dngwriter/extra/dng_sdk/dng_flags.h
@@ -65,51 +65,28 @@
 /// \def qDNGBigEndian 1 if this target platform is big endian (e.g. PowerPC Macintosh), else 0
 /// \def qDNGLittleEndian 1 if this target platform is little endian (e.g. x86 processors), else 0
 
-#ifndef qDNGBigEndian
+#if !defined(qDNGBigEndian) 
 
-#if defined(qDNGLittleEndian)
-#define qDNGBigEndian !qDNGLittleEndian
+#include <endian.h>
 
-#elif defined(__hppa__)
-#define qDNGBigEndian 1
-
-#elif defined(__sparc__)
-#define qDNGBigEndian 1
-
-#elif defined(__POWERPC__)
-#define qDNGBigEndian 1
-
-#elif defined(__INTEL__)
-#define qDNGBigEndian 0
-
-#elif defined(_M_IX86)
+#if __BYTE_ORDER == __LITTLE_ENDIAN
 #define qDNGBigEndian 0
 
-#elif defined(_M_X64)
-#define qDNGBigEndian 0
-
-#elif defined(__LITTLE_ENDIAN__)
-#define qDNGBigEndian 0
-
-#elif defined(__BIG_ENDIAN__)
+#elif __BYTE_ORDER == __BIG_ENDIAN
 #define qDNGBigEndian 1
 
 #else
 
-#ifndef qXCodeRez
 #error Unable to figure out byte order.
-#endif
 
 #endif
-#endif
 
-#ifndef qXCodeRez
+#endif
 
-#ifndef qDNGLittleEndian
+#if !defined(qDNGLittleEndian) 
 #define qDNGLittleEndian !qDNGBigEndian
 #endif
 
-#endif
 
 /*****************************************************************************/
 

Reply via email to