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);