This file is part of MXE. See LICENSE.md for licensing information.

Contains ad hoc patches for cross building.

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martin Lambers <marlam@marlam.de>
Date: Mon, 23 Feb 2026 11:48:38 +0100
Subject: [PATCH 1/2] fix aligned alloc


diff --git a/IlmImf/ImfSystemSpecific.h b/IlmImf/ImfSystemSpecific.h
index 1111111..2222222 100644
--- a/IlmImf/ImfSystemSpecific.h
+++ b/IlmImf/ImfSystemSpecific.h
@@ -60,6 +60,20 @@ static bool GLOBAL_SYSTEM_LITTLE_ENDIAN =
 #define EXR_FORCEINLINE inline
 #define EXR_RESTRICT __restrict
 
+#ifdef __MINGW32__
+
+static void* EXRAllocAligned(size_t size, size_t alignment)
+{
+    return _aligned_malloc(size, alignment);
+}
+
+static void EXRFreeAligned(void* ptr)
+{
+    return _aligned_free(ptr);
+}
+
+#else
+
 static void* EXRAllocAligned(size_t size, size_t alignment)
 {
     void* ptr = 0;
@@ -67,12 +81,12 @@ static void* EXRAllocAligned(size_t size, size_t alignment)
     return ptr;
 }
 
-
 static void EXRFreeAligned(void* ptr)
 {
     free(ptr);
 }
 
+#endif
 #elif defined _MSC_VER
 
 #define EXR_FORCEINLINE __forceinline

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Saikrishna Arcot <saiarcot895@gmail.com>
Date: Mon, 5 Oct 2015 21:16:35 -0400
Subject: [PATCH 2/2] Correct pointer conversion.


diff --git a/IlmImf/ImfOptimizedPixelReading.h b/IlmImf/ImfOptimizedPixelReading.h
index 1111111..2222222 100644
--- a/IlmImf/ImfOptimizedPixelReading.h
+++ b/IlmImf/ImfOptimizedPixelReading.h
@@ -70,7 +70,7 @@ EXR_FORCEINLINE
 bool
 isPointerSSEAligned (const void* EXR_RESTRICT pPointer)
 {
-    unsigned long trailingBits = ((unsigned long)pPointer) & 15;
+    uintptr_t trailingBits = ((uintptr_t)pPointer) & 15;
     return trailingBits == 0;
 }
 
