From 1758d42446161f5dfae9b14791c5640239b86faa Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 27 Nov 2024 22:34:11 +1300 Subject: Require ucrt if using MinGW. Historically we tolerated the absence of various C runtime library features for the benefit of the MinGW tool chain, because it used ancient msvcrt.dll for a long period of time. It now uses ucrt by default (like Windows 10+, Visual Studio 2015+), and that's the only configuration we're testing. In practice, we effectively required ucrt already in PostgreSQL 17, when commit 8d9a9f03 required _create_locale etc, first available in msvcr120.dll (Visual Studio 2013, the last of the pre-ucrt series of runtimes), and for MinGW users that practically meant ucrt because it was difficult or impossible to use msvcr120.dll. That may even not have been the first such case, but old MinGW configurations had already dropped off our testing radar so we weren't paying much attention. This commit formalizes the requirement. It also removes a couple of obsolete comments that discussed msvcrt.dll limitations, and some tests of !defined(_MSC_VER) to imply msvcrt.dll. There are many more anachronisms, but it'll take some time to figure out how to remove them all. APIs affected relate to locales, UTF-8, threads, large files and more. Thanks to Peter Eisentraut for the documentation change. It's not really necessary to talk about ucrt explicitly in such a short section, since it's the default for MinGW-w64 and MSYS2. It's enough to prune references and broken links to much older tools. Reviewed-by: Peter Eisentraut Discussion: https://postgr.es/m/d9e7731c-ca1b-477c-9298-fa51e135574a%40eisentraut.org --- doc/src/sgml/installation.sgml | 60 ++++-------------------------------------- 1 file changed, 5 insertions(+), 55 deletions(-) (limited to 'doc/src') diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 5621606f59a..ebdb5b3bc2d 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -3582,33 +3582,9 @@ xcrun --show-sdk-path PostgreSQL for Windows can be built using MinGW, a Unix-like build - environment for Microsoft operating systems. - The MinGW build procedure uses the normal build system described in - this chapter. - - - - MinGW, the Unix-like build tools, and MSYS, a collection - of Unix tools required to run shell scripts - like configure, can be downloaded - from . Neither is - required to run the resulting binaries; they are needed only for - creating the binaries. - - - - To build 64 bit binaries using MinGW, install the 64 bit tool set - from , put its bin - directory in the PATH, and run - configure with the - --host=x86_64-w64-mingw32 option. - - - - After you have everything installed, it is suggested that you - run psql - under CMD.EXE, as the MSYS console has - buffering issues. + environment for Windows. It is recommended to use the MSYS2 environment for this and also + to install any prerequisite packages. @@ -3838,35 +3814,9 @@ make: *** [postgres] Error 1 Bison and Flex are required. Only Bison versions 2.3 and later will work. Flex must be version 2.5.35 or later. + Binaries can be downloaded from . - - - Both Bison and Flex - are included in the msys tool suite, available - from as part of the - MinGW compiler suite. - - - - You will need to add the directory containing - flex.exe and bison.exe to the - PATH environment variable. In the case of MinGW, the directory is the - \msys\1.0\bin subdirectory of your MinGW - installation directory. - - - - - The Bison distribution from GnuWin32 appears to have a bug that - causes Bison to malfunction when installed in a directory with - spaces in the name, such as the default location on English - installations C:\Program Files\GnuWin32. - Consider installing into C:\GnuWin32 or use the - NTFS short name path to GnuWin32 in your PATH environment setting - (e.g., C:\PROGRA~1\GnuWin32). - - - -- cgit v1.2.3