Fix build for Windows ARM (UWP)

This fixes #576

Patch inspired by the same, but modified.

Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
This commit is contained in:
Steffen Jaeckel 2023-07-25 12:54:00 +02:00 committed by Jamie Reece Wilson
parent 29d29ca170
commit 17372d2e88

View File

@ -79,15 +79,15 @@ LTC_EXPORT int LTC_CALL XSTRCMP(const char *s1, const char *s2);
* The x86 platforms allow this but some others [ARM for instance] do not. On those platforms you **MUST** * The x86 platforms allow this but some others [ARM for instance] do not. On those platforms you **MUST**
* use the portable [slower] macros. * use the portable [slower] macros.
*/ */
/* detect x86/i386 32bit */ /* detect x86/i386/ARM 32bit */
#if defined(__i386__) || defined(__i386) || defined(_M_IX86) #if defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_ARM)
#define ENDIAN_LITTLE #define ENDIAN_LITTLE
#define ENDIAN_32BITWORD #define ENDIAN_32BITWORD
#define LTC_FAST #define LTC_FAST
#endif #endif
/* detect amd64/x64 */ /* detect amd64/x64/arm64 */
#if defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64) #if defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64) || defined(_M_ARM64)
#define ENDIAN_LITTLE #define ENDIAN_LITTLE
#define ENDIAN_64BITWORD #define ENDIAN_64BITWORD
#define LTC_FAST #define LTC_FAST
@ -195,7 +195,8 @@ LTC_EXPORT int LTC_CALL XSTRCMP(const char *s1, const char *s2);
defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || \ defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || \
defined(__LITTLE_ENDIAN__) || \ defined(__LITTLE_ENDIAN__) || \
defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || \ defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || \
defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || \
defined(_M_ARM) || defined(_M_ARM64)
#define ENDIAN_LITTLE #define ENDIAN_LITTLE
#else #else
#error Cannot detect endianness #error Cannot detect endianness
@ -219,7 +220,7 @@ LTC_EXPORT int LTC_CALL XSTRCMP(const char *s1, const char *s2);
defined(__s390x__) || defined(__arch64__) || defined(__aarch64__) || \ defined(__s390x__) || defined(__arch64__) || defined(__aarch64__) || \
defined(__sparcv9) || defined(__sparc_v9__) || defined(__sparc64__) || \ defined(__sparcv9) || defined(__sparc_v9__) || defined(__sparc64__) || \
defined(__ia64) || defined(__ia64__) || defined(__itanium__) || defined(_M_IA64) || \ defined(__ia64) || defined(__ia64__) || defined(__itanium__) || defined(_M_IA64) || \
defined(__LP64__) || defined(_LP64) || defined(__64BIT__) defined(__LP64__) || defined(_LP64) || defined(__64BIT__) || defined(_M_ARM64)
typedef unsigned ulong32; typedef unsigned ulong32;
#if !defined(ENDIAN_64BITWORD) && !defined(ENDIAN_32BITWORD) #if !defined(ENDIAN_64BITWORD) && !defined(ENDIAN_32BITWORD)
#define ENDIAN_64BITWORD #define ENDIAN_64BITWORD