diff --git a/changelog/index.html b/changelog/index.html index 5a56892..3002387 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -326,6 +326,15 @@
Important: UCRT is now the default CRT runtime instead of MSVCRT, check the +mingw-w64-doc/howto-build/ucrt-vs-msvcrt.txt +document for details. Both header set and CRT must be configured and built with +the same settings consistently for proper functionality. Switching runtimes +requires all libraries to be rebuilt, including GCC.
+Notable changes:
+_strdate_s
and _strtime_s
, _makepath_s
, wcsncat_s
.And many other additions thanks to, but not limited to (in Alphabetical order):
+Antonin Décimo, Bernhard Übelacker, Biswapriyo Nath, Christian Franke, Dustin +Gadal, Jacek Caban, Jameson Nash, Jøger Hansegård, Jonathan Schleifer, Kacper +Michajłow, LIU Hao, Mark Harmstone, Martin Storsjö, Mateusz Mikuła, Nikolay +Sivov, Oleg Tolmatcev, Ozkan Sezer, Pali Rohár, Pavel Shishpor, Richard Copley, +Steve Lhomme
Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.
The development and community are very active and welcoming with new contributors every month and simple installers.
"},{"location":"#headers-libraries-and-runtime","title":"Headers, Libraries and Runtime","text":"Mingw-w64 interacts a lot with other projects in order to help everyone move forward. Contributions have been going to and coming from these projects:
Cygwin ReactOS Wine MSYS2"},{"location":"#some-projects-using-mingw-w64","title":"Some Projects using Mingw-w64","text":"Notable changes:
And many other additions thanks to, but not limited to (in Alphabetical order)
Alvin Wong, Biswapriyo Nath, Christian Franke, Christoph Reiter, Costas Argyris, delthas, Dmitry Karasik, Jacek Caban, Jeremy Drake, L. E. Segovia, LIU Hao, Luca Bacci, Mark Harmstone, Markus M\u00fctzel, Martin Storsj\u00f6, Mateusz Wajch\u0119prze\u0142\u00f3\u017c, Matthew Lugg, Mike Gelfand, Oleg Oshmyan, Oleg Tolmatcev, Ozkan Sezer, Pali Roh\u00e1r, Raf Lopez, Sergei Trofimovich, Steve Lhomme, TheShermanTanker, Yannis Juglaret, Yonggang Luo, \u674e\u901a\u6d32,
"},{"location":"changelog/#v1000-2022-04-04","title":"v10.0.0: 2022-04-04","text":"Notable changes:
_(v)scprintf
optimization__ms_vsnprintf
for LTOAnd many other additions thanks to, but not limited to (in Alphabetical order)
Biswapriyo Nath, Corinna Vinschen, davjam, Jacek Caban, Jeremy Drake, Jonathan Marler, Liu Hao, Mark Harmstone, Martin Storsj\u00f6, Matheus Izvekov, Michel Zou, Ozkan Sezer, Pali Roh\u00e1r, Patrick Northon, Ruslan Garipov, Steve Lhomme, Tom Ritter
"},{"location":"changelog/#v900-2021-05-22","title":"v9.0.0: 2021-05-22","text":"Notable changes:
at_quick_exit
implementation by Martin Storsj\u00f6And many other additions thanks to, but not limited to (in Alphabetical order)
Alex Henrie, Andrew Eikum, Biswapriyo Nath, Christian Franke, Christoph Reiter, DAVID MAY, Jacek Caban, Jeremy Drake, Jonathan Yong, Liu Hao, Mark Harmstone, Martin Storsj\u00f6, Mateusz Miku\u0142a, Nikolay Sivov, Ozkan Sezer, Pierre Lamot, Rafa\u0142 Harabie\u0144, Scr3amer, Steve Lhomme
"},{"location":"changelog/#v800-2020-09-18","title":"v8.0.0: 2020-09-18","text":"Notable changes:
*printf
compatibility fixes by Liu Hao and Martin Storsj\u00f6USE_MINGW_ANSI_STDIO
now automatically enabled in C99 and C11mode when not using UCRT by Pali Roh\u00e1rAnd many other additions thanks to, but not limited to (in Alphabetical order)
Alex Henrie, Biswapriyo Nath, Eric Hassold, Jacek Caban, Jehan Pag\u00e8s, Kleis Auke Wolthuizen, Liu Hao, Martin Mit\u00e1\u0161, Martin Storsj\u00f6, Nikolay Sivov, Noah Treuhaft, Pali Roh\u00e1r, Ruslan Garipov, Sanketh Menda, sezero, Stephan Ruloff, Stephen Kitt, Steve Lhomme, Tom Ritter, xtne6f, Zebediah Figura, \u5c48\u4f73\u4f1f
"},{"location":"changelog/#v700-2019-11-10","title":"v7.0.0: 2019-11-10","text":"Notable changes:
_FORTIFY_SOURCE
support thanks to Christian Franke.And many other additions thanks to, but not limited to (in Alphabetical order)
Alexey Pavlov, Antoine C\u0153ur, Biswapriyo Nath, Chris Charabaruk, Christian Franke, Hugo Beauz\u00e9e-Luyssen, Jacek Caban, James Ross-Gowan, Johannes Pfau, Kai Tietz, Liu Hao, Marisa-Chan, Martin Storsj\u00f6, Marvin Scholz, Mateusz Brzostek, Matthew Palermo, Nikolay Sivov, Pierre Lamot, Richard Pospesel, Ruslan Garipov, sezero, SquallATF, Steve Lhomme, Tom\u00e1\u0161 Golembiovsk\u00fd, Tom Ritter, xnor, Zach Bacon, Zebediah Figura, \u0420\u0443\u0441\u043b\u0430\u043d \u0418\u0436\u0431\u0443\u043b\u0430\u0442\u043e\u0432
"},{"location":"changelog/#v600-2018-09-17","title":"v6.0.0: 2018-09-17","text":"Notable changes:
__cxa_atexit
thanks to Martin Storsj\u00f6 and Liu HaoAnd many other additions thanks to, but not limited to (in Alphabetical order)
Alexey Pavlov Alon Bar-Lev Andr\u00e9 Hentschel Arthur Edelstein Corinna Vinschen David Grayson David Wohlferd Ebrahim Byagowi Guy Helmer Hugo Beauz\u00e9e-Luyssen Ihsan Akmal Jacek Caban James Ross-Gowan Jean-Baptiste Kempf Jonathan Yong Jon Turney Kai Tietz Liu Hao Martell Malone Martin Storsj\u00f6 Mateusz Matheus Izvekov mati865 Micha\u0142 Janiszewski Nikolay Sivov niXman Petri Hodju Ray Donnelly Ruben Van Boxem Ruslan Garipov Samuel D. Leslie sezero Soar Qin Tamar Christina Tamir Duberstein Tim Hutt Tom Ritter Yuta Nakai \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u0430\u0432\u043b\u043e\u0432 \u0420\u0443\u0441\u043b\u0430\u043d \u0418\u0436\u0431\u0443\u043b\u0430\u0442\u043e\u0432 \u5b8b\u51ac\u751f
"},{"location":"changelog/#v504-2018-06-04","title":"v5.0.4: 2018-06-04","text":"%e
printf specifier will now produce at least 2 digits for the exponent.__divmoddi4
when compiling with newly bootstrapped gcc-7(__attribute__((gcc_struct)))
that isn't supported on clang when compiling on clang thanks to David Wohlferd.IN6_IS_ADDR_
macros to conform to Posix Specm thanks toJean-Baptiste Kempf__mingw_printf
family of functions.--enable-experimental
to use.Mingw-w64 and the ecosystem surrounding it are stable and with many features. There are however some topics for which developer-time has been scarce. This page lists tasks that are relatively simple and can be worked on without the need for a huge background while still being important and high on the wish-lists of users.
In order to avoid duplicate efforts, if you take on one of these tasks, please mention it on the mailing-list.
The tasks below have been split enough to be simple and fairly well-contained while still being useful on their own. Most could be internship topics.
There are references to other websites on this page; their presence does not constitute an endorsement in any way.
"},{"location":"contribute/#win32-api-and-runtime","title":"Win32 API and Runtime","text":"Mingw-w64 is constantly looking for updates to its win32 API headers from MSDN Library. If you believe you have found an API that is not available in Mingw-w64 but is documented as part of MSDN or a mistake in Mingw-w64, please do not hesitate to contact us through the mailing-list.
For patch submissions, please remember to use sign-off your git commits before submitting the patches to the mailing-list. Both git send-email and git format-patch forms are allowed. From past experiences however, if you do use an email client to attach individual patches, please use the .txt extension, especially for Google Mail users so the patch does not get treated as a binary.
"},{"location":"contribute/#seh-for-32bits","title":"SEH for 32bits","text":"The patent for SEH for 32bits has now expired and while new computers are all 64 bits, Intel has continued selling Atom CPUs that only handled 32 bits very late and some applications are still 32 bits. Projects such as Wine and ReactOS will also benefit from 32bits SEH. Overall the need is still there and will continue for years to come and will outlast Microsoft's support for 32bits.
Note that you will need FSF paperwork since the work has to be done inside GCC. Check CC's page on contributing.
Sanitizers are runtime checks for a number of situations which have usually required instrumentation with tools that cause an important slowdown (like Valgrind).
They are relatively new and much lighter than other approaches.
"},{"location":"contribute/#thorough-status-report-for-sanitizers-asan-tsan-usan","title":"Thorough Status Report for Sanitizers (asan, tsan, usan)","text":"ASAN, TSAN and USAN are great technologies which are available in GCC. Unfortunately they are not completely usable on Windows. A proper review and tests are needed before anything.
"},{"location":"contribute/#fixing-remaining-bits-in-asan-tsan-or-usan-see-above","title":"Fixing remaining bits in asan, tsan or usan (see above)","text":"Once a report on the status is available, work on it can be started.
"},{"location":"contribute/#link-time-optimization-lto","title":"Link-Time Optimization (LTO)","text":"Optimizations in C cannot cross compilation units and many of them are therefore missed in large applications and when using libraries. LTO runs some optimizations during linking, when the toolchain can see all the objects at once and run cross-unit optimizations.
"},{"location":"contribute/#thorough-status-report-for-lto","title":"Thorough Status Report for LTO","text":"LTO has recently been improved a lot in GCC and binutils. There are still some issues on Windows though. The first step to making it work is to get a proper and up-to-date test and to identify the platform-specific bugs.
"},{"location":"contribute/#fixing-remaining-bits-in-lto","title":"Fixing remaining bits in LTO","text":"Fix the issues found by the status report from above. The actual bug list will be updated as it becomes available.
"},{"location":"contribute/#compiler-plugin-for-visual-studio","title":"Compiler plugin for Visual Studio","text":"A compiler plugin would make GCC, binutils tools and GDB available from the Visual Studio IDE. Most people state they stick with VS because of the IDE; such a plugin would allow mixing the two.
VisualGDB (commercial) provides such a plugin, apparently meant for compiling to micro-controllers and Linux (Android or not).
"},{"location":"contribute/#debug-infos","title":"Debug Infos","text":"PDB is the file-format used by Microsoft to store debug info. Unfortunately it is undocumented.
"},{"location":"contribute/#documentation-of-the-pdb-file-format","title":"Documentation of the PDB file-format","text":"Since the format is undocumented, first step is to document it. Fortunately, during the past few years, reader and possibly writer code has appeared, mostly out of Microsoft.
A library named ''dump_syms'' is available. It can read PDB files at least to some extent. Licensing and origin need to be checked.
Microsoft has released Roslyn, a \".NET Compiler Platform\". It contains a PDB writer implementation. This may be an actual implementation or only an interface to the actual one. It is difficult to say without further analysis.
Microsoft has also released CCI Metadata under the MS-PL. It contains PDB reader implementation that should constitute an appropriate source.
Creating PDB files will allow the Microsoft tools to make meaningful backtraces when code built with free compilers is involved.
"},{"location":"contribute/#handling-of-pdb-in-gdb","title":"Handling of PDB in GDB","text":"Reading PDB files will allow free tools to make meaningful backtraces when code built with MSVC is involved.
"},{"location":"contribute/#translation-fromto-pdb","title":"Translation from/to PDB","text":"Most often debug information will only be available in a single format. Being able to convert between them when needed will be useful.
"},{"location":"contribute/#c11-and-c11-threading-support","title":"C11 and C++11 Threading Support","text":""},{"location":"contribute/#c11-threading-and-atomics","title":"C11 Threading and Atomics","text":"The C11 standard has a section on threading which is still left unimplemented on several platforms. The API follows pthreads' quite closely and it is left to the implementer to decide whether to base it on winpthreads or directly on the (>= Vista) Win32 API.
The final C11 draft is identical to the standard but is available freely.
Note that you will need FSF paperwork since the work has to be done inside GCC. Check GCC's page on contributing.
"},{"location":"contribute/#implementation-of-c11-and-c11-threading-support-without-winpthreads","title":"Implementation of C11 and C++11 Threading Support Without Winpthreads","text":""},{"location":"contribute/#mcfgthread","title":"mcfgthread","text":"The mcfgthread library aims at providing an efficient implementation of thread support for GCC that is required by the C11 and C++11 standard. It uses a lot of undocumented Windows NT syscalls to ensure performance. Its introduction and manual can be found from its wiki pages.
"},{"location":"donate/","title":"Donate","text":"Mingw-w64 is almost entirely made by volunteer. Only two employees are paid to contribute to mingw-w64 and even then it's not full-time: we estimate the paid time spent on the project matches 0.5-employee. All other contributions are done on free time.
There are many evolutions and features planned but resources are scarce. In particular, if mingw-w64 saves you from the steep cost of proprietary toolchains, think about contributing a bit; you will also most likely quickly benefit from the improvements.
"},{"location":"donate/#non-financial-contributions","title":"Non-financial contributions","text":"More than through money, the best way to help the project is to invest man-time in it. The list of tasks on the page about contributing is the best place to start and if you are an employer with trainees, several of these tasks will make good internship.
"},{"location":"donate/#donations","title":"Donations","text":"With the current organization and funds of mingw-w64, it wouldn't make sense to try to pay a developer to spend time on specific topics. Instead, the money will be spent on hardware (testing servers, Windows licenses, phone, tablets, ...) and meeting expenses (setting up hackatons and paying for travel expenses as some major mingw-w64 developers live very far from others).
Currently, only Paypal is available:
Paypal (to Ka\u00ef Tietz)
Below is a list of donors, starting from January 2015. We'd like to list all our donors but we value your wishes; please state whether you'd like to have your name, pseudonym or company on the website.
There is no facility at the moment to receive hardware. These donations will have to be handled on a case-by-case basis (mostly to decide where to ship).
"},{"location":"downloads/","title":"Downloads","text":"The heart of the Mingw-w64 project is headers and support libraries to run the output of GCC on Windows. Since Mingw-w64 is neither the home of GCC nor of binutils, several sets of installation packages which combine them are available.
In addition, the sources are available but most people will want to grab binaries directly.
"},{"location":"downloads/#pre-built-toolchains-and-packages","title":"Pre-built toolchains and packages","text":"Version Host GCC / Mingw-w64 Version Languages Additional Software in Package Manager Arch Linux Arch Linux 13.1.0/11.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many Cygwin Rolling Windows 11.3.0/10.0.0 C, C++, Fortran, Obj-C many Debian Debian 10 (Buster) 8.3.0/6.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib) Debian 11 (Bullseye) 10.2.1/8.0.0 Debian 12 (Bookworm) 12.0.0/10.0.0 Fedora Fedora 36 11.2.1/9.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many Fedora 37 12.2.1/10.0.0 LLVM-MinGW 20220906 Windows, Linux LLVM 15.0.0/trunk C, C++ make, Python w64devkit 1.23.0 Windows 14.1.0/11.0.1 C, C++, Fortran 8 (busybox, cppcheck, ctags, gdb, make, nasm, pkg-config, vim) MacPorts Rolling macOS 13.2.0/11.0.1 C, C++, Fortran, Obj-C, Obj-C++ 1 (nsis) MingW-W64-builds Rolling Windows 13.1.0/11.0.0 C, C++, Fortran 4 (gdb, libiconf, python, zlib) MSYS2 Rolling Windows 14.1.0/trunk Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml many WinLibs.com Rolling Windows 13.2.0 Ada, C, C++, Fortran, Obj-C, Obj-C++, Assembler Package manager: work in progress (will offer > 2500 packages) Ubuntu 20.04 Focal Fossa 9.3.0/7.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib) 22.04 Jammy Jellyfish 10.3.0/8.0.0 22.10 Kinetic Kudu 10.3.0/10.0.0 23.04 Lunar Lobster 12.2.0/10.0.0"},{"location":"downloads/#arch-linux","title":"Arch Linux","text":"Installation:
Installation: through integrated package manager.
Mingw-w64 packages on Ubuntu
"},{"location":"downloads/#cygwin","title":"Cygwin","text":"Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Its core is the cygwin1.dll library which provides POSIX functionality on top of the Win32 API. It can be used as a build environment which targets Windows directly and for which output doesn't depend on cygwin1.dll.
Installation is done through cygwin's package manager: setup.exe.
As part of the numerous packages in cygwin, there are cross-compilation toolchains which target both 32 bits and 64 bits; their names start with \u201cmingw64-\u201d.
Once they are installed, they should be used according to the general cross-compilation approach.
"},{"location":"downloads/#debian","title":"Debian","text":"Installation: through integrated package manager.
Mingw-w64 packages on Debian
"},{"location":"downloads/#fedora","title":"Fedora","text":"Installation: through integrated package manager.
"},{"location":"downloads/#llvm-mingw","title":"LLVM-MinGW","text":"LLVM-MinGW is a toolchain built with Clang, LLD, libc++, targeting i686, x86_64, arm and aarch64 (ARM64), with releases both for running as a cross compiler from Linux and for running on Windows. It supports Address Sanitizer, Undefined Behaviour Sanitizer, and generating debug info in PDB format.
Installation: GitHub
"},{"location":"downloads/#w64devkit","title":"w64devkit","text":"w64devkit is a portable C and C++ development kit for x64 (and x86) Windows.
Included tools:
The toolchain includes pthreads, C++11 threads, and OpenMP. All included runtime components are static.
Installation: GitHub
"},{"location":"downloads/#macports","title":"MacPorts","text":"To install just the 32-bit or just 64-bit compiler with dependencies, use:
sudo port install i686-w64-mingw32-gcc\nsudo port install x86_64-w64-mingw32-gcc\n
A shortcut to install both:
sudo port install mingw-w64\n
Here is the list of Mingw-w64 packages on MacPorts.
"},{"location":"downloads/#mingw-builds","title":"Mingw-builds","text":"Installation: GitHub
"},{"location":"downloads/#winlibscom","title":"WinLibs.com","text":"Standalone MinGW-w64+GCC builds for Windows, built from scratch (including all dependencies) natively on Windows for Windows.
Downloads are archive files (.zip
or .7z
). No installation is required, just extract the archive and start using the programs in mingw32\\bin
or mingw64\\bin
. This allows for a relocatable compiler suite and allows having multiple versions on the same system.
Also contains other tools including: * GDB - the GNU Project debugger * GNU Binutils - a collection of binary tools * GNU Make - a tool which controls the generation of executables and other non-source files * Yasm - The Yasm Modular Assembler Project * NASM - The Netwide Assembler * JWasm - A free MASM-compatible assembler
Flavors: * separate packages for 32-bit (i686) and 64-bit (x86_64) Windows * separate packages for MSVCRT and UCRT builds * only POSIX threads builds (which also include Win32 API thread functions) * exception model: Dwarf for 32-bit (i686) and SEH for 64-bit (x86_64)
Installation: Download from winlibs.com and extract archive (no installation needed).
"},{"location":"downloads/#msys2","title":"MSYS2","text":"Installation: GitHub
"},{"location":"downloads/#sources","title":"Sources","text":"Tarballs for the mingw-w64 sources are hosted on SourceForge.
The latest version from the 11.x series is 11.0.0.
The latest version from the 10.x series is 10.0.0.
The latest version from the 9.x series is 9.0.0.
The latest version from the 8.x series is 8.0.2.
The latest version from the 7.x series is 7.0.0.
The latest version from the 6.x series is 6.0.0.
The latest version from the 5.x series is 5.0.4.
The old wiki has instructions for building native and cross toolchains.
Details on how to get the mingw-w64 code from Git and an Git-web viewer are available on SourceForge.
"},{"location":"downloads/#unsorted-complementary-list","title":"Unsorted complementary list","text":""},{"location":"downloads/#darwinmac-os-x","title":"Darwin/Mac OS X","text":"The existing Darwin binaries have been built through buildbot in 2013 and links to them can be found on the dedicated page.
"},{"location":"downloads/#opensuse","title":"OpenSUSE","text":"The OpenSUSE Linux distribution also has a large and well-maintained set of packages for cross-compilation.
"},{"location":"downloads/#rubenvb","title":"Rubenvb","text":"Rubenvb has built a number of toolchains including some for less common setups. They are split into two categories: toolchains targeting Win32 or Win64.
"},{"location":"downloads/#gcc-with-the-mcf-thread-model","title":"GCC with the MCF thread model","text":"GCC with the MCF thread model is a series of x86 and x64 native toolchains built by LH_Mouse. The MCF thread model has been merged into GCC 13, and can be enabled by passing --enable-threads=mcf
to GCC's configure script. C++11 threading facilities, such as std::thread
, std::mutex
, std::condition_variable
, std::call_once
, thread_local
etc. invoke the mcfgthread library, which implements them on Windows syscalls in a more standard-compliant and more efficient way, outperforming even native slim reader/write locks (SRW) since Windows Vista.
Mingw-w64 has several active support channels.
Documentation exists in the Sourceforge wiki: https://sourceforge.net/p/mingw-w64/wiki2/Home/
"},{"location":"support/#licensing","title":"Licensing","text":"Mingw-w64 is free software and permissively-licensed. The details are located in the sources themselves.
The ReactOS and Wine logos used on the website are licensed under the GPLv2.
"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Overview","text":""},{"location":"#_1","title":"Overview","text":"Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.
The development and community are very active and welcoming with new contributors every month and simple installers.
"},{"location":"#headers-libraries-and-runtime","title":"Headers, Libraries and Runtime","text":"Mingw-w64 interacts a lot with other projects in order to help everyone move forward. Contributions have been going to and coming from these projects:
Cygwin ReactOS Wine MSYS2"},{"location":"#some-projects-using-mingw-w64","title":"Some Projects using Mingw-w64","text":"Important: UCRT is now the default CRT runtime instead of MSVCRT, check the mingw-w64-doc/howto-build/ucrt-vs-msvcrt.txt document for details. Both header set and CRT must be configured and built with the same settings consistently for proper functionality. Switching runtimes requires all libraries to be rebuilt, including GCC.
Notable changes:
_strdate_s
and _strtime_s
, _makepath_s
, wcsncat_s
.And many other additions thanks to, but not limited to (in Alphabetical order):
Antonin D\u00e9cimo, Bernhard \u00dcbelacker, Biswapriyo Nath, Christian Franke, Dustin Gadal, Jacek Caban, Jameson Nash, J\u00f8ger Hanseg\u00e5rd, Jonathan Schleifer, Kacper Michaj\u0142ow, LIU Hao, Mark Harmstone, Martin Storsj\u00f6, Mateusz Miku\u0142a, Nikolay Sivov, Oleg Tolmatcev, Ozkan Sezer, Pali Roh\u00e1r, Pavel Shishpor, Richard Copley, Steve Lhomme
"},{"location":"changelog/#v601-2023-10-30","title":"v6.0.1: 2023-10-30","text":"Notable changes:
And many other additions thanks to, but not limited to (in Alphabetical order)
Alvin Wong, Biswapriyo Nath, Christian Franke, Christoph Reiter, Costas Argyris, delthas, Dmitry Karasik, Jacek Caban, Jeremy Drake, L. E. Segovia, LIU Hao, Luca Bacci, Mark Harmstone, Markus M\u00fctzel, Martin Storsj\u00f6, Mateusz Wajch\u0119prze\u0142\u00f3\u017c, Matthew Lugg, Mike Gelfand, Oleg Oshmyan, Oleg Tolmatcev, Ozkan Sezer, Pali Roh\u00e1r, Raf Lopez, Sergei Trofimovich, Steve Lhomme, TheShermanTanker, Yannis Juglaret, Yonggang Luo, \u674e\u901a\u6d32,
"},{"location":"changelog/#v1000-2022-04-04","title":"v10.0.0: 2022-04-04","text":"Notable changes:
_(v)scprintf
optimization__ms_vsnprintf
for LTOAnd many other additions thanks to, but not limited to (in Alphabetical order)
Biswapriyo Nath, Corinna Vinschen, davjam, Jacek Caban, Jeremy Drake, Jonathan Marler, Liu Hao, Mark Harmstone, Martin Storsj\u00f6, Matheus Izvekov, Michel Zou, Ozkan Sezer, Pali Roh\u00e1r, Patrick Northon, Ruslan Garipov, Steve Lhomme, Tom Ritter
"},{"location":"changelog/#v900-2021-05-22","title":"v9.0.0: 2021-05-22","text":"Notable changes:
at_quick_exit
implementation by Martin Storsj\u00f6And many other additions thanks to, but not limited to (in Alphabetical order)
Alex Henrie, Andrew Eikum, Biswapriyo Nath, Christian Franke, Christoph Reiter, DAVID MAY, Jacek Caban, Jeremy Drake, Jonathan Yong, Liu Hao, Mark Harmstone, Martin Storsj\u00f6, Mateusz Miku\u0142a, Nikolay Sivov, Ozkan Sezer, Pierre Lamot, Rafa\u0142 Harabie\u0144, Scr3amer, Steve Lhomme
"},{"location":"changelog/#v800-2020-09-18","title":"v8.0.0: 2020-09-18","text":"Notable changes:
*printf
compatibility fixes by Liu Hao and Martin Storsj\u00f6USE_MINGW_ANSI_STDIO
now automatically enabled in C99 and C11mode when not using UCRT by Pali Roh\u00e1rAnd many other additions thanks to, but not limited to (in Alphabetical order)
Alex Henrie, Biswapriyo Nath, Eric Hassold, Jacek Caban, Jehan Pag\u00e8s, Kleis Auke Wolthuizen, Liu Hao, Martin Mit\u00e1\u0161, Martin Storsj\u00f6, Nikolay Sivov, Noah Treuhaft, Pali Roh\u00e1r, Ruslan Garipov, Sanketh Menda, sezero, Stephan Ruloff, Stephen Kitt, Steve Lhomme, Tom Ritter, xtne6f, Zebediah Figura, \u5c48\u4f73\u4f1f
"},{"location":"changelog/#v700-2019-11-10","title":"v7.0.0: 2019-11-10","text":"Notable changes:
_FORTIFY_SOURCE
support thanks to Christian Franke.And many other additions thanks to, but not limited to (in Alphabetical order)
Alexey Pavlov, Antoine C\u0153ur, Biswapriyo Nath, Chris Charabaruk, Christian Franke, Hugo Beauz\u00e9e-Luyssen, Jacek Caban, James Ross-Gowan, Johannes Pfau, Kai Tietz, Liu Hao, Marisa-Chan, Martin Storsj\u00f6, Marvin Scholz, Mateusz Brzostek, Matthew Palermo, Nikolay Sivov, Pierre Lamot, Richard Pospesel, Ruslan Garipov, sezero, SquallATF, Steve Lhomme, Tom\u00e1\u0161 Golembiovsk\u00fd, Tom Ritter, xnor, Zach Bacon, Zebediah Figura, \u0420\u0443\u0441\u043b\u0430\u043d \u0418\u0436\u0431\u0443\u043b\u0430\u0442\u043e\u0432
"},{"location":"changelog/#v600-2018-09-17","title":"v6.0.0: 2018-09-17","text":"Notable changes:
__cxa_atexit
thanks to Martin Storsj\u00f6 and Liu HaoAnd many other additions thanks to, but not limited to (in Alphabetical order)
Alexey Pavlov Alon Bar-Lev Andr\u00e9 Hentschel Arthur Edelstein Corinna Vinschen David Grayson David Wohlferd Ebrahim Byagowi Guy Helmer Hugo Beauz\u00e9e-Luyssen Ihsan Akmal Jacek Caban James Ross-Gowan Jean-Baptiste Kempf Jonathan Yong Jon Turney Kai Tietz Liu Hao Martell Malone Martin Storsj\u00f6 Mateusz Matheus Izvekov mati865 Micha\u0142 Janiszewski Nikolay Sivov niXman Petri Hodju Ray Donnelly Ruben Van Boxem Ruslan Garipov Samuel D. Leslie sezero Soar Qin Tamar Christina Tamir Duberstein Tim Hutt Tom Ritter Yuta Nakai \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041f\u0430\u0432\u043b\u043e\u0432 \u0420\u0443\u0441\u043b\u0430\u043d \u0418\u0436\u0431\u0443\u043b\u0430\u0442\u043e\u0432 \u5b8b\u51ac\u751f
"},{"location":"changelog/#v504-2018-06-04","title":"v5.0.4: 2018-06-04","text":"%e
printf specifier will now produce at least 2 digits for the exponent.__divmoddi4
when compiling with newly bootstrapped gcc-7(__attribute__((gcc_struct)))
that isn't supported on clang when compiling on clang thanks to David Wohlferd.IN6_IS_ADDR_
macros to conform to Posix Specm thanks toJean-Baptiste Kempf__mingw_printf
family of functions.--enable-experimental
to use.Mingw-w64 and the ecosystem surrounding it are stable and with many features. There are however some topics for which developer-time has been scarce. This page lists tasks that are relatively simple and can be worked on without the need for a huge background while still being important and high on the wish-lists of users.
In order to avoid duplicate efforts, if you take on one of these tasks, please mention it on the mailing-list.
The tasks below have been split enough to be simple and fairly well-contained while still being useful on their own. Most could be internship topics.
There are references to other websites on this page; their presence does not constitute an endorsement in any way.
"},{"location":"contribute/#win32-api-and-runtime","title":"Win32 API and Runtime","text":"Mingw-w64 is constantly looking for updates to its win32 API headers from MSDN Library. If you believe you have found an API that is not available in Mingw-w64 but is documented as part of MSDN or a mistake in Mingw-w64, please do not hesitate to contact us through the mailing-list.
For patch submissions, please remember to use sign-off your git commits before submitting the patches to the mailing-list. Both git send-email and git format-patch forms are allowed. From past experiences however, if you do use an email client to attach individual patches, please use the .txt extension, especially for Google Mail users so the patch does not get treated as a binary.
"},{"location":"contribute/#seh-for-32bits","title":"SEH for 32bits","text":"The patent for SEH for 32bits has now expired and while new computers are all 64 bits, Intel has continued selling Atom CPUs that only handled 32 bits very late and some applications are still 32 bits. Projects such as Wine and ReactOS will also benefit from 32bits SEH. Overall the need is still there and will continue for years to come and will outlast Microsoft's support for 32bits.
Note that you will need FSF paperwork since the work has to be done inside GCC. Check CC's page on contributing.
Sanitizers are runtime checks for a number of situations which have usually required instrumentation with tools that cause an important slowdown (like Valgrind).
They are relatively new and much lighter than other approaches.
"},{"location":"contribute/#thorough-status-report-for-sanitizers-asan-tsan-usan","title":"Thorough Status Report for Sanitizers (asan, tsan, usan)","text":"ASAN, TSAN and USAN are great technologies which are available in GCC. Unfortunately they are not completely usable on Windows. A proper review and tests are needed before anything.
"},{"location":"contribute/#fixing-remaining-bits-in-asan-tsan-or-usan-see-above","title":"Fixing remaining bits in asan, tsan or usan (see above)","text":"Once a report on the status is available, work on it can be started.
"},{"location":"contribute/#link-time-optimization-lto","title":"Link-Time Optimization (LTO)","text":"Optimizations in C cannot cross compilation units and many of them are therefore missed in large applications and when using libraries. LTO runs some optimizations during linking, when the toolchain can see all the objects at once and run cross-unit optimizations.
"},{"location":"contribute/#thorough-status-report-for-lto","title":"Thorough Status Report for LTO","text":"LTO has recently been improved a lot in GCC and binutils. There are still some issues on Windows though. The first step to making it work is to get a proper and up-to-date test and to identify the platform-specific bugs.
"},{"location":"contribute/#fixing-remaining-bits-in-lto","title":"Fixing remaining bits in LTO","text":"Fix the issues found by the status report from above. The actual bug list will be updated as it becomes available.
"},{"location":"contribute/#compiler-plugin-for-visual-studio","title":"Compiler plugin for Visual Studio","text":"A compiler plugin would make GCC, binutils tools and GDB available from the Visual Studio IDE. Most people state they stick with VS because of the IDE; such a plugin would allow mixing the two.
VisualGDB (commercial) provides such a plugin, apparently meant for compiling to micro-controllers and Linux (Android or not).
"},{"location":"contribute/#debug-infos","title":"Debug Infos","text":"PDB is the file-format used by Microsoft to store debug info. Unfortunately it is undocumented.
"},{"location":"contribute/#documentation-of-the-pdb-file-format","title":"Documentation of the PDB file-format","text":"Since the format is undocumented, first step is to document it. Fortunately, during the past few years, reader and possibly writer code has appeared, mostly out of Microsoft.
A library named ''dump_syms'' is available. It can read PDB files at least to some extent. Licensing and origin need to be checked.
Microsoft has released Roslyn, a \".NET Compiler Platform\". It contains a PDB writer implementation. This may be an actual implementation or only an interface to the actual one. It is difficult to say without further analysis.
Microsoft has also released CCI Metadata under the MS-PL. It contains PDB reader implementation that should constitute an appropriate source.
Creating PDB files will allow the Microsoft tools to make meaningful backtraces when code built with free compilers is involved.
"},{"location":"contribute/#handling-of-pdb-in-gdb","title":"Handling of PDB in GDB","text":"Reading PDB files will allow free tools to make meaningful backtraces when code built with MSVC is involved.
"},{"location":"contribute/#translation-fromto-pdb","title":"Translation from/to PDB","text":"Most often debug information will only be available in a single format. Being able to convert between them when needed will be useful.
"},{"location":"contribute/#c11-and-c11-threading-support","title":"C11 and C++11 Threading Support","text":""},{"location":"contribute/#c11-threading-and-atomics","title":"C11 Threading and Atomics","text":"The C11 standard has a section on threading which is still left unimplemented on several platforms. The API follows pthreads' quite closely and it is left to the implementer to decide whether to base it on winpthreads or directly on the (>= Vista) Win32 API.
The final C11 draft is identical to the standard but is available freely.
Note that you will need FSF paperwork since the work has to be done inside GCC. Check GCC's page on contributing.
"},{"location":"contribute/#implementation-of-c11-and-c11-threading-support-without-winpthreads","title":"Implementation of C11 and C++11 Threading Support Without Winpthreads","text":""},{"location":"contribute/#mcfgthread","title":"mcfgthread","text":"The mcfgthread library aims at providing an efficient implementation of thread support for GCC that is required by the C11 and C++11 standard. It uses a lot of undocumented Windows NT syscalls to ensure performance. Its introduction and manual can be found from its wiki pages.
"},{"location":"donate/","title":"Donate","text":"Mingw-w64 is almost entirely made by volunteer. Only two employees are paid to contribute to mingw-w64 and even then it's not full-time: we estimate the paid time spent on the project matches 0.5-employee. All other contributions are done on free time.
There are many evolutions and features planned but resources are scarce. In particular, if mingw-w64 saves you from the steep cost of proprietary toolchains, think about contributing a bit; you will also most likely quickly benefit from the improvements.
"},{"location":"donate/#non-financial-contributions","title":"Non-financial contributions","text":"More than through money, the best way to help the project is to invest man-time in it. The list of tasks on the page about contributing is the best place to start and if you are an employer with trainees, several of these tasks will make good internship.
"},{"location":"donate/#donations","title":"Donations","text":"With the current organization and funds of mingw-w64, it wouldn't make sense to try to pay a developer to spend time on specific topics. Instead, the money will be spent on hardware (testing servers, Windows licenses, phone, tablets, ...) and meeting expenses (setting up hackatons and paying for travel expenses as some major mingw-w64 developers live very far from others).
Currently, only Paypal is available:
Paypal (to Ka\u00ef Tietz)
Below is a list of donors, starting from January 2015. We'd like to list all our donors but we value your wishes; please state whether you'd like to have your name, pseudonym or company on the website.
There is no facility at the moment to receive hardware. These donations will have to be handled on a case-by-case basis (mostly to decide where to ship).
"},{"location":"downloads/","title":"Downloads","text":"The heart of the Mingw-w64 project is headers and support libraries to run the output of GCC on Windows. Since Mingw-w64 is neither the home of GCC nor of binutils, several sets of installation packages which combine them are available.
In addition, the sources are available but most people will want to grab binaries directly.
"},{"location":"downloads/#pre-built-toolchains-and-packages","title":"Pre-built toolchains and packages","text":"Version Host GCC / Mingw-w64 Version Languages Additional Software in Package Manager Arch Linux Arch Linux 13.1.0/11.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many Cygwin Rolling Windows 11.3.0/10.0.0 C, C++, Fortran, Obj-C many Debian Debian 10 (Buster) 8.3.0/6.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib) Debian 11 (Bullseye) 10.2.1/8.0.0 Debian 12 (Bookworm) 12.0.0/10.0.0 Fedora Fedora 36 11.2.1/9.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many Fedora 37 12.2.1/10.0.0 LLVM-MinGW 20220906 Windows, Linux LLVM 15.0.0/trunk C, C++ make, Python w64devkit 1.23.0 Windows 14.1.0/11.0.1 C, C++, Fortran 8 (busybox, cppcheck, ctags, gdb, make, nasm, pkg-config, vim) MacPorts Rolling macOS 13.2.0/11.0.1 C, C++, Fortran, Obj-C, Obj-C++ 1 (nsis) MingW-W64-builds Rolling Windows 13.1.0/11.0.0 C, C++, Fortran 4 (gdb, libiconf, python, zlib) MSYS2 Rolling Windows 14.1.0/trunk Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml many WinLibs.com Rolling Windows 13.2.0 Ada, C, C++, Fortran, Obj-C, Obj-C++, Assembler Package manager: work in progress (will offer > 2500 packages) Ubuntu 20.04 Focal Fossa 9.3.0/7.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib) 22.04 Jammy Jellyfish 10.3.0/8.0.0 22.10 Kinetic Kudu 10.3.0/10.0.0 23.04 Lunar Lobster 12.2.0/10.0.0"},{"location":"downloads/#arch-linux","title":"Arch Linux","text":"Installation:
Installation: through integrated package manager.
Mingw-w64 packages on Ubuntu
"},{"location":"downloads/#cygwin","title":"Cygwin","text":"Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Its core is the cygwin1.dll library which provides POSIX functionality on top of the Win32 API. It can be used as a build environment which targets Windows directly and for which output doesn't depend on cygwin1.dll.
Installation is done through cygwin's package manager: setup.exe.
As part of the numerous packages in cygwin, there are cross-compilation toolchains which target both 32 bits and 64 bits; their names start with \u201cmingw64-\u201d.
Once they are installed, they should be used according to the general cross-compilation approach.
"},{"location":"downloads/#debian","title":"Debian","text":"Installation: through integrated package manager.
Mingw-w64 packages on Debian
"},{"location":"downloads/#fedora","title":"Fedora","text":"Installation: through integrated package manager.
"},{"location":"downloads/#llvm-mingw","title":"LLVM-MinGW","text":"LLVM-MinGW is a toolchain built with Clang, LLD, libc++, targeting i686, x86_64, arm and aarch64 (ARM64), with releases both for running as a cross compiler from Linux and for running on Windows. It supports Address Sanitizer, Undefined Behaviour Sanitizer, and generating debug info in PDB format.
Installation: GitHub
"},{"location":"downloads/#w64devkit","title":"w64devkit","text":"w64devkit is a portable C and C++ development kit for x64 (and x86) Windows.
Included tools:
The toolchain includes pthreads, C++11 threads, and OpenMP. All included runtime components are static.
Installation: GitHub
"},{"location":"downloads/#macports","title":"MacPorts","text":"To install just the 32-bit or just 64-bit compiler with dependencies, use:
sudo port install i686-w64-mingw32-gcc\nsudo port install x86_64-w64-mingw32-gcc\n
A shortcut to install both:
sudo port install mingw-w64\n
Here is the list of Mingw-w64 packages on MacPorts.
"},{"location":"downloads/#mingw-builds","title":"Mingw-builds","text":"Installation: GitHub
"},{"location":"downloads/#winlibscom","title":"WinLibs.com","text":"Standalone MinGW-w64+GCC builds for Windows, built from scratch (including all dependencies) natively on Windows for Windows.
Downloads are archive files (.zip
or .7z
). No installation is required, just extract the archive and start using the programs in mingw32\\bin
or mingw64\\bin
. This allows for a relocatable compiler suite and allows having multiple versions on the same system.
Also contains other tools including: * GDB - the GNU Project debugger * GNU Binutils - a collection of binary tools * GNU Make - a tool which controls the generation of executables and other non-source files * Yasm - The Yasm Modular Assembler Project * NASM - The Netwide Assembler * JWasm - A free MASM-compatible assembler
Flavors: * separate packages for 32-bit (i686) and 64-bit (x86_64) Windows * separate packages for MSVCRT and UCRT builds * only POSIX threads builds (which also include Win32 API thread functions) * exception model: Dwarf for 32-bit (i686) and SEH for 64-bit (x86_64)
Installation: Download from winlibs.com and extract archive (no installation needed).
"},{"location":"downloads/#msys2","title":"MSYS2","text":"Installation: GitHub
"},{"location":"downloads/#sources","title":"Sources","text":"Tarballs for the mingw-w64 sources are hosted on SourceForge.
The latest version from the 11.x series is 11.0.0.
The latest version from the 10.x series is 10.0.0.
The latest version from the 9.x series is 9.0.0.
The latest version from the 8.x series is 8.0.2.
The latest version from the 7.x series is 7.0.0.
The latest version from the 6.x series is 6.0.0.
The latest version from the 5.x series is 5.0.4.
The old wiki has instructions for building native and cross toolchains.
Details on how to get the mingw-w64 code from Git and an Git-web viewer are available on SourceForge.
"},{"location":"downloads/#unsorted-complementary-list","title":"Unsorted complementary list","text":""},{"location":"downloads/#darwinmac-os-x","title":"Darwin/Mac OS X","text":"The existing Darwin binaries have been built through buildbot in 2013 and links to them can be found on the dedicated page.
"},{"location":"downloads/#opensuse","title":"OpenSUSE","text":"The OpenSUSE Linux distribution also has a large and well-maintained set of packages for cross-compilation.
"},{"location":"downloads/#rubenvb","title":"Rubenvb","text":"Rubenvb has built a number of toolchains including some for less common setups. They are split into two categories: toolchains targeting Win32 or Win64.
"},{"location":"downloads/#gcc-with-the-mcf-thread-model","title":"GCC with the MCF thread model","text":"GCC with the MCF thread model is a series of x86 and x64 native toolchains built by LH_Mouse. The MCF thread model has been merged into GCC 13, and can be enabled by passing --enable-threads=mcf
to GCC's configure script. C++11 threading facilities, such as std::thread
, std::mutex
, std::condition_variable
, std::call_once
, thread_local
etc. invoke the mcfgthread library, which implements them on Windows syscalls in a more standard-compliant and more efficient way, outperforming even native slim reader/write locks (SRW) since Windows Vista.
Mingw-w64 has several active support channels.
Documentation exists in the Sourceforge wiki: https://sourceforge.net/p/mingw-w64/wiki2/Home/
"},{"location":"support/#licensing","title":"Licensing","text":"Mingw-w64 is free software and permissively-licensed. The details are located in the sources themselves.
The ReactOS and Wine logos used on the website are licensed under the GPLv2.
"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index e734aff..947ca40 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,32 +2,32 @@