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