Hi, On Sun, Nov 20, 2022 at 3:59 PM Eli Zaretskii <e...@gnu.org> wrote: > > > Date: Sun, 20 Nov 2022 16:44:08 +0100 > > From: Pali Rohár <pali.ro...@gmail.com> > > Cc: gcc@gcc.gnu.org, mingw-w64-pub...@lists.sourceforge.net > > > > > Installing a redistributable is a nuisance, and dependence on non-system > > > libraries might make the program non-free. > > > > On new windows versions they may be preinstalled (depends on newness of > > windows version). > > I'm talking about older ones. It is customary nowadays to build on Windows > 11 and then run on Windows 8. > > > And if your application uses features unavailable in > > older (or default) crt versions then this make application code > > simplifier. Also redistributable packages are in most cases installed by > > Windows update mechanism, which could be marked as system library. But > > well, this is more license discussion than development discussion... > > I mentioned that because people might inadvertently build GPL'ed GNU > software using this option, and violate the GPL without knowing it. This is > relevant to those who read this list and port GNU software to MS-Windows. > > > > > Note that with this option, you can also choose older version than the > > > > default one (WinXP msvcrt.dll). So e.g. you can choose msvcrt20.dll or > > > > crtdll.dll for older Windows version. > > > > > > Using the OS default MSVCRT already gets me that, at zero cost. > > > > Here "OS default MSVCRT" means Windows XP MSVCRT.DLL. > > > > On older windows versions there is no pre-installed MSVCRT.DLL. There > > is MSVCRT20.DLL or CRTDLL.DLL (based on oldness of windows version). So > > it is not at zero cost, you have yo either do that nuisance and install > > MSVCRT.DLL as you write above or switch to older CRT version which is in > > OS preinstalled. > > I never saw any problems with programs linked against MSVCRT.DLL, on all > versions of Windows from XP up to Windows 10. None.
It's hard to argue that it is rarely necessary or desirable to link to - say - UCRT. If it was, then we would not have the UCRT toolchains. And in our particular case (Python extension modules) we need to use UCRT linking to be compatible with the UCRT-linked standard Python binary installs. Cheers, Matthew