diff options
-rw-r--r-- | doc/src/sgml/installation.sgml | 8 | ||||
-rw-r--r-- | meson.build | 4 | ||||
-rw-r--r-- | src/include/c.h | 19 |
3 files changed, 6 insertions, 25 deletions
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index de19f3ad929..cb53530cc4f 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -3847,17 +3847,13 @@ make: *** [postgres] Error 1 <para> Both 32-bit and 64-bit builds are possible with the Microsoft Compiler suite. 32-bit PostgreSQL builds are possible with - <productname>Visual Studio 2015</productname> to + <productname>Visual Studio 2019</productname> to <productname>Visual Studio 2022</productname>, as well as standalone Windows SDK releases 10 and above. 64-bit PostgreSQL builds are supported with <productname>Microsoft Windows SDK</productname> version 10 and above or - <productname>Visual Studio 2015</productname> and above. + <productname>Visual Studio 2019</productname> and above. <!-- - For 2015 requirements: - https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2015-sysrequirements-vs - For 2017 requirements: - https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2017-system-requirements-vs For 2019 requirements: https://docs.microsoft.com/en-us/visualstudio/releases/2019/system-requirements For 2022 requirements: diff --git a/meson.build b/meson.build index 36e168a1a2a..91fb4756ed4 100644 --- a/meson.build +++ b/meson.build @@ -279,6 +279,10 @@ elif host_system == 'windows' # define before including <time.h> for getting localtime_r() etc. on MinGW cppflags += '-D_POSIX_C_SOURCE' endif + if cc.get_id() == 'msvc' + # required for VA_ARGS_NARGS() in c.h; requires VS 2019 + cppflags += '/Zc:preprocessor' + endif export_file_format = 'win' export_file_suffix = 'def' diff --git a/src/include/c.h b/src/include/c.h index 8cdc16a0f4a..04fd23577de 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -376,25 +376,7 @@ * pretty trivial: VA_ARGS_NARGS_() returns its 64th argument, and we set up * the call so that that is the appropriate one of the list of constants. * This idea is due to Laurent Deniau. - * - * MSVC has an implementation of __VA_ARGS__ that doesn't conform to the - * standard unless you use the /Zc:preprocessor compiler flag, but that - * isn't available before Visual Studio 2019. For now, use a different - * definition that also works on older compilers. */ -#ifdef _MSC_VER -#define EXPAND(args) args -#define VA_ARGS_NARGS(...) \ - VA_ARGS_NARGS_ EXPAND((__VA_ARGS__, \ - 63,62,61,60, \ - 59,58,57,56,55,54,53,52,51,50, \ - 49,48,47,46,45,44,43,42,41,40, \ - 39,38,37,36,35,34,33,32,31,30, \ - 29,28,27,26,25,24,23,22,21,20, \ - 19,18,17,16,15,14,13,12,11,10, \ - 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)) -#else - #define VA_ARGS_NARGS(...) \ VA_ARGS_NARGS_(__VA_ARGS__, \ 63,62,61,60, \ @@ -404,7 +386,6 @@ 29,28,27,26,25,24,23,22,21,20, \ 19,18,17,16,15,14,13,12,11,10, \ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) -#endif #define VA_ARGS_NARGS_( \ _01,_02,_03,_04,_05,_06,_07,_08,_09,_10, \ |