slackbuilds/libraries/FreeImage/cross_platform_byteswap_fix...

23 lines
911 B
Diff

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