This patch series provides all _aligned_* functions for all CRT import libs.
PATCH v3 fixes __mingw_aligned_msize() for alignment < sizeof(void*) and
changes mingw-aligned-malloc.c to be compatible with MS CRT functions.
New tests are in t_aligned_alloc.c too.
Now the t_aligned_alloc.c test is passing with different CRT libraries:
crtdll, msvcr40d, msvcrt, msvcr70, UCRT...
crtdll and msvcr40d are using only mingw-w64 emulated functions
msvcrt and msvcr70 are using CRT functions for allocation and mingw-w64
emulation for aligned msize
UCRT is using CRT functions only, none mingw-w64 emulation
It does not pass with msvcrt10 and msvcrt20 because these libraries have
broken _msize() function. The first malloc/_msize test in the file
t_aligned_alloc.c is failing.
Pali Rohár (7):
headers: Add missing declaration for __mingw_aligned_offset_malloc()
crt: Provide _aligned_* functions
crt: Implement __mingw_aligned_msize() function
crt: Change mingw-aligned-malloc.c to be compatible with MS CRT
functions
crt: Provide _aligned_msize function for all CRT import libraries
crt: Provide *_recalloc functions
crt: Add test case for _aligned_* and *_recalloc functions
mingw-w64-crt/Makefile.am | 19 +++
mingw-w64-crt/lib-common/msvcrt.def.in | 10 +-
mingw-w64-crt/misc/_aligned_free.c | 18 ++
mingw-w64-crt/misc/_aligned_malloc.c | 18 ++
mingw-w64-crt/misc/_aligned_msize.c | 13 ++
mingw-w64-crt/misc/_aligned_offset_malloc.c | 18 ++
mingw-w64-crt/misc/_aligned_offset_realloc.c | 18 ++
mingw-w64-crt/misc/_aligned_offset_recalloc.c | 25 +++
mingw-w64-crt/misc/_aligned_realloc.c | 18 ++
mingw-w64-crt/misc/_aligned_recalloc.c | 25 +++
mingw-w64-crt/misc/_recalloc.c | 25 +++
mingw-w64-crt/misc/mingw-aligned-malloc.c | 40 ++++-
mingw-w64-crt/testcases/t_aligned_alloc.c | 156 ++++++++++++++++++
mingw-w64-headers/crt/crtdbg.h | 2 -
mingw-w64-headers/crt/malloc.h | 4 +-
mingw-w64-headers/crt/stdlib.h | 2 -
16 files changed, 393 insertions(+), 18 deletions(-)
create mode 100644 mingw-w64-crt/misc/_aligned_free.c
create mode 100644 mingw-w64-crt/misc/_aligned_malloc.c
create mode 100644 mingw-w64-crt/misc/_aligned_msize.c
create mode 100644 mingw-w64-crt/misc/_aligned_offset_malloc.c
create mode 100644 mingw-w64-crt/misc/_aligned_offset_realloc.c
create mode 100644 mingw-w64-crt/misc/_aligned_offset_recalloc.c
create mode 100644 mingw-w64-crt/misc/_aligned_realloc.c
create mode 100644 mingw-w64-crt/misc/_aligned_recalloc.c
create mode 100644 mingw-w64-crt/misc/_recalloc.c
create mode 100644 mingw-w64-crt/testcases/t_aligned_alloc.c
--
2.20.1
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public