#38607: Improved standards support for aligned memory allocators Open Date: 2018-09-17 19:25 Last Update: 2020-05-01 17:40 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-05-01 17:40 Updated by: keith * Status Update from Open to Closed * Owner Update from (None) to keith * Resolution Update from None to Accepted Comment: As of mingwrt-5.3.1, published on 30-Apr-2020 as a component of wsl-5.3.1, both C11's aligned_alloc(), and C++17's corresponding std::aligned_alloc() are now supported OOTB, as is POSIX.1-2001's posix_memalign(). --------------------------------------------------------------------- Ticket Status: Reporter: keith Owner: keith Type: Feature Request Status: Closed Priority: 5 - Medium MileStone: (None) Component: WSL Severity: 5 - Medium Resolution: Accepted --------------------------------------------------------------------- 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