1
0
mirror of https://git.code.sf.net/p/mingw-w64/mingw-w64 synced 2025-04-18 17:44:18 +03:00

crt: Provide _aligned_msize function for all CRT import libraries

Function _aligned_msize() is available only in msvcr80+ and UCRT. It is not
available in msvcrt.dll system os library.

Now when the mingw-w64 aligned functions use same alignment and gap
calculation we can use mingw-w64 __mingw_aligned_msize() function as
implementation for CRT's _aligned_msize() function.

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Pali Rohár 2025-04-08 00:20:46 +02:00 committed by Martin Storsjö
parent b8a0910a88
commit b40e24afb1
5 changed files with 18 additions and 3 deletions

View File

@ -323,6 +323,7 @@ src_msvcrt=\
misc/__iswcsymf.c \
misc/__sys_errlist.c \
misc/__sys_nerr.c \
misc/_aligned_msize.c \
misc/_configthreadlocale.c \
misc/_set_purecall_handler.c \
misc/imaxdiv.c \
@ -811,6 +812,7 @@ src_pre_msvcr80=\
misc/__iswcsymf.c \
misc/__sys_errlist.c \
misc/__sys_nerr.c \
misc/_aligned_msize.c \
misc/_configthreadlocale.c \
misc/_get_errno.c \
misc/_initterm_e.c \

View File

@ -0,0 +1,13 @@
/**
* 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.
*/
#include <malloc.h>
size_t __cdecl _aligned_msize(void *memory, size_t alignment, size_t offset)
{
return __mingw_aligned_msize(memory, alignment, offset);
}
size_t (__cdecl *__MINGW_IMP_SYMBOL(_aligned_msize))(void *, size_t, size_t) = _aligned_msize;

View File

@ -165,8 +165,8 @@ extern "C" {
#define _recalloc_dbg(p,c,s,t,f,l) _recalloc(p,c,s)
#define _aligned_recalloc_dbg(p,c,s,a,f,l) _aligned_realloc(p,c,s,a)
#define _aligned_offset_recalloc_dbg(p,c,s,a,o,f,l) _aligned_offset_recalloc(p,c,s,a,o)
#define _aligned_msize_dbg(p,a,o) _aligned_msize(p,a,o)
#endif
#define _aligned_msize_dbg(p,a,o) _aligned_msize(p,a,o)
#define _malloca_dbg(s,t,f,l) _malloca(s)
#define _freea_dbg(p,t) _freea(p)

View File

@ -106,8 +106,8 @@ extern "C" {
_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);
# endif
_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")

View File

@ -462,8 +462,8 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
_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);
# endif
_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")