#38607: Improved standards support for aligned memory allocators Open Date: 2018-09-17 19:25 Last Update: 2020-04-19 14:03 URL for this Ticket: https://osdn.net//projects/mingw/ticket/38607 RSS feed for this Ticket: https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=38607 --------------------------------------------------------------------- Last Changes/Comment on this Ticket: 2020-04-19 14:03 Updated by: keith Comment: I've simplified the previous implementation of both the ISO-C11 aligned_alloc (), and the POSIX.1-2001 posix_memalign() functions, and separated them into two individual patches; please note that the latter is dependent on the former, to the extent that the former substitutes __mingw_free() and __mingw_realloc() for free() and realloc() respectively. --------------------------------------------------------------------- Ticket Status: Reporter: keith Owner: (None) Type: Feature Request Status: Open Priority: 5 - Medium MileStone: (None) Component: WSL Severity: 5 - Medium Resolution: None --------------------------------------------------------------------- Ticket details: Microsoft introduced _aligned_malloc(), and associated functions, with MSVCR70.DLL. Although subsequently supported in MSVCRT.DLL, from WinXP onwards, exposure of these APIs interferes with a clean build of GCC — not only insofar as, having detected presence of the APIs, GCC would become dependent on WinXP and later, thus needlessly breaking legacy support, but furthermore, the GCC sources neglect to include the requisite <malloc.h> header file, and thus do not build cleanly. Legacy support for similar APIs was added to MinGW, in 2003/2004, under feature request #260; however, it may be ill-advised to make GCC dependent on these MinGW specific APIs, for the following reasons:— 1. A patch, to incorporate them, would be unlikely to be accepted upstream. 2. If the APIs are not detected, GCC will provide its own replacement functions. 3. A review reveals potential flaws in the MinGW implementation. Consequently, I suggest:— 1. **Not** exposing the Microsoft APIs in libmsvcrt.a 2. Reworking the MinGW implementation, to address potential flaws. 3. Consider adding support for ISO-C11's aligned_alloc() and POSIX.1's posix_memalign() APIs. -- Ticket information of MinGW - Minimalist GNU for Windows project MinGW - Minimalist GNU for Windows Project is hosted on OSDN Project URL: https://osdn.net/projects/mingw/ OSDN: https://osdn.net URL for this Ticket: https://osdn.net/projects/mingw/ticket/38607 RSS feed for this Ticket: https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=38607