[MinGW-Notify] [mingw] #38607: Improved standards support for aligned memory allocators

Back to archive index
MinGW Notification List mingw****@lists*****
Fri Dec 21 05:52:36 JST 2018


#38607: Improved standards support for aligned memory allocators

  Open Date: 2018-09-17 18:25
Last Update: 2018-12-20 20:52

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:
2018-12-20 20:52 Updated by: keith

Comment:

I committed #33a73a6 and #68d0570. The former reimplements the original MinGW
aligned heap management API, correcting the identified deficiencies in the
original implementation, retaining each of the original API functions, and
adding mingw_realloc() and mingw_free() as discussed; the latter implements a
new test suite for the API, replacing the original test program, (which turned
out to be not particularly useful).

This reimplementation of the aligned heap management API will be incorporated
into the next WSL release. At this stage, I have not committed any
implementation for the proposed ISO-C11 aligned_alloc() and POSIX.1
posix_memalign() functions; I am deferring these, pending peer review, and user
demand.



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



More information about the MinGW-Notify mailing list
Back to archive index