diff -up FreeImage/Source/LibJXR/image/decode/segdec.c.orig FreeImage/Source/LibJXR/image/decode/segdec.c --- FreeImage/Source/LibJXR/image/decode/segdec.c.orig 2024-08-18 02:32:53.595421505 -0500 +++ FreeImage/Source/LibJXR/image/decode/segdec.c 2024-08-18 02:33:41.184788298 -0500 @@ -29,6 +29,18 @@ #include "strcodec.h" #include "decode.h" +// Conditional definition of _byteswap_ulong for cross-platform compatibility +#ifdef _MSC_VER + #include <intrin.h> // Use the Microsoft-specific function on MSVC +#else + #include <stdint.h> // Standard header for fixed-width integers + + // Define the Microsoft-specific function for non-MSVC compilers + static inline uint32_t _byteswap_ulong(uint32_t x) { + return __builtin_bswap32(x); // GCC/Clang built-in function for Linux + } +#endif + #ifdef MEM_TRACE #define TRACE_MALLOC 1 #define TRACE_NEW 0