headers: crt: split out corecrt_malloc.h

memalignment is kept in stdlib.h, as this is part of ISO C23, and MSVC
doesn't provide it.

Also remove _CRT_ALLOCATION_DEFINED.

Signed-off-by: Zhongteng Gui <dragon-archer@outlook.com>
Signed-off-by: LIU Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/crt/corecrt_malloc.h b/mingw-w64-headers/crt/corecrt_malloc.h
new file mode 100644
index 0000000..cf14180
--- /dev/null
+++ b/mingw-w64-headers/crt/corecrt_malloc.h
@@ -0,0 +1,76 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_CORECRT_MALLOC
+#define _INC_CORECRT_MALLOC
+
+#include <corecrt.h>
+
+_CRT_BEGIN_C_HEADER
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("calloc")
+#undef calloc
+#pragma push_macro("free")
+#undef free
+#pragma push_macro("malloc")
+#undef malloc
+#pragma push_macro("realloc")
+#undef realloc
+#pragma push_macro("_aligned_free")
+#undef _aligned_free
+#pragma push_macro("_aligned_malloc")
+#undef _aligned_malloc
+#pragma push_macro("_aligned_offset_malloc")
+#undef _aligned_offset_malloc
+#pragma push_macro("_aligned_realloc")
+#undef _aligned_realloc
+#pragma push_macro("_aligned_offset_realloc")
+#undef _aligned_offset_realloc
+#pragma push_macro("_recalloc")
+#undef _recalloc
+#pragma push_macro("_aligned_recalloc")
+#undef _aligned_recalloc
+#pragma push_macro("_aligned_offset_recalloc")
+#undef _aligned_offset_recalloc
+#pragma push_macro("_aligned_msize")
+#undef _aligned_msize
+#endif
+
+  void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
+  void __cdecl free(void *_Memory);
+  void *__cdecl malloc(size_t _Size);
+  void *__cdecl realloc(void *_Memory,size_t _NewSize);
+
+  _CRTIMP void __cdecl _aligned_free(void *_Memory);
+  _CRTIMP void *__cdecl _aligned_malloc(size_t _Size,size_t _Alignment);
+
+  _CRTIMP void *__cdecl _aligned_offset_malloc(size_t _Size,size_t _Alignment,size_t _Offset);
+  _CRTIMP void *__cdecl _aligned_realloc(void *_Memory,size_t _Size,size_t _Alignment);
+  _CRTIMP void *__cdecl _aligned_offset_realloc(void *_Memory,size_t _Size,size_t _Alignment,size_t _Offset);
+  _CRTIMP void *__cdecl _recalloc(void *_Memory,size_t _Count,size_t _Size);
+  _CRTIMP void *__cdecl _aligned_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment);
+  _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
+  _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("calloc")
+#pragma pop_macro("free")
+#pragma pop_macro("malloc")
+#pragma pop_macro("realloc")
+#pragma pop_macro("_aligned_free")
+#pragma pop_macro("_aligned_malloc")
+#pragma pop_macro("_aligned_offset_malloc")
+#pragma pop_macro("_aligned_realloc")
+#pragma pop_macro("_aligned_offset_realloc")
+#pragma pop_macro("_recalloc")
+#pragma pop_macro("_aligned_recalloc")
+#pragma pop_macro("_aligned_offset_recalloc")
+#pragma pop_macro("_aligned_msize")
+#endif
+
+_CRT_END_C_HEADER
+
+#endif
diff --git a/mingw-w64-headers/crt/malloc.h b/mingw-w64-headers/crt/malloc.h
index 64edc3d..84b3db8 100644
--- a/mingw-w64-headers/crt/malloc.h
+++ b/mingw-w64-headers/crt/malloc.h
@@ -7,6 +7,7 @@
 #define _MALLOC_H_
 
 #include <crtdefs.h>
+#include <corecrt_malloc.h>
 
 _CRT_BEGIN_C_HEADER
 
@@ -38,72 +39,6 @@
 #define _amblksiz (*__p__amblksiz())
   _CRTIMP unsigned int *__cdecl __p__amblksiz(void);
 
-#ifndef _CRT_ALLOCATION_DEFINED
-#define _CRT_ALLOCATION_DEFINED
-
-#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
-#pragma push_macro("calloc")
-#undef calloc
-#pragma push_macro("free")
-#undef free
-#pragma push_macro("malloc")
-#undef malloc
-#pragma push_macro("realloc")
-#undef realloc
-#pragma push_macro("_aligned_free")
-#undef _aligned_free
-#pragma push_macro("_aligned_malloc")
-#undef _aligned_malloc
-#pragma push_macro("_aligned_offset_malloc")
-#undef _aligned_offset_malloc
-#pragma push_macro("_aligned_realloc")
-#undef _aligned_realloc
-#pragma push_macro("_aligned_offset_realloc")
-#undef _aligned_offset_realloc
-#pragma push_macro("_recalloc")
-#undef _recalloc
-#pragma push_macro("_aligned_recalloc")
-#undef _aligned_recalloc
-#pragma push_macro("_aligned_offset_recalloc")
-#undef _aligned_offset_recalloc
-#pragma push_macro("_aligned_msize")
-#undef _aligned_msize
-#endif
-
-  void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
-  void __cdecl free(void *_Memory);
-  void *__cdecl malloc(size_t _Size);
-  void *__cdecl realloc(void *_Memory,size_t _NewSize);
-
-  _CRTIMP void __cdecl _aligned_free(void *_Memory);
-  _CRTIMP void *__cdecl _aligned_malloc(size_t _Size,size_t _Alignment);
-
-  _CRTIMP void *__cdecl _aligned_offset_malloc(size_t _Size,size_t _Alignment,size_t _Offset);
-  _CRTIMP void *__cdecl _aligned_realloc(void *_Memory,size_t _Size,size_t _Alignment);
-  _CRTIMP void *__cdecl _aligned_offset_realloc(void *_Memory,size_t _Size,size_t _Alignment,size_t _Offset);
-  _CRTIMP void *__cdecl _recalloc(void *_Memory,size_t _Count,size_t _Size);
-  _CRTIMP void *__cdecl _aligned_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment);
-  _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
-  _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
-
-#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
-#pragma pop_macro("calloc")
-#pragma pop_macro("free")
-#pragma pop_macro("malloc")
-#pragma pop_macro("realloc")
-#pragma pop_macro("_aligned_free")
-#pragma pop_macro("_aligned_malloc")
-#pragma pop_macro("_aligned_offset_malloc")
-#pragma pop_macro("_aligned_realloc")
-#pragma pop_macro("_aligned_offset_realloc")
-#pragma pop_macro("_recalloc")
-#pragma pop_macro("_aligned_recalloc")
-#pragma pop_macro("_aligned_offset_recalloc")
-#pragma pop_macro("_aligned_msize")
-#endif
-
-#endif
-
 /* Users should really use MS provided versions */
 void * __mingw_aligned_malloc (size_t _Size, size_t _Alignment);
 void __mingw_aligned_free (void *_Memory);
diff --git a/mingw-w64-headers/crt/stdlib.h b/mingw-w64-headers/crt/stdlib.h
index f750e15..3962822 100644
--- a/mingw-w64-headers/crt/stdlib.h
+++ b/mingw-w64-headers/crt/stdlib.h
@@ -7,6 +7,7 @@
 #define _INC_STDLIB
 
 #include <corecrt.h>
+#include <corecrt_malloc.h>
 #include <corecrt_wstdlib.h>
 #include <limits.h>
 
@@ -404,74 +405,10 @@
   _CRTIMP size_t __cdecl wcstombs(char * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CRTIMP size_t __cdecl _wcstombs_l(char * __restrict__ _Dest,const wchar_t * __restrict__ _Source,size_t _MaxCount,_locale_t _Locale) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
 
-#ifndef _CRT_ALLOCATION_DEFINED
-#define _CRT_ALLOCATION_DEFINED
-
-#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
-#pragma push_macro("calloc")
-#undef calloc
-#pragma push_macro("free")
-#undef free
-#pragma push_macro("malloc")
-#undef malloc
-#pragma push_macro("realloc")
-#undef realloc
-#pragma push_macro("_aligned_free")
-#undef _aligned_free
-#pragma push_macro("_aligned_malloc")
-#undef _aligned_malloc
-#pragma push_macro("_aligned_offset_malloc")
-#undef _aligned_offset_malloc
-#pragma push_macro("_aligned_realloc")
-#undef _aligned_realloc
-#pragma push_macro("_aligned_offset_realloc")
-#undef _aligned_offset_realloc
-#pragma push_macro("_recalloc")
-#undef _recalloc
-#pragma push_macro("_aligned_recalloc")
-#undef _aligned_recalloc
-#pragma push_macro("_aligned_offset_recalloc")
-#undef _aligned_offset_recalloc
-#pragma push_macro("_aligned_msize")
-#undef _aligned_msize
-#endif
-
-  void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
-  void __cdecl free(void *_Memory);
-  void *__cdecl malloc(size_t _Size);
-  void *__cdecl realloc(void *_Memory,size_t _NewSize);
-  _CRTIMP void __cdecl _aligned_free(void *_Memory);
-  _CRTIMP void *__cdecl _aligned_malloc(size_t _Size,size_t _Alignment);
-  _CRTIMP void *__cdecl _aligned_offset_malloc(size_t _Size,size_t _Alignment,size_t _Offset);
-  _CRTIMP void *__cdecl _aligned_realloc(void *_Memory,size_t _Size,size_t _Alignment);
-  _CRTIMP void *__cdecl _aligned_offset_realloc(void *_Memory,size_t _Size,size_t _Alignment,size_t _Offset);
-  _CRTIMP void *__cdecl _recalloc(void *_Memory,size_t _Count,size_t _Size);
-  _CRTIMP void *__cdecl _aligned_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment);
-  _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
-  _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
-
 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
   size_t __cdecl memalignment(const void *_Memory);
 #endif
 
-#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
-#pragma pop_macro("calloc")
-#pragma pop_macro("free")
-#pragma pop_macro("malloc")
-#pragma pop_macro("realloc")
-#pragma pop_macro("_aligned_free")
-#pragma pop_macro("_aligned_malloc")
-#pragma pop_macro("_aligned_offset_malloc")
-#pragma pop_macro("_aligned_realloc")
-#pragma pop_macro("_aligned_offset_realloc")
-#pragma pop_macro("_recalloc")
-#pragma pop_macro("_aligned_recalloc")
-#pragma pop_macro("_aligned_offset_recalloc")
-#pragma pop_macro("_aligned_msize")
-#endif
-
-#endif
-
   _CRTIMP int __cdecl _putenv(const char *_EnvString);
   _CRTIMP errno_t __cdecl _putenv_s(const char *_Name,const char *_Value);