Blame alac-endian.patch

Bernhard M. Wiedemann d161be
Index: codec/EndianPortable.c
Bernhard M. Wiedemann d161be
===================================================================
Bernhard M. Wiedemann d161be
--- codec/EndianPortable.c.orig
Bernhard M. Wiedemann d161be
+++ codec/EndianPortable.c
Bernhard M. Wiedemann d161be
@@ -25,20 +25,15 @@
Bernhard M. Wiedemann d161be
 //
Bernhard M. Wiedemann d161be
 
Bernhard M. Wiedemann d161be
 #include <stdio.h>
Bernhard M. Wiedemann d161be
+#include <byteswap.h>
Bernhard M. Wiedemann d161be
+#include <endian.h>
Bernhard M. Wiedemann d161be
 #include "EndianPortable.h"
Bernhard M. Wiedemann d161be
 
Bernhard M. Wiedemann d161be
-#define BSWAP16(x) (((x << 8) | ((x >> 8) & 0x00ff)))
Bernhard M. Wiedemann d161be
-#define BSWAP32(x) (((x << 24) | ((x << 8) & 0x00ff0000) | ((x >> 8) & 0x0000ff00) | ((x >> 24) & 0x000000ff)))
Bernhard M. Wiedemann d161be
-#define BSWAP64(x) ((((int64_t)x << 56) | (((int64_t)x << 40) & 0x00ff000000000000LL) | \
Bernhard M. Wiedemann d161be
-                    (((int64_t)x << 24) & 0x0000ff0000000000LL) | (((int64_t)x << 8) & 0x000000ff00000000LL) | \
Bernhard M. Wiedemann d161be
-                    (((int64_t)x >> 8) & 0x00000000ff000000LL) | (((int64_t)x >> 24) & 0x0000000000ff0000LL) | \
Bernhard M. Wiedemann d161be
-                    (((int64_t)x >> 40) & 0x000000000000ff00LL) | (((int64_t)x >> 56) & 0x00000000000000ffLL)))
Bernhard M. Wiedemann d161be
+#define BSWAP16(x) bswap_16(x)
Bernhard M. Wiedemann d161be
+#define BSWAP32(x) bswap_32(x)
Bernhard M. Wiedemann d161be
+#define BSWAP64(x) bswap_64(x)
Bernhard M. Wiedemann d161be
 
Bernhard M. Wiedemann d161be
-#if defined(__i386__)
Bernhard M. Wiedemann d161be
-#define TARGET_RT_LITTLE_ENDIAN 1
Bernhard M. Wiedemann d161be
-#elif defined(__x86_64__)
Bernhard M. Wiedemann d161be
-#define TARGET_RT_LITTLE_ENDIAN 1
Bernhard M. Wiedemann d161be
-#elif defined (TARGET_OS_WIN32)
Bernhard M. Wiedemann d161be
+#if __BYTE_ORDER == __LITTLE_ENDIAN
Bernhard M. Wiedemann d161be
 #define TARGET_RT_LITTLE_ENDIAN 1
Bernhard M. Wiedemann d161be
 #endif
Bernhard M. Wiedemann d161be
 
Bernhard M. Wiedemann d161be
Index: codec/ALACAudioTypes.h
Bernhard M. Wiedemann d161be
===================================================================
Bernhard M. Wiedemann d161be
--- codec/ALACAudioTypes.h.orig
Bernhard M. Wiedemann d161be
+++ codec/ALACAudioTypes.h
Bernhard M. Wiedemann d161be
@@ -42,10 +42,9 @@ extern "C" {
Bernhard M. Wiedemann d161be
 #endif
Bernhard M. Wiedemann d161be
 
Bernhard M. Wiedemann d161be
 #include <stdint.h>
Bernhard M. Wiedemann d161be
+#include <endian.h>
Bernhard M. Wiedemann d161be
 
Bernhard M. Wiedemann d161be
-#if defined(__ppc__)
Bernhard M. Wiedemann d161be
-#define TARGET_RT_BIG_ENDIAN 1
Bernhard M. Wiedemann d161be
-#elif defined(__ppc64__)
Bernhard M. Wiedemann d161be
+#if __BYTE_ORDER == __BIG_ENDIAN
Bernhard M. Wiedemann d161be
 #define TARGET_RT_BIG_ENDIAN 1
Bernhard M. Wiedemann d161be
 #endif
Bernhard M. Wiedemann d161be