On Thu, Jun 09, 2022 at 02:47:36PM +0900, Michael Paquier wrote: > On Thu, Jun 09, 2022 at 04:55:45PM +1200, Thomas Munro wrote: >> I think we can drop mention of Itanium (RIP): the ancient versions of >> Windows that could run on that arch are desupported with your patch. >> It might be more relevant to say that we can't yet run on ARM, and >> Windows 11 is untested by us, but let's fix those problems instead of >> documenting them :-) > > Okay to remove the Itanium part for me.
install-windows.sgml has one extra spot mentioning Windows 7 and Server 2008 that can be simplified on top of that. >> There are more mentions of older Windows releases near the compiler >> stuff but perhaps your MSVC version vacuuming work will take care of >> those. > > Yes, I have a few changes like the one in main.c for _M_AMD64. Are > you referring to something else? Actually, this can go with the bump of MIN_WINNT as it uses one of the IsWindows*OrGreater() macros as a runtime check. And there are two more places in pg_ctl.c that can be similarly cleaned up. It is possible that I have missed some spots, of course. -- Michael
From 2d51b7dd04e44ace0294531878676ff89e465c0b Mon Sep 17 00:00:00 2001 From: Michael Paquier <mich...@paquier.xyz> Date: Thu, 16 Jun 2022 15:11:53 +0900 Subject: [PATCH v3] Bump WIN_MINNT to 0x0A00 everywhere (Windows 10~) --- src/include/port/win32.h | 11 +++-------- src/backend/main/main.c | 17 ----------------- src/backend/utils/adt/pg_locale.c | 4 ++-- src/bin/pg_ctl/pg_ctl.c | 26 ++------------------------ doc/src/sgml/install-windows.sgml | 9 ++------- doc/src/sgml/installation.sgml | 9 ++++----- 6 files changed, 13 insertions(+), 63 deletions(-) diff --git a/src/include/port/win32.h b/src/include/port/win32.h index c6213c77c3..fe0829cedc 100644 --- a/src/include/port/win32.h +++ b/src/include/port/win32.h @@ -11,15 +11,10 @@ /* * Make sure _WIN32_WINNT has the minimum required value. - * Leave a higher value in place. When building with at least Visual - * Studio 2015 the minimum requirement is Windows Vista (0x0600) to - * get support for GetLocaleInfoEx() with locales. For everything else - * the minimum version is Windows XP (0x0501). + * Leave a higher value in place. The minimum requirement is Windows 10. */ -#if defined(_MSC_VER) && _MSC_VER >= 1900 -#define MIN_WINNT 0x0600 -#else -#define MIN_WINNT 0x0501 +#if defined(_MSC_VER) +#define MIN_WINNT 0x0A00 #endif #if defined(_WIN32_WINNT) && _WIN32_WINNT < MIN_WINNT diff --git a/src/backend/main/main.c b/src/backend/main/main.c index c43a527d3f..dd82722ee3 100644 --- a/src/backend/main/main.c +++ b/src/backend/main/main.c @@ -290,23 +290,6 @@ startup_hacks(const char *progname) _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); - -#if defined(_M_AMD64) && _MSC_VER == 1800 - - /*---------- - * Avoid crashing in certain floating-point operations if we were - * compiled for x64 with MS Visual Studio 2013 and are running on - * Windows prior to 7/2008R2 SP1 on an AVX2-capable CPU. - * - * Ref: https://connect.microsoft.com/VisualStudio/feedback/details/811093/visual-studio-2013-rtm-c-x64-code-generation-bug-for-avx2-instructions - *---------- - */ - if (!IsWindows7SP1OrGreater()) - { - _set_FMA3_enable(0); - } -#endif /* defined(_M_AMD64) && _MSC_VER == 1800 */ - } #endif /* WIN32 */ diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index a0490a7522..4c39841b99 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -1729,7 +1729,7 @@ get_collation_actual_version(char collprovider, const char *collcollate) else ereport(ERROR, (errmsg("could not load locale \"%s\"", collcollate))); -#elif defined(WIN32) && _WIN32_WINNT >= 0x0600 +#elif defined(WIN32) /* * If we are targeting Windows Vista and above, we can ask for a name * given a collation name (earlier versions required a location code @@ -1757,7 +1757,7 @@ get_collation_actual_version(char collprovider, const char *collcollate) collcollate, GetLastError()))); } - collversion = psprintf("%d.%d,%d.%d", + collversion = psprintf("%ld.%ld,%ld.%ld", (version.dwNLSVersion >> 8) & 0xFFFF, version.dwNLSVersion & 0xFF, (version.dwDefinedVersion >> 8) & 0xFFFF, diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index dd78e5bc66..ef58883a5c 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -1896,17 +1896,8 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo, bool as_ser /* Verify that we found all functions */ if (_IsProcessInJob == NULL || _CreateJobObject == NULL || _SetInformationJobObject == NULL || _AssignProcessToJobObject == NULL || _QueryInformationJobObject == NULL) { - /* - * IsProcessInJob() is not available on < WinXP, so there is no need - * to log the error every time in that case - */ - if (IsWindowsXPOrGreater()) - - /* - * Log error if we can't get version, or if we're on WinXP/2003 or - * newer - */ - write_stderr(_("%s: WARNING: could not locate all job object functions in system API\n"), progname); + /* Log error if we can't get version */ + write_stderr(_("%s: WARNING: could not locate all job object functions in system API\n"), progname); } else { @@ -1946,19 +1937,6 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo, bool as_ser JOB_OBJECT_UILIMIT_EXITWINDOWS | JOB_OBJECT_UILIMIT_READCLIPBOARD | JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS | JOB_OBJECT_UILIMIT_WRITECLIPBOARD; - if (as_service) - { - if (!IsWindows7OrGreater()) - { - /* - * On Windows 7 (and presumably later), - * JOB_OBJECT_UILIMIT_HANDLES prevents us from - * starting as a service. So we only enable it on - * Vista and earlier (version <= 6.0) - */ - uiRestrictions.UIRestrictionsClass |= JOB_OBJECT_UILIMIT_HANDLES; - } - } _SetInformationJobObject(job, JobObjectBasicUIRestrictions, &uiRestrictions, sizeof(uiRestrictions)); securityLimit.SecurityLimitFlags = JOB_OBJECT_SECURITY_NO_ADMIN | JOB_OBJECT_SECURITY_ONLY_TOKEN; diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index bcfd5a1a10..66567d17a0 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -82,11 +82,7 @@ as well as standalone Windows SDK releases 8.1a to 10. 64-bit PostgreSQL builds are supported with <productname>Microsoft Windows SDK</productname> version 8.1a to 10 or - <productname>Visual Studio 2013</productname> and above. Compilation - is supported down to <productname>Windows 7</productname> and - <productname>Windows Server 2008 R2 SP1</productname> when building with - <productname>Visual Studio 2013</productname> to - <productname>Visual Studio 2022</productname>. + <productname>Visual Studio 2013</productname> and above. <!-- For 2013 requirements: https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2013-sysrequirements-vs @@ -358,8 +354,7 @@ $ENV{MSBFLAGS}="/m"; <title>Special Considerations for 64-Bit Windows</title> <para> - PostgreSQL will only build for the x64 architecture on 64-bit Windows, there - is no support for Itanium processors. + PostgreSQL will only build for the x64 architecture on 64-bit Windows. </para> <para> diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index c585078029..c12de7896c 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -2136,7 +2136,7 @@ export MANPATH <para> <productname>PostgreSQL</productname> can be expected to work on these operating - systems: Linux (all recent distributions), Windows (XP and later), + systems: Linux (all recent distributions), Windows (10 and later), FreeBSD, OpenBSD, NetBSD, macOS, AIX, HP/UX, and Solaris. Other Unix-like systems may also work but are not currently being tested. In most cases, all CPU architectures supported by @@ -2323,16 +2323,15 @@ ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": Bad address <listitem> <para> The <command>adduser</command> command is not supported; use - the appropriate user management application on Windows NT, - 2000, or XP. Otherwise, skip this step. + the appropriate user management application on Windows. + Otherwise, skip this step. </para> </listitem> <listitem> <para> The <command>su</command> command is not supported; use ssh to - simulate su on Windows NT, 2000, or XP. Otherwise, skip this - step. + simulate su on Windows. Otherwise, skip this step. </para> </listitem> -- 2.36.1
signature.asc
Description: PGP signature