This is the official download site for the latest packages originating from the MinGW.OSDN Project, (formerly the MinGW.org Project; however, that domain is no longer associated with this project).
MinGW is a native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. Although (currently) offering only a 32-bit compiler suite, all of MinGW's software will execute on the 64bit Windows platforms.
MinGW is a registered trademark of Software in the Public Interest Inc., registration number 86017856; this trademark has been registered on behalf of the MinGW.OSDN Project, and its use by any other project is unauthorized.
2018-12-18 Keith Marshall <keith@users.osdn.me> Make <winver.h> header effectively self-contained. * include/winver.h: Include <windef.h> 2018-11-23 Keith Marshall <keith@users.osdn.me> Fix MinGW-Bug #2248 (SF ticket). * include/commctrl.h (NMPGSCROLL): Set packing to 1-byte alignment. (NMPGSCROLL.fwKeys): Change type from BOOL to WORD. 2018-11-23 Keith Marshall <keith@users.osdn.me> Apply some more cosmetic layout adjustments. * include/commctrl.h: Keep 'typedef' and 'struct' on a single line, for each untagged aggregate type definition. 2018-11-18 Jelle Geerts <heisenbug@users.osdn.me> Fix MinGW-Bug #38736 (OSDN ticket). * include/commctrl.h (DTM_SETFORMATW): Correct definition; was 0x1050, but should be equivalent to 0x1000 + 50, which is actually 0x1032. 2018-11-18 Keith Marshall <keith@users.osdn.me> Make <commctrl.h> header effectively self-contained. * include/commctrl.h: Tidy layout; assert copyright. Include <winbase.h> and <prsht.h>; both are required to resolve inter-header dependencies, so achieving effective self-containment. Correctly parenthesize argument references in macro definitions. (pragma GCC system_header): Remove redundant GCC version guard. (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons. (SNDMSG): Remove definition; it is inherited from <prsht.h> anyway. (__AW_ALIAS__, __AW_SUFFIXED__, __AW_STRING_A__, __AW_STRING_W__): Use them; they facilitate maintenance of robust definitions for... [UNICODE vs. ! UNICODE]: ...generic symbols and strings. (_BEGIN_C_DECLS, _END_C_DECLS): Use them. 2018-11-16 Keith Marshall <keith@users.osdn.me> Make <prsht.h> header effectively self-contained. * include/prsht.h: Tidy layout; assert copyright. Include <winuser.h> to resolve inter-header dependencies. Correctly parenthesize argument references in macro definitions. (pragma GCC system_header): Remove redundant GCC version guard. (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons. (SNDMSG, POSTMSG) [ifndef]: Remove guard condition; it prevents GCC from checking consistency of alternative definition sources. (__AW_SUFFIXED__): Use it; it improves robustness of... [UNICODE vs. ! UNICODE]: ...generic definitions. (_BEGIN_C_DECLS, _END_C_DECLS): Use them. 2018-10-29 Keith Marshall <keith@users.osdn.me> Clean up <wincon.h>; consolidate its version dependencies. * include/wincon.h: Tidy layout; assert copyright. [_WIN32_WINNT]: Always compare it symbolically, with respect to... [_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP, _WIN32_WINNT_VISTA]: ...each of these; group and consolidate respective version dependencies. (FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED) (FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN) (BACKGROUND_RED, BACKGROUND_INTENSITY, COMMON_LVB_LEADING_BYTE) (COMMON_LVB_TRAILING_BYTE, COMMON_LVB_GRID_HORIZONTAL) (COMMON_LVB_GRID_LVERTICAL, COMMON_LVB_GRID_RVERTICAL) (COMMON_LVB_REVERSE_VIDEO, COMMON_LVB_UNDERSCORE, CTRL_C_EVENT) (CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT) (CTRL_SHUTDOWN_EVENT, ENABLE_LINE_INPUT, ENABLE_ECHO_INPUT) (ENABLE_PROCESSED_INPUT, ENABLE_WINDOW_INPUT, ENABLE_MOUSE_INPUT) (ENABLE_INSERT_MODE, ENABLE_QUICK_EDIT_MODE, ENABLE_EXTENDED_FLAGS) (ENABLE_AUTO_POSITION, ENABLE_VIRTUAL_TERMINAL_INPUT) (ENABLE_PROCESSED_OUTPUT, ENABLE_WRAP_AT_EOL_OUTPUT) (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN) (ENABLE_LVB_GRID_WORLDWIDE, KEY_EVENT, MOUSE_EVENT) (WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT, CAPSLOCK_ON) (ENHANCED_KEY, RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED) (RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED, SHIFT_PRESSED, NUMLOCK_ON) (SCROLLLOCK_ON, FROM_LEFT_1ST_BUTTON_PRESSED) (FROM_LEFT_2ND_BUTTON_PRESSED, FROM_LEFT_3RD_BUTTON_PRESSED) (FROM_LEFT_4TH_BUTTON_PRESSED, RIGHTMOST_BUTTON_PRESSED, MOUSE_MOVED) (DOUBLE_CLICK, MOUSE_WHEELED, MOUSE_HWHEELED, CONSOLE_FULLSCREEN) (CONSOLE_FULLSCREEN_HARDWARE, CONSOLE_FULLSCREEN_MODE) (CONSOLE_WINDOWED_MODE, CONSOLE_NO_SELECTION) (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_SELECTION_NOT_EMPTY) (CONSOLE_MOUSE_SELECTION, CONSOLE_MOUSE_DOWN, HISTORY_NO_DUP_FLAG): Redefine, expressing all values in hexadecimal rather than decimal; this is consistent with Microsoft documentation, and it is also more logical, since all represent bit-flags, bit-fields, or bit-masks. 2018-10-24 Keith Marshall <keith@users.osdn.me> Make <wincon.h> header effectively self-contained. * include/wincon.h [_WIN32_WINNT < 0x0600]: Include <windef.h>... [_WIN32_WINNT >= 0x0600]: ...but, Vista and later need <wingdi.h> [__GNUC__ >= 3]: Remove condition; used only in association with... (#pragma GCC system_header): ...this, it is redundant in this context. [_BEGIN_C_DECLS, _END_C_DECLS]: Use them as appropriate. 2018-10-24 David Gressett <texasgaidheal@users.osdn.me> Improve WinXP/Vista console I/O support. * include/wincon.h (AddConsoleAlias, GetConsoleAlias) (GetConsoleAliases, GetConsoleAliasExes, GetConsoleAliasesLength) (GetConsoleAliasExesLength, GetConsoleOriginalTitle): New function name aliases; define them, mapping them conditionally to represent... [UNICODE]: ...their corresponding UTF-16LE function names, else... [!UNICODE]: ...their corresponding ASCII/DBCS function names. (COMMON_LVB_LEADING_BYTE, COMMON_LVB_TRAILING_BYTE (COMMON_LVB_GRID_HORIZONTAL, COMMON_LVB_GRID_LVERTICAL) (COMMON_LVB_GRID_RVERTICAL, COMMON_LVB_REVERSE_VIDEO) (COMMON_LVB_UNDERSCORE, ENABLE_VIRTUAL_TERMINAL_INPUT) (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN) (ENABLE_LVB_GRID_WORLDWIDE,(MOUSE_HWHEELED): Define them. (GetConsoleAliasA, GetConsoleAliasW, HandlerRoutine): Declare. (CONSOLE_FULLSCREEN, CONSOLE_FULLSCREEN_HARDWARE): Define when... [_WIN32_WINNT >= 0x0500]: ...this prevails; additionally... (GetConsoleFontSize): ...declare function. (CONSOLE_NO_SELECTION, CONSOLE_SELECTION_NOT_EMPTY) (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_MOUSE_SELECTION) (CONSOLE_MOUSE_DOWN): Define them; make them visible only when... [_WIN32_WINNT >= 0x0501]: ...this prevails. (struct _CONSOLE_FONT_INFO): Make it visible, only when... [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to... (CONSOLE_FONT_INFO, PCONSOLE_FONT_INFO): ...these typedefs. (struct _CONSOLE_SELECTION_INFO): Declare it; visible only when... [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to... (CONSOLE_SELECTION_INFO, PCONSOLE_SELECTION_INFO): ...these typedefs. [_WIN32_WINNT >= 0x0501] (AddConsoleAliasA, AddConsoleAliasW) (GetConsoleAliasesA, GetConsoleAliasesW, GetConsoleAliasExesA) (GetConsoleAliasExesW, GetConsoleAliasesLengthA) (GetConsoleAliasesLengthW, GetConsoleAliasExesLengthA) (GetConsoleAliasExesLengthW, GetConsoleSelectionInfo) (GetCurrentConsoleFont): Declare functions. [_WIN32_WINNT >= 0x0600] (HISTORY_NO_DUP_FLAG): Define it. (struct _CONSOLE_FONT_INFOEX): New structure; declare it only when... [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to... (CONSOLE_FONT_INFOEX, PCONSOLE_FONT_INFOEX): ...these typedefs. (CONSOLE_HISTORY_INFO, PCONSOLE_HISTORY_INFO): New typedefs; they map to an anonymous structure, and are visible only when... [_WIN32_WINNT >= 0x0600]: ...this prevails. (struct _CONSOLE_READCONSOLE_CONTROL): New structure; declare when... [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to... (CONSOLE_READCONSOLE_CONTROL, PCONSOLE_READCONSOLE_CONTROL): ...these. (struct _CONSOLE_SCREEN_BUFFER_INFOEX): New structure; declare when... [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to... (CONSOLE_SCREEN_BUFFER_INFOEX, PCONSOLE_SCREEN_BUFFER_INFOEX): ...these typedefs. [_WIN32_WINNT >= 0x0600] (GetConsoleHistoryInfo) (GetConsoleOriginalTitleA, GetConsoleOriginalTitleW) (GetConsoleScreenBufferInfoEx, GetCurrentConsoleFontEx) (SetConsoleHistoryInfo, SetConsoleScreenBufferInfoEx) (SetCurrentConsoleFontEx): Declare functions.