From ac395384bfb170f88e3e31adb831f6961e1ee915 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Mon, 3 Apr 2023 05:12:02 +0800 Subject: [PATCH] serialize.c: fix for Darwin PPC --- src/serialize.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/serialize.c b/src/serialize.c index 2b0a1b2..da62045 100644 --- src/serialize.c +++ src/serialize.c @@ -39,6 +39,16 @@ defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__) // It's a big-endian target architecture #define __IS_BIG_ENDIAN__ +#ifdef __APPLE__ +// Make sure that byte swap functions are not already defined. +#if !defined(bswap_16) +// Mac OS X / Darwin features +#include +#define __bswap_16(x) OSSwapInt16(x) +#define __bswap_32(x) OSSwapInt32(x) +#define byteSwapDouble(x) OSSwapInt64(x) +#endif +#else #include static double byteSwapDouble(double v) { @@ -56,6 +66,7 @@ static double byteSwapDouble(double v) memcpy(&result, out, 8); return result; } +#endif #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || \ defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || \ defined(__LITTLE_ENDIAN__) || \