public inbox for [email protected]  
help / color / mirror / Atom feed
[PATCH] Fix timeline-tracking failure while sending a historic timeline
5+ messages / 3 participants
[nested] [flat]

* [PATCH] Fix timeline-tracking failure while sending a historic timeline
@ 2021-01-05 04:34  Kyotaro Horiguchi <[email protected]>
  0 siblings, 0 replies; 5+ messages in thread

From: Kyotaro Horiguchi @ 2021-01-05 04:34 UTC (permalink / raw)

Walsender should track timeline switches while sending a historic
timeline. Regain that behavior, which was broken in PG13, by a thinko
of 709d003fbd. Backpatch to PG13.
---
 src/backend/replication/walsender.c       |  2 +-
 src/test/perl/PostgresNode.pm             | 36 ++++++++++++++++++++
 src/test/recovery/t/001_stream_rep.pl     | 41 ++++++++++++++++++++++-
 src/test/recovery/t/019_replslot_limit.pl | 37 ++++----------------
 4 files changed, 83 insertions(+), 33 deletions(-)

diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 7f87eb7f19..04f6c3ebb4 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -2478,7 +2478,7 @@ WalSndSegmentOpen(XLogReaderState *state, XLogSegNo nextSegNo,
 		XLogSegNo	endSegNo;
 
 		XLByteToSeg(sendTimeLineValidUpto, endSegNo, state->segcxt.ws_segsize);
-		if (state->seg.ws_segno == endSegNo)
+		if (nextSegNo == endSegNo)
 			*tli_p = sendTimeLineNextTLI;
 	}
 
diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm
index 980f1f1533..a08c71b549 100644
--- a/src/test/perl/PostgresNode.pm
+++ b/src/test/perl/PostgresNode.pm
@@ -2138,6 +2138,42 @@ sub pg_recvlogical_upto
 
 =pod
 
+=item $node->current_log_position()
+
+Return the current position of server log.
+
+=cut
+
+sub current_log_position
+{
+	my $self = shift;
+
+	return (stat $self->logfile)[7];
+}
+
+=pod
+
+=item $node->find_in_log($pattern, $startpos)
+
+Returns whether the $pattern occurs after $startpos in the server log.
+
+=cut
+
+sub find_in_log
+{
+	my ($self, $pattern, $startpos) = @_;
+
+	$startpos = 0 unless defined $startpos;
+	my $log = TestLib::slurp_file($self->logfile);
+	return 0 if (length($log) <= $startpos);
+
+	$log = substr($log, $startpos);
+
+	return $log =~ m/$pattern/;
+}
+
+=pod
+
 =back
 
 =cut
diff --git a/src/test/recovery/t/001_stream_rep.pl b/src/test/recovery/t/001_stream_rep.pl
index 778f11b28b..8d2b24fe55 100644
--- a/src/test/recovery/t/001_stream_rep.pl
+++ b/src/test/recovery/t/001_stream_rep.pl
@@ -2,8 +2,9 @@
 use strict;
 use warnings;
 use PostgresNode;
+use Time::HiRes qw(usleep);
 use TestLib;
-use Test::More tests => 36;
+use Test::More tests => 37;
 
 # Initialize master node
 my $node_master = get_new_node('master');
@@ -409,3 +410,41 @@ ok( ($phys_restart_lsn_pre cmp $phys_restart_lsn_post) == 0,
 my $master_data = $node_master->data_dir;
 ok(!-f "$master_data/pg_wal/$segment_removed",
 	"WAL segment $segment_removed recycled after physical slot advancing");
+
+#
+# Check if timeline-increment works while reading a historic timeline.
+my $node_primary_2 = get_new_node('primary_2');
+# archiving is needed to create .paritial segment
+$node_primary_2->init(allows_streaming => 1, has_archiving => 1);
+$node_primary_2->start;
+$node_primary_2->backup($backup_name);
+my $node_standby_3 = get_new_node('standby_3');
+$node_standby_3->init_from_backup($node_primary_2, $backup_name,
+								  has_streaming => 1);
+$node_primary_2->stop;
+$node_primary_2->set_standby_mode; # increment primary timeline
+$node_primary_2->start;
+$node_primary_2->promote;
+my $logstart = $node_standby_3->current_log_position();
+$node_standby_3->start;
+
+my $success = 0;
+for (my $i = 0 ; $i < 1000; $i++)
+{
+	if ($node_standby_3->find_in_log(
+			"requested WAL segment [0-9A-F]+ has already been removed",
+			$logstart))
+	{
+		last;
+	}
+	elsif ($node_standby_3->find_in_log(
+			"End of WAL reached on timeline",
+			   $logstart))
+	{
+		$success = 1;
+		last;
+	}
+	usleep(100_000);
+}
+
+ok($success, 'Timeline increment while reading a historic timeline');
diff --git a/src/test/recovery/t/019_replslot_limit.pl b/src/test/recovery/t/019_replslot_limit.pl
index a7231dcd47..8b3c5de057 100644
--- a/src/test/recovery/t/019_replslot_limit.pl
+++ b/src/test/recovery/t/019_replslot_limit.pl
@@ -165,19 +165,17 @@ $node_master->wait_for_catchup($node_standby, 'replay', $start_lsn);
 
 $node_standby->stop;
 
-ok( !find_in_log(
-		$node_standby,
-		"requested WAL segment [0-9A-F]+ has already been removed"),
+ok( !$node_standby->find_in_log(
+		 "requested WAL segment [0-9A-F]+ has already been removed"),
 	'check that required WAL segments are still available');
 
 # Advance WAL again, the slot loses the oldest segment.
-my $logstart = get_log_size($node_master);
+my $logstart = $node_master->current_log_position();
 advance_wal($node_master, 7);
 $node_master->safe_psql('postgres', "CHECKPOINT;");
 
 # WARNING should be issued
-ok( find_in_log(
-		$node_master,
+ok( $node_master->find_in_log(
 		"invalidating slot \"rep1\" because its restart_lsn [0-9A-F/]+ exceeds max_slot_wal_keep_size",
 		$logstart),
 	'check that the warning is logged');
@@ -190,14 +188,13 @@ is($result, "rep1|f|t|lost|",
 	'check that the slot became inactive and the state "lost" persists');
 
 # The standby no longer can connect to the master
-$logstart = get_log_size($node_standby);
+$logstart = $node_standby->current_log_position();
 $node_standby->start;
 
 my $failed = 0;
 for (my $i = 0; $i < 10000; $i++)
 {
-	if (find_in_log(
-			$node_standby,
+	if ($node_standby->find_in_log(
 			"requested WAL segment [0-9A-F]+ has already been removed",
 			$logstart))
 	{
@@ -264,25 +261,3 @@ sub advance_wal
 	}
 	return;
 }
-
-# return the size of logfile of $node in bytes
-sub get_log_size
-{
-	my ($node) = @_;
-
-	return (stat $node->logfile)[7];
-}
-
-# find $pat in logfile of $node after $off-th byte
-sub find_in_log
-{
-	my ($node, $pat, $off) = @_;
-
-	$off = 0 unless defined $off;
-	my $log = TestLib::slurp_file($node->logfile);
-	return 0 if (length($log) <= $off);
-
-	$log = substr($log, $off);
-
-	return $log =~ m/$pat/;
-}
-- 
2.27.0


----Next_Part(Thu_Jan__7_16_32_36_2021_122)----





^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* Re: Trying to build x86 version on windows using meson
@ 2024-03-21 11:11  Dave Cramer <[email protected]>
  0 siblings, 1 reply; 5+ messages in thread

From: Dave Cramer @ 2024-03-21 11:11 UTC (permalink / raw)
  To: Peter Eisentraut <[email protected]>; +Cc: Andres Freund <[email protected]>; PostgreSQL Hackers <[email protected]>

On Thu, 21 Mar 2024 at 03:56, Peter Eisentraut <[email protected]> wrote:

> On 20.03.24 22:49, Dave Cramer wrote:
> >
> >
> >
> > On Wed, 20 Mar 2024 at 17:11, Andres Freund <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Hi,
> >
> >     On 2024-03-20 16:14:23 -0400, Dave Cramer wrote:
> >      > I am getting the following error
> >      >
> >      > meson.build:1479:17: ERROR: Can not run test applications in this
> >     cross
> >      > environment.
> >      >
> >      > Have configured for amd64_x86
> >      >
> >      > Running `meson setup --wipe build --prefix=c:\postgres86`
> >
> >     This is not enough information to debug anything. At the very least
> >     we need
> >     the exact steps performed to set up the build and
> >     meson-logs/meson-log.txt
> >
> > First off this is on an ARM64 machine
> >
> > The last error from meson-log.txt is
> >
> > ...
> > Checking if "c99" compiles: YES
> >
> > meson.build:1479:17: ERROR: Can not run test applications in this cross
> > environment.
> > ...
>
> I have never tried this, but there are instructions for cross-compiling
> with meson: https://mesonbuild.com/Cross-compilation.html


It seems that attempting to cross-compile on an ARM machine might be asking
too much as the use cases are pretty limited.

So the impetus for this is that folks require 32bit versions of psqlODBC.
Unfortunately EDB is no longer distributing a 32 bit windows version.

All I really need is a 32bit libpq. This seems like a much smaller lift.
Suggestions ?

Dave


^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* Re: Trying to build x86 version on windows using meson
@ 2024-03-21 16:51  Andres Freund <[email protected]>
  parent: Dave Cramer <[email protected]>
  0 siblings, 1 reply; 5+ messages in thread

From: Andres Freund @ 2024-03-21 16:51 UTC (permalink / raw)
  To: Dave Cramer <[email protected]>; +Cc: Peter Eisentraut <[email protected]>; PostgreSQL Hackers <[email protected]>

Hi,

On 2024-03-21 07:11:23 -0400, Dave Cramer wrote:
> It seems that attempting to cross-compile on an ARM machine might be asking
> too much as the use cases are pretty limited.

It for sure is if you don't even provide the precise commands and logs of a
failed run...


> So the impetus for this is that folks require 32bit versions of psqlODBC.
> Unfortunately EDB is no longer distributing a 32 bit windows version.
>
> All I really need is a 32bit libpq. This seems like a much smaller lift.
> Suggestions ?

FWIW, I can cross compile postgres from linux to 32bit windows without an
issue. If you really just need a 32bit libpq, that might actually be easier.

cd /tmp/ && rm -rf /tmp/meson-w32 && m setup --buildtype debug -Dcassert=true -Db_pch=true --cross-file ~/src/meson/cross/linux-mingw-w64-32bit.txt /tmp/meson-w32 ~/src/postgresql && cd /tmp/meson-w32 && ninja

file src/interfaces/libpq/libpq.dll
src/interfaces/libpq/libpq.dll: PE32 executable (DLL) (console) Intel 80386, for MS Windows, 19 sections

You'd need a windows openssl to actually have a useful libpq, but that should
be fairly simple.


There are two warnings that I think point to us doing something wrong, but they're not affecting libpq:

[1585/1945 42  81%] Linking target src/bin/pgevent/pgevent.dll
/usr/bin/i686-w64-mingw32-ld: warning: resolving _DllRegisterServer by linking to _DllRegisterServer@0
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
/usr/bin/i686-w64-mingw32-ld: warning: resolving _DllUnregisterServer by linking to _DllUnregisterServer@0


Greetings,

Andres Freund






^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* Re: Trying to build x86 version on windows using meson
@ 2024-03-21 17:17  Dave Cramer <[email protected]>
  parent: Andres Freund <[email protected]>
  0 siblings, 1 reply; 5+ messages in thread

From: Dave Cramer @ 2024-03-21 17:17 UTC (permalink / raw)
  To: Andres Freund <[email protected]>; +Cc: Peter Eisentraut <[email protected]>; PostgreSQL Hackers <[email protected]>

Andres,


On Thu, 21 Mar 2024 at 12:51, Andres Freund <[email protected]> wrote:

> Hi,
>
> On 2024-03-21 07:11:23 -0400, Dave Cramer wrote:
> > It seems that attempting to cross-compile on an ARM machine might be
> asking
> > too much as the use cases are pretty limited.
>
> It for sure is if you don't even provide the precise commands and logs of a
> failed run...
>
>
> > So the impetus for this is that folks require 32bit versions of psqlODBC.
> > Unfortunately EDB is no longer distributing a 32 bit windows version.
> >
> > All I really need is a 32bit libpq. This seems like a much smaller lift.
> > Suggestions ?
>
> FWIW, I can cross compile postgres from linux to 32bit windows without an
> issue. If you really just need a 32bit libpq, that might actually be
> easier.
>
> cd /tmp/ && rm -rf /tmp/meson-w32 && m setup --buildtype debug
> -Dcassert=true -Db_pch=true --cross-file
> ~/src/meson/cross/linux-mingw-w64-32bit.txt /tmp/meson-w32 ~/src/postgresql
> && cd /tmp/meson-w32 && ninja
>
> file src/interfaces/libpq/libpq.dll
> src/interfaces/libpq/libpq.dll: PE32 executable (DLL) (console) Intel
> 80386, for MS Windows, 19 sections
>
> You'd need a windows openssl to actually have a useful libpq, but that
> should
> be fairly simple.
>
>
> There are two warnings that I think point to us doing something wrong, but
> they're not affecting libpq:
>
> [1585/1945 42  81%] Linking target src/bin/pgevent/pgevent.dll
> /usr/bin/i686-w64-mingw32-ld: warning: resolving _DllRegisterServer by
> linking to _DllRegisterServer@0
> Use --enable-stdcall-fixup to disable these warnings
> Use --disable-stdcall-fixup to disable these fixups
> /usr/bin/i686-w64-mingw32-ld: warning: resolving _DllUnregisterServer by
> linking to _DllUnregisterServer@0
>
>
>
Attached correct log file

Dave

Build started at 2024-03-21T13:07:08.707715
Main binary: C:\Program Files\Meson\meson.exe
Build Options: '-Dextra_include_dirs=c:\Program Files\OpenSSL-Win64\include' -Derrorlogs=True '-Dextra_lib_dirs=c:\Program Files\OpenSSL-win64' '-Dprefix=c:\postgres86'
Python system: Windows
The Meson build system
Version: 1.3.1
Source dir: C:\Users\davec\projects\postgresql
Build dir: C:\Users\davec\projects\postgresql\build
Build type: native build
Project name: postgresql
Project version: 17devel
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors 

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker    /GS[-] enable security checks
/GR[-] enable C++ RTTI                  /GX[-] enable C++ EH (same as /EHsc)
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile (feature set subject to change) (on by default)
/Ze enable extensions (default)         /Za disable extensions
/ZW enable WinRT language extensions    /Zs syntax check only
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (off by default)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to an non-const
                        lvalue reference (off by default)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator (off by default)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules (implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions (implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor (off by default)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  __STDC__              define __STDC__ to 1 in C
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 100000)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/std:<c11|c17> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option deprecated. Report internal compiler errors to Microsoft
    none - do not send report                
    prompt - prompt to immediately send report
    queue - at next admin logon, prompt to send report (default)
    send - send report automatically         
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckc.c /Fesanitycheckc.exe /MD /nologo /showIncludes /utf-8 /link
Sanity check compile stdout:
sanitycheckc.c

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\Users\davec\projects\postgresql\build\meson-private\sanitycheckc.exe
C compiler for the host machine: cl (msvc 19.38.33134 "Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86")
C linker for the host machine: link link 14.38.33134.0
-----------
Detecting linker via: `lib /?` -> 1100
stdout:
Microsoft (R) Library Manager Version 14.38.33134.0
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINKREPRO:dir
      /LINKREPROTARGET:filename
      /LIST[:filename]
      /LTCG
      /MACHINE:{ARM|ARM64|ARM64X|EBC|X64|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
                  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
                  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
      /VERBOSE
      /WX[:NO]
      /WX[:nnnn[,nnnn...]]
-----------
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors 

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker    /GS[-] enable security checks
/GR[-] enable C++ RTTI                  /GX[-] enable C++ EH (same as /EHsc)
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile (feature set subject to change) (on by default)
/Ze enable extensions (default)         /Za disable extensions
/ZW enable WinRT language extensions    /Zs syntax check only
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (off by default)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to an non-const
                        lvalue reference (off by default)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator (off by default)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules (implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions (implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor (off by default)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  __STDC__              define __STDC__ to 1 in C
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 100000)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/std:<c11|c17> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option deprecated. Report internal compiler errors to Microsoft
    none - do not send report                
    prompt - prompt to immediately send report
    queue - at next admin logon, prompt to send report (default)
    send - send report automatically         
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckc.c /Fesanitycheckc.exe /MD /nologo /showIncludes /utf-8 /link
Sanity check compile stdout:
sanitycheckc.c

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\Users\davec\projects\postgresql\build\meson-private\sanitycheckc.exe
C compiler for the build machine: cl (msvc 19.38.33134 "Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86")
C linker for the build machine: link link 14.38.33134.0
-----------
Detecting linker via: `lib /?` -> 1100
stdout:
Microsoft (R) Library Manager Version 14.38.33134.0
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINKREPRO:dir
      /LINKREPROTARGET:filename
      /LIST[:filename]
      /LTCG
      /MACHINE:{ARM|ARM64|ARM64X|EBC|X64|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
                  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
                  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
      /VERBOSE
      /WX[:NO]
      /WX[:nnnn[,nnnn...]]
-----------
Build machine cpu family: x86
Build machine cpu: x86
Host machine cpu family: x86
Host machine cpu: x86
Target machine cpu family: x86
Target machine cpu: x86
Run-time dependency threads found: YES
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpv1h8emfx
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpv1h8emfx\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmpv1h8emfx\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- ws2_32.lib /link /release /nologo` -> 0
stdout:
testfile.c
-----------
Library ws2_32 found: YES
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmp50_u7odt
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmp50_u7odt\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmp50_u7odt\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- secur32.lib /link /release /nologo` -> 0
stdout:
testfile.c
-----------
Library secur32 found: YES
Program perl found: YES (c:\MinGW\msys\1.0\bin\perl.EXE)
'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte
Unusable script 'C:\\Program Files\\Meson\\meson.exe'
Program python3 found: YES
Running command: c:\MinGW\msys\1.0\bin\flex.EXE --version
--- stdout ---
flex 2.5.35

--- stderr ---


Program flex found: YES 2.5.35 2.5.35 (c:\MinGW\msys\1.0\bin\flex.EXE)
Running command: c:\MinGW\msys\1.0\bin\bison.EXE --version
--- stdout ---
bison (GNU Bison) 2.4.2
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

--- stderr ---


Program bison found: YES 2.4.2 2.4.2 (c:\MinGW\msys\1.0\bin\bison.EXE)
Program gsed sed found: NO
Program prove found: YES (perl c:\MinGW\msys\1.0\bin\prove)
Program tar found: YES (C:\Windows\system32\tar.EXE)
Program gzip found: YES (c:\MinGW\msys\1.0\bin\gzip.EXE)
Program lz4 found: NO
Program openssl found: YES (c:\MinGW\msys\1.0\bin\openssl.EXE)
Program zstd found: NO
Program dtrace skipped: feature dtrace disabled
Program config/missing found: YES (sh C:\Users\davec\projects\postgresql\config/missing)
Program cp found: YES (c:\MinGW\msys\1.0\bin\cp.EXE)
Program xmllint found: NO
Program xsltproc found: NO
Running command: c:\MinGW\msys\1.0\bin\bison.EXE --version
--- stdout ---
bison (GNU Bison) 2.4.2
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\flex.EXE --version
--- stdout ---
flex 2.5.35

--- stderr ---


Program wget found: NO
Running command: "C:\Program Files\Meson\meson.exe" runpython src/tools/find_meson
--- stdout ---
meson
C:\Program Files\Meson\meson.exe
--- stderr ---


Program C:\Program Files\Meson\meson.exe found: YES (C:\Program Files\Meson\meson.exe)
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m
Code:
 
        #include <bsd_auth.h>
-----------
Command line: `cl -IC:\Users\davec\projects\postgresql\src/include -IC:\Users\davec\projects\postgresql\build\src/include "-Ic:\Program Files\OpenSSL-Win64\include" -IC:\Users\davec\projects\postgresql\src/include/port/win32 -IC:\Users\davec\projects\postgresql\build\src/include/port/win32 -IC:\Users\davec\projects\postgresql\src/include/port/win32_msvc -IC:\Users\davec\projects\postgresql\build\src/include/port/win32_msvc C:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m\testfile.c /FoC:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi-` -> 2
stdout:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m\testfile.c(2): fatal error C1083: Cannot open include file: 'bsd_auth.h': No such file or directory
-----------
Check usable header "bsd_auth.h" : NO 
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0
Code:
 
        #include <dns_sd.h>
-----------
Command line: `cl -IC:\Users\davec\projects\postgresql\src/include -IC:\Users\davec\projects\postgresql\build\src/include "-Ic:\Program Files\OpenSSL-Win64\include" -IC:\Users\davec\projects\postgresql\src/include/port/win32 -IC:\Users\davec\projects\postgresql\build\src/include/port/win32 -IC:\Users\davec\projects\postgresql\src/include/port/win32_msvc -IC:\Users\davec\projects\postgresql\build\src/include/port/win32_msvc C:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0\testfile.c /FoC:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi-` -> 2
stdout:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0\testfile.c(2): fatal error C1083: Cannot open include file: 'dns_sd.h': No such file or directory
-----------
Check usable header "dns_sd.h" : NO 
Program fop found: NO
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Did not find pkg-config by name 'pkg-config'
Found pkg-config: NO
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.EXE (3.27.2)
Extracting basic cmake information
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
CMake trace warning: add_executable() non imported executables are not supported
CMake TRACE: C:\Users\davec\projects\postgresql\build\meson-private\__CMake_compiler_info__\CMakeFiles\CMakeScratch\TryCompile-3r5k1k\CMakeLists.txt:21 add_executable(['cmTC_09b2a', 'C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27/Modules/CMakeCCompilerABI.c'])
CMake trace warning: target_link_options() TARGET cmTC_09b2a not found
CMake TRACE: C:\Users\davec\projects\postgresql\build\meson-private\__CMake_compiler_info__\CMakeFiles\CMakeScratch\TryCompile-3r5k1k\CMakeLists.txt:24 target_link_libraries(['cmTC_09b2a', ''])
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_krb5-gssapi with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_krb5-gssapi/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['C:/Program Files', 'C:/Program Files (x86)', 'C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake']
  -- CMake root:             C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', '']
Preliminary CMake check failed. Aborting.
Run-time dependency krb5-gssapi found: NO (tried pkgconfig and cmake)
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpxnw_9hvh
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpxnw_9hvh\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmpxnw_9hvh\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- wldap32.lib /link /release /nologo` -> 0
stdout:
testfile.c
-----------
Library wldap32 found: YES
Compiler for language cpp skipped: feature llvm disabled
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency icu-uc found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency icu-i18n found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency libxml-2.0 found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.

Determining dependency 'libxslt' with CMake executable 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE'
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_libxslt with:
  - "-DNAME=libxslt"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_libxslt/CMakeMesonToolchainFile.cmake"
  - "."
Run-time dependency libxslt found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency liblz4 found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.

Determining dependency 'tcl' with CMake executable 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE'
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_tcl with:
  - "-DNAME=tcl"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_tcl/CMakeMesonToolchainFile.cmake"
  - "."
Run-time dependency tcl found: NO (tried pkgconfig and cmake)
Library tcl found: NO
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmphz4b41hs
Code:
 
        #ifdef __has_include
         #if !__has_include("tcl.h")
          #error "Header 'tcl.h' could not be found"
         #endif
        #else
         #include <tcl.h>
        #endif
-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmphz4b41hs\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi-` -> 2
stderr:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmphz4b41hs\testfile.c(4): fatal error C1189: #error:  "Header 'tcl.h' could not be found"
-----------
Has header "tcl.h" with dependency -ltcl: NO 
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency pam found: NO (tried pkgconfig and cmake)
Library pam found: NO
Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -MOpcode -MExtUtils::Embed -MExtUtils::ParseXS -e ""
--- stdout ---

--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" api_versionstring
--- stdout ---
5.8.0
--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" archlibexp
--- stdout ---
/usr/lib/perl5/5.8/msys
--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" privlibexp
--- stdout ---
/usr/lib/perl5/5.8
--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" useshrplib
--- stdout ---
true
--- stderr ---


Message: disabling optional dependency plperl: Perl version 5.14 or later is required, but this is 5.8.0
'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte
Unusable script 'C:\\Program Files\\Meson\\meson.exe'
Could not introspect Python (['C:\\Program Files\\Meson\\meson.exe', 'C:\\Program Files\\Meson\\_internal\\mesonbuild\\scripts\\python_info.py']): exit code 1
Program stdout:


ERROR: C:\Program Files\Meson\_internal\mesonbuild\scripts\python_info.py is not a directory
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

Program stderr:


meson.build:1052: WARNING: <PythonExternalProgram 'C:\\Program Files\\Meson\\meson.exe' -> ['C:\\Program Files\\Meson\\meson.exe']> is not a valid python or it is missing distutils
Program C:\Program Files\Meson\meson.exe found: NO
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency readline found: NO (tried pkgconfig and cmake)
Library readline found: NO
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency libedit found: NO (tried pkgconfig and cmake)
Library libedit found: NO
Dependency libselinux skipped: feature selinux disabled
Dependency libsystemd skipped: feature systemd disabled
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.

Determining dependency 'ZLIB' with CMake executable 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE'
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_ZLIB with:
  - "-DNAME=ZLIB"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_ZLIB/CMakeMesonToolchainFile.cmake"
  - "."
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmp228tm_u7
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmp228tm_u7\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmp228tm_u7\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- zlib1.lib /link /release /nologo` -> 2
stdout:
testfile.c
LINK : fatal error LNK1181: cannot open input file 'zlib1.lib'
-----------
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c
Code:
 
        #ifdef __has_include
         #if !__has_include("zlib.h")
          #error "Header 'zlib.h' could not be found"
         #endif
        #else
         #include <zlib.h>
        #endif
-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi-` -> 2
stderr:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c(4): fatal error C1189: #error:  "Header 'zlib.h' could not be found"
-----------
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpbuwjess7
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpbuwjess7\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmpbuwjess7\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- zlib.lib /link /release /nologo` -> 2
stdout:
testfile.c
LINK : fatal error LNK1181: cannot open input file 'zlib.lib'
-----------
Using cached compile:
Cached command line:  cl C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi- 

Code:
 
        #ifdef __has_include
         #if !__has_include("zlib.h")
          #error "Header 'zlib.h' could not be found"
         #endif
        #else
         #include <zlib.h>
        #endif
Cached compiler stdout:
 

        
         
          
Cached compiler stderr:
 testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c(4): fatal error C1189: #error:  "Header 'zlib.h' could not be found"

Run-time dependency zlib found: NO (tried pkgconfig, cmake and system)
meson.build:1373: WARNING: did not find zlib
Running command: c:\MinGW\msys\1.0\bin\perl.EXE config/check_modules.pl
--- stdout ---

--- stderr ---
Can't locate IPC/Run.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at config/check_modules.pl line 14.
BEGIN failed--compilation aborted at config/check_modules.pl line 14.


Message: Can't locate IPC/Run.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at config/check_modules.pl line 14.
BEGIN failed--compilation aborted at config/check_modules.pl line 14.
meson.build:1404: WARNING: Additional Perl modules are required to run TAP tests.
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency libzstd found: NO (tried pkgconfig and cmake)
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpy5g0ve54
Code:
 
#include <stdbool.h>
#include <complex.h>
#include <tgmath.h>
#include <inttypes.h>

struct named_init_test {
  int a;
  int b;
};

extern void structfunc(struct named_init_test);

int main(int argc, char **argv)
{
  struct named_init_test nit = {
    .a = 3,
    .b = 5,
  };

  for (int loop_var = 0; loop_var < 3; loop_var++)
  {
    nit.a += nit.b;
  }

  structfunc((struct named_init_test){1, 0});

  return nit.a != 0;
}

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpy5g0ve54\testfile.c /FoC:\Users\davec\projects\postgresql\build\meson-private\tmpy5g0ve54\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi-` -> 0
stdout:
testfile.c
Note: including file: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\stdbool.h
Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\complex.h
Note: including file:  C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt.h
Note: including file:   C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\vcruntime.h
Note: including file:    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\sal.h
Note: including file:     C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\concurrencysal.h
Note: including file:    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\vadefs.h
Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\tgmath.h
Note: including file:  C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\math.h
Note: including file:   C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_math.h
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\tgmath.h(33): warning UCRT4000: This header does not conform to the C99 standard. C99 functionality is available when compiling in C11 mode or higher (/std:c11). Functionality equivalent to the type-generic functions provided by tgmath.h is available in <ctgmath> when compiling as C++. If compiling in C++17 mode or higher (/std:c++17), this header will automatically include <ctgmath> instead. You can define _CRT_SILENCE_NONCONFORMING_TGMATH_H to acknowledge that you have received this warning.
Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\inttypes.h
Note: including file:  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\stdint.h
-----------
Checking if "c99" compiles: YES 

meson.build:1479:17: ERROR: Can not run test applications in this cross environment.


Attachments:

  [text/plain] meson-log.txt (53.7K, ../../CADK3HHLJxW-_iAW6LeEBONMpi49nwMfuh4An6=gOanB2rj3NmQ@mail.gmail.com/3-meson-log.txt)
  download | inline:
Build started at 2024-03-21T13:07:08.707715
Main binary: C:\Program Files\Meson\meson.exe
Build Options: '-Dextra_include_dirs=c:\Program Files\OpenSSL-Win64\include' -Derrorlogs=True '-Dextra_lib_dirs=c:\Program Files\OpenSSL-win64' '-Dprefix=c:\postgres86'
Python system: Windows
The Meson build system
Version: 1.3.1
Source dir: C:\Users\davec\projects\postgresql
Build dir: C:\Users\davec\projects\postgresql\build
Build type: native build
Project name: postgresql
Project version: 17devel
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors 

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker    /GS[-] enable security checks
/GR[-] enable C++ RTTI                  /GX[-] enable C++ EH (same as /EHsc)
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile (feature set subject to change) (on by default)
/Ze enable extensions (default)         /Za disable extensions
/ZW enable WinRT language extensions    /Zs syntax check only
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (off by default)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to an non-const
                        lvalue reference (off by default)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator (off by default)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules (implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions (implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor (off by default)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  __STDC__              define __STDC__ to 1 in C
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 100000)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/std:<c11|c17> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option deprecated. Report internal compiler errors to Microsoft
    none - do not send report                
    prompt - prompt to immediately send report
    queue - at next admin logon, prompt to send report (default)
    send - send report automatically         
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckc.c /Fesanitycheckc.exe /MD /nologo /showIncludes /utf-8 /link
Sanity check compile stdout:
sanitycheckc.c

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\Users\davec\projects\postgresql\build\meson-private\sanitycheckc.exe
C compiler for the host machine: cl (msvc 19.38.33134 "Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86")
C linker for the host machine: link link 14.38.33134.0
-----------
Detecting linker via: `lib /?` -> 1100
stdout:
Microsoft (R) Library Manager Version 14.38.33134.0
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINKREPRO:dir
      /LINKREPROTARGET:filename
      /LIST[:filename]
      /LTCG
      /MACHINE:{ARM|ARM64|ARM64X|EBC|X64|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
                  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
                  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
      /VERBOSE
      /WX[:NO]
      /WX[:nnnn[,nnnn...]]
-----------
-----------
Detecting compiler via: `icl ""` -> [WinError 2] The system cannot find the file specified
-----------
Detecting compiler via: `cl /?` -> 0
stdout:
C/C++ COMPILER OPTIONS


                              -OPTIMIZATION-

/O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed)
/Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
/Og enable global optimization          /Oi[-] enable intrinsic functions
/Os favor code space                    /Ot favor code speed
/Ox optimizations (favor speed)         /Oy[-] enable frame pointer omission 
/favor:<blend|ATOM> select processor to optimize for, one of:
    blend - a combination of optimizations for several different x86 processors
    ATOM - Intel(R) Atom(TM) processors 

                             -CODE GENERATION-

/Gu[-] ensure distinct functions have distinct addresses
/Gw[-] separate global variables for linker
/GF enable read-only string pooling     /Gm[-] enable minimal rebuild
/Gy[-] separate functions for linker    /GS[-] enable security checks
/GR[-] enable C++ RTTI                  /GX[-] enable C++ EH (same as /EHsc)
/guard:cf[-] enable CFG (control flow guard)
/guard:ehcont[-] enable EH continuation metadata (CET)
/EHs enable C++ EH (no SEH exceptions)  /EHa enable C++ EH (w/ SEH exceptions)
/EHc extern "C" defaults to nothrow     
/EHr always generate noexcept runtime termination checks
/fp:<contract|except[-]|fast|precise|strict> choose floating-point model:
    contract - consider floating-point contractions when generating code
    except[-] - consider floating-point exceptions when generating code
    fast - "fast" floating-point model; results are less predictable
    precise - "precise" floating-point model; results are predictable
    strict - "strict" floating-point model (implies /fp:except)
/Qfast_transcendentals generate inline FP intrinsics even with /fp:except
/Qspectre[-] enable mitigations for CVE 2017-5753
/Qpar[-] enable parallel code generation
/Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops
/Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized
/Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops
/Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized
/GL[-] enable link-time code generation 
/volatile:<iso|ms> choose volatile model:
    iso - Acquire/release semantics not guaranteed on volatile accesses
    ms  - Acquire/release semantics guaranteed on volatile accesses
/GA optimize for Windows Application    /Ge force stack checking for all funcs
/Gs[num] control stack checking calls   /Gh enable _penter function call
/GH enable _pexit function call         /GT generate fiber-safe TLS accesses
/RTC1 Enable fast checks (/RTCsu)       /RTCc Convert to smaller type checks
/RTCs Stack Frame runtime checking      /RTCu Uninitialized local usage checks
/clr[:option] compile for common language runtime, where option is:
    pure : produce IL-only output file (no native executable code)
    safe : produce IL-only verifiable output file
    netcore : produce assemblies targeting .NET Core runtime
    noAssembly : do not produce an assembly
    nostdlib : ignore the system .NET framework directory when searching for assemblies
    nostdimport : do not import any required assemblies implicitly
    initialAppDomain : enable initial AppDomain behavior of Visual C++ 2002
    implicitKeepAlive- : turn off implicit emission of System::GC::KeepAlive(this)
/fsanitize=address Enable address sanitizer codegen
/Gd __cdecl calling convention          /Gr __fastcall calling convention
/Gz __stdcall calling convention        /GZ Enable stack checks (/RTCs)
/Gv __vectorcall calling convention     
/hotpatch ensure function padding for hotpatchable images
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> minimum CPU architecture requirements, one of:
   IA32 - use no enhanced instructions and use x87 for floating point
   SSE - enable use of instructions available with SSE-enabled CPUs
   SSE2 - (default) enable use of instructions available with SSE2-enabled CPUs
   AVX - enable use of instructions available with AVX-enabled CPUs
   AVX2 - enable use of instructions available with AVX2-enabled CPUs
   AVX512 - enable use of instructions available with AVX-512-enabled CPUs
/Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try"
/Qsafe_fp_loads generate safe FP loads  
/QIntel-jcc-erratum enable mitigations for Intel JCC erratum
/Qspectre-load Enable spectre mitigations for all instructions which load memory
/Qspectre-load-cf Enable spectre mitigations for all control-flow instructions which load memory
/fpcvt:<IA|BC> FP to unsigned integer conversion compatibility
   IA - results compatible with VCVTTSD2USI instruction
   BC - results compatible with VS2017 and earlier compiler

                              -OUTPUT FILES-

/Fa[file] name assembly listing file    /FA[scu] configure assembly listing
/Fd[file] name .PDB file                /Fe<file> name executable file
/Fm[file] name map file                 /Fo<file> name object file
/Fp<file> name precompiled header file  /Fr[file] name source browser file
/FR[file] name extended .SBR file       /Fi[file] name preprocessed file
/Fd: <file> name .PDB file              /Fe: <file> name executable file
/Fm: <file> name map file               /Fo: <file> name object file
/Fp: <file> name .PCH file              /FR: <file> name extended .SBR file
/Fi: <file> name preprocessed file      
/Ft<dir> location of the header files generated for #import
/doc[file] process XML documentation comments and optionally name the .xdc file

                              -PREPROCESSOR-

/AI<dir> add to assembly search path    /FU<file> import .NET assembly/module
/FU:asFriend<file> import .NET assembly/module as friend
/C don't strip comments                 /D<name>{=|#}<text> define macro
/E preprocess to stdout                 /EP preprocess to stdout, no #line
/P preprocess to file                   /Fx merge injected code to file
/FI<file> name forced include file      /U<name> remove predefined macro
/u remove all predefined macros         /I<dir> add to include search path
/X ignore "standard places"             
/PH generate #pragma file_hash when preprocessing
/PD print all macro definitions         

                                -LANGUAGE-

/std:<c++14|c++17|c++20|c++latest> C++ standard version
    c++14 - ISO/IEC 14882:2014 (default)
    c++17 - ISO/IEC 14882:2017
    c++20 - ISO/IEC 14882:2020
    c++latest - latest draft standard (feature set subject to change)
/permissive[-] enable some nonconforming code to compile (feature set subject to change) (on by default)
/Ze enable extensions (default)         /Za disable extensions
/ZW enable WinRT language extensions    /Zs syntax check only
/Zc:arg1[,arg2] C++ language conformance, where arguments can be:
  forScope[-]           enforce Standard C++ for scoping rules
  wchar_t[-]            wchar_t is the native type, not a typedef
  auto[-]               enforce the new Standard C++ meaning for auto
  trigraphs[-]          enable trigraphs (off by default)
  rvalueCast[-]         enforce Standard C++ explicit type conversion rules
  strictStrings[-]      disable string-literal to [char|wchar_t]*
                        conversion (off by default)
  implicitNoexcept[-]   enable implicit noexcept on required functions
  threadSafeInit[-]     enable thread-safe local static initialization
  inline[-]             remove unreferenced function or data if it is
                        COMDAT or has internal linkage only (off by default)
  sizedDealloc[-]       enable C++14 global sized deallocation
                        functions (on by default)
  throwingNew[-]        assume operator new throws on failure (off by default)
  referenceBinding[-]   a temporary will not bind to an non-const
                        lvalue reference (off by default)
  twoPhase-             disable two-phase name lookup
  ternary[-]            enforce C++11 rules for conditional operator (off by default)
  noexceptTypes[-]      enforce C++17 noexcept rules (on by default in C++17 or later)
  alignedNew[-]         enable C++17 alignment of dynamically allocated objects (on by default)
  hiddenFriend[-]       enforce Standard C++ hidden friend rules (implied by /permissive-)
  externC[-]            enforce Standard C++ rules for 'extern "C"' functions (implied by /permissive-)
  lambda[-]             better lambda support by using the newer lambda processor (off by default)
  tlsGuards[-]          generate runtime checks for TLS variable initialization (on by default)
  zeroSizeArrayNew[-]   call member new/delete for 0-size arrays of objects (on by default)
  static_assert[-]      strict handling of 'static_assert' (implied by /permissive-)
  gotoScope[-]          cannot jump past the initialization of a variable (implied by /permissive-)
  templateScope[-]      enforce Standard C++ template parameter shadowing rules
  enumTypes[-]          enable Standard C++ underlying enum types (off by default)
  checkGwOdr[-]         enforce Standard C++ one definition rule violations
                        when /Gw has been enabled (off by default)
  __STDC__              define __STDC__ to 1 in C
/await enable resumable functions extension
/await:strict enable standard C++20 coroutine support with earlier language versions
/constexpr:depth<N>     recursion depth limit for constexpr evaluation (default: 512)
/constexpr:backtrace<N> show N constexpr evaluations in diagnostics (default: 10)
/constexpr:steps<N>     terminate constexpr evaluation after N steps (default: 100000)
/Zi enable debugging information        /Z7 enable old-style debug info
/Zo[-] generate richer debugging information for optimized code (on by default)
/ZH:[MD5|SHA1|SHA_256] hash algorithm for calculation of file checksum in debug info (default: SHA_256)
/Zp[n] pack structs on n-byte boundary  /Zl omit default library name in .OBJ
/vd{0|1|2} disable/enable vtordisp      /vm<x> type of pointers to members
/std:<c11|c17> C standard version
    c11 - ISO/IEC 9899:2011
    c17 - ISO/IEC 9899:2018
/ZI enable Edit and Continue debug info 
/openmp enable OpenMP 2.0 language extensions
/openmp:experimental enable OpenMP 2.0 language extensions plus select OpenMP 3.0+ language extensions
/openmp:llvm OpenMP language extensions using LLVM runtime

                              -MISCELLANEOUS-

@<file> options response file           /?, /help print this help message
/bigobj generate extended object format /c compile only, no link
/errorReport:option deprecated. Report internal compiler errors to Microsoft
    none - do not send report                
    prompt - prompt to immediately send report
    queue - at next admin logon, prompt to send report (default)
    send - send report automatically         
/FC use full pathnames in diagnostics   /H<num> max external name length
/J default char type is unsigned        
/MP[n] use up to 'n' processes for compilation
/nologo suppress copyright message      /showIncludes show include file names
/Tc<source file> compile file as .c     /Tp<source file> compile file as .cpp
/TC compile all files as .c             /TP compile all files as .cpp
/V<string> set version string           /Yc[file] create .PCH file
/Yd put debug info in every .OBJ        /Yl[sym] inject .PCH ref for debug lib
/Yu[file] use .PCH file                 /Y- disable all PCH options
/Zm<n> max memory alloc (% of default)  /FS force to use MSPDBSRV.EXE
/source-charset:<iana-name>|.nnnn set source character set
/execution-charset:<iana-name>|.nnnn set execution character set
/utf-8 set source and execution character set to UTF-8
/validate-charset[-] validate UTF-8 files for only legal characters
/fastfail[-] enable fast-fail mode      /JMC[-] enable native just my code
/presetPadding[-] zero initialize padding for stack based class types
/volatileMetadata[-] generate metadata on volatile memory accesses
/sourcelink [file] file containing source link information

                                -LINKING-

/LD Create .DLL                         /LDd Create .DLL debug library
/LN Create a .netmodule                 /F<num> set stack size
/link [linker options and libraries]    /MD link with MSVCRT.LIB
/MT link with LIBCMT.LIB                /MDd link with MSVCRTD.LIB debug lib
/MTd link with LIBCMTD.LIB debug lib    

                              -CODE ANALYSIS-

/analyze[-] Enable native analysis      /analyze:quiet[-] No warning to console
/analyze:log<name> Warnings to file     /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file
/analyze:WX- Warnings not fatal         /analyze:stacksize<num> Max stack frame
/analyze:max_paths<num> Max paths       /analyze:only Analyze, no code gen

                              -DIAGNOSTICS-

/diagnostics:<args,...> controls the format of diagnostic messages:
             classic   - retains prior format
             column[-] - prints column information
             caret[-]  - prints column and the indicated line of source
/Wall enable all warnings               /w   disable all warnings
/W<n> set warning level (default n=1)   
/Wv:xx[.yy[.zzzzz]] disable warnings introduced after version xx.yy.zzzzz
/WX treat warnings as errors            /WL enable one line diagnostics
/wd<n> disable warning n                /we<n> treat warning n as an error
/wo<n> issue warning n once             /w<l><n> set warning level 1-4 for n
/external:I <path>      - location of external headers
/external:env:<var>     - environment variable with locations of external headers
/external:anglebrackets - treat all headers included via <> as external
/external:W<n>          - warning level for external headers
/external:templates[-]  - evaluate warning level across template instantiation chain
/sdl enable additional security features and warnings
/options:strict unrecognized compiler options are an error
-----------
stderr:
Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.
-----------
Sanity testing C compiler: cl
Is cross compiler: False.
Sanity check compiler command line: cl sanitycheckc.c /Fesanitycheckc.exe /MD /nologo /showIncludes /utf-8 /link
Sanity check compile stdout:
sanitycheckc.c

-----
Sanity check compile stderr:

-----
Running test binary command:  C:\Users\davec\projects\postgresql\build\meson-private\sanitycheckc.exe
C compiler for the build machine: cl (msvc 19.38.33134 "Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33134 for x86")
C linker for the build machine: link link 14.38.33134.0
-----------
Detecting linker via: `lib /?` -> 1100
stdout:
Microsoft (R) Library Manager Version 14.38.33134.0
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND}
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINKREPRO:dir
      /LINKREPROTARGET:filename
      /LIST[:filename]
      /LTCG
      /MACHINE:{ARM|ARM64|ARM64X|EBC|X64|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|
                  EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|
                  NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]]
      /VERBOSE
      /WX[:NO]
      /WX[:nnnn[,nnnn...]]
-----------
Build machine cpu family: x86
Build machine cpu: x86
Host machine cpu family: x86
Host machine cpu: x86
Target machine cpu family: x86
Target machine cpu: x86
Run-time dependency threads found: YES
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpv1h8emfx
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpv1h8emfx\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmpv1h8emfx\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- ws2_32.lib /link /release /nologo` -> 0
stdout:
testfile.c
-----------
Library ws2_32 found: YES
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmp50_u7odt
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmp50_u7odt\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmp50_u7odt\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- secur32.lib /link /release /nologo` -> 0
stdout:
testfile.c
-----------
Library secur32 found: YES
Program perl found: YES (c:\MinGW\msys\1.0\bin\perl.EXE)
'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte
Unusable script 'C:\\Program Files\\Meson\\meson.exe'
Program python3 found: YES
Running command: c:\MinGW\msys\1.0\bin\flex.EXE --version
--- stdout ---
flex 2.5.35

--- stderr ---


Program flex found: YES 2.5.35 2.5.35 (c:\MinGW\msys\1.0\bin\flex.EXE)
Running command: c:\MinGW\msys\1.0\bin\bison.EXE --version
--- stdout ---
bison (GNU Bison) 2.4.2
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

--- stderr ---


Program bison found: YES 2.4.2 2.4.2 (c:\MinGW\msys\1.0\bin\bison.EXE)
Program gsed sed found: NO
Program prove found: YES (perl c:\MinGW\msys\1.0\bin\prove)
Program tar found: YES (C:\Windows\system32\tar.EXE)
Program gzip found: YES (c:\MinGW\msys\1.0\bin\gzip.EXE)
Program lz4 found: NO
Program openssl found: YES (c:\MinGW\msys\1.0\bin\openssl.EXE)
Program zstd found: NO
Program dtrace skipped: feature dtrace disabled
Program config/missing found: YES (sh C:\Users\davec\projects\postgresql\config/missing)
Program cp found: YES (c:\MinGW\msys\1.0\bin\cp.EXE)
Program xmllint found: NO
Program xsltproc found: NO
Running command: c:\MinGW\msys\1.0\bin\bison.EXE --version
--- stdout ---
bison (GNU Bison) 2.4.2
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\flex.EXE --version
--- stdout ---
flex 2.5.35

--- stderr ---


Program wget found: NO
Running command: "C:\Program Files\Meson\meson.exe" runpython src/tools/find_meson
--- stdout ---
meson
C:\Program Files\Meson\meson.exe
--- stderr ---


Program C:\Program Files\Meson\meson.exe found: YES (C:\Program Files\Meson\meson.exe)
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m
Code:
 
        #include <bsd_auth.h>
-----------
Command line: `cl -IC:\Users\davec\projects\postgresql\src/include -IC:\Users\davec\projects\postgresql\build\src/include "-Ic:\Program Files\OpenSSL-Win64\include" -IC:\Users\davec\projects\postgresql\src/include/port/win32 -IC:\Users\davec\projects\postgresql\build\src/include/port/win32 -IC:\Users\davec\projects\postgresql\src/include/port/win32_msvc -IC:\Users\davec\projects\postgresql\build\src/include/port/win32_msvc C:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m\testfile.c /FoC:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi-` -> 2
stdout:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmppsa74k7m\testfile.c(2): fatal error C1083: Cannot open include file: 'bsd_auth.h': No such file or directory
-----------
Check usable header "bsd_auth.h" : NO 
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0
Code:
 
        #include <dns_sd.h>
-----------
Command line: `cl -IC:\Users\davec\projects\postgresql\src/include -IC:\Users\davec\projects\postgresql\build\src/include "-Ic:\Program Files\OpenSSL-Win64\include" -IC:\Users\davec\projects\postgresql\src/include/port/win32 -IC:\Users\davec\projects\postgresql\build\src/include/port/win32 -IC:\Users\davec\projects\postgresql\src/include/port/win32_msvc -IC:\Users\davec\projects\postgresql\build\src/include/port/win32_msvc C:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0\testfile.c /FoC:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi-` -> 2
stdout:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmpi5wtaom0\testfile.c(2): fatal error C1083: Cannot open include file: 'dns_sd.h': No such file or directory
-----------
Check usable header "dns_sd.h" : NO 
Program fop found: NO
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Did not find pkg-config by name 'pkg-config'
Found pkg-config: NO
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.EXE (3.27.2)
Extracting basic cmake information
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
CMake trace warning: add_executable() non imported executables are not supported
CMake TRACE: C:\Users\davec\projects\postgresql\build\meson-private\__CMake_compiler_info__\CMakeFiles\CMakeScratch\TryCompile-3r5k1k\CMakeLists.txt:21 add_executable(['cmTC_09b2a', 'C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27/Modules/CMakeCCompilerABI.c'])
CMake trace warning: target_link_options() TARGET cmTC_09b2a not found
CMake TRACE: C:\Users\davec\projects\postgresql\build\meson-private\__CMake_compiler_info__\CMakeFiles\CMakeScratch\TryCompile-3r5k1k\CMakeLists.txt:24 target_link_libraries(['cmTC_09b2a', ''])
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_krb5-gssapi with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_krb5-gssapi/CMakeMesonToolchainFile.cmake"
  - "."
  -- Module search paths:    ['C:/Program Files', 'C:/Program Files (x86)', 'C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake']
  -- CMake root:             C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', '']
Preliminary CMake check failed. Aborting.
Run-time dependency krb5-gssapi found: NO (tried pkgconfig and cmake)
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpxnw_9hvh
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpxnw_9hvh\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmpxnw_9hvh\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- wldap32.lib /link /release /nologo` -> 0
stdout:
testfile.c
-----------
Library wldap32 found: YES
Compiler for language cpp skipped: feature llvm disabled
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency icu-uc found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency icu-i18n found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency libxml-2.0 found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.

Determining dependency 'libxslt' with CMake executable 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE'
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_libxslt with:
  - "-DNAME=libxslt"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_libxslt/CMakeMesonToolchainFile.cmake"
  - "."
Run-time dependency libxslt found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency liblz4 found: NO (tried pkgconfig and cmake)
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.

Determining dependency 'tcl' with CMake executable 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE'
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_tcl with:
  - "-DNAME=tcl"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_tcl/CMakeMesonToolchainFile.cmake"
  - "."
Run-time dependency tcl found: NO (tried pkgconfig and cmake)
Library tcl found: NO
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmphz4b41hs
Code:
 
        #ifdef __has_include
         #if !__has_include("tcl.h")
          #error "Header 'tcl.h' could not be found"
         #endif
        #else
         #include <tcl.h>
        #endif
-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmphz4b41hs\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi-` -> 2
stderr:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmphz4b41hs\testfile.c(4): fatal error C1189: #error:  "Header 'tcl.h' could not be found"
-----------
Has header "tcl.h" with dependency -ltcl: NO 
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency pam found: NO (tried pkgconfig and cmake)
Library pam found: NO
Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -MOpcode -MExtUtils::Embed -MExtUtils::ParseXS -e ""
--- stdout ---

--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" api_versionstring
--- stdout ---
5.8.0
--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" archlibexp
--- stdout ---
/usr/lib/perl5/5.8/msys
--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" privlibexp
--- stdout ---
/usr/lib/perl5/5.8
--- stderr ---


Running command: c:\MinGW\msys\1.0\bin\perl.EXE -MConfig -e "print $Config{$ARGV[0]}" useshrplib
--- stdout ---
true
--- stderr ---


Message: disabling optional dependency plperl: Perl version 5.14 or later is required, but this is 5.8.0
'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte
Unusable script 'C:\\Program Files\\Meson\\meson.exe'
Could not introspect Python (['C:\\Program Files\\Meson\\meson.exe', 'C:\\Program Files\\Meson\\_internal\\mesonbuild\\scripts\\python_info.py']): exit code 1
Program stdout:


ERROR: C:\Program Files\Meson\_internal\mesonbuild\scripts\python_info.py is not a directory
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

Program stderr:


meson.build:1052: WARNING: <PythonExternalProgram 'C:\\Program Files\\Meson\\meson.exe' -> ['C:\\Program Files\\Meson\\meson.exe']> is not a valid python or it is missing distutils
Program C:\Program Files\Meson\meson.exe found: NO
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency readline found: NO (tried pkgconfig and cmake)
Library readline found: NO
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency libedit found: NO (tried pkgconfig and cmake)
Library libedit found: NO
Dependency libselinux skipped: feature selinux disabled
Dependency libsystemd skipped: feature systemd disabled
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.

Determining dependency 'ZLIB' with CMake executable 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE'
Try CMake generator: auto
Calling CMake (['C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.EXE']) in C:\Users\davec\projects\postgresql\build\meson-private\cmake_ZLIB with:
  - "-DNAME=ZLIB"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=C:/Users/davec/projects/postgresql/build/meson-private/cmake_ZLIB/CMakeMesonToolchainFile.cmake"
  - "."
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmp228tm_u7
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmp228tm_u7\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmp228tm_u7\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- zlib1.lib /link /release /nologo` -> 2
stdout:
testfile.c
LINK : fatal error LNK1181: cannot open input file 'zlib1.lib'
-----------
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c
Code:
 
        #ifdef __has_include
         #if !__has_include("zlib.h")
          #error "Header 'zlib.h' could not be found"
         #endif
        #else
         #include <zlib.h>
        #endif
-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi-` -> 2
stderr:
testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c(4): fatal error C1189: #error:  "Header 'zlib.h' could not be found"
-----------
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpbuwjess7
Code:
 int main(void) { return 0; }

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpbuwjess7\testfile.c /FeC:\Users\davec\projects\postgresql\build\meson-private\tmpbuwjess7\output.exe /nologo /showIncludes /utf-8 /MD /nologo /showIncludes /utf-8 /Od /Oi- zlib.lib /link /release /nologo` -> 2
stdout:
testfile.c
LINK : fatal error LNK1181: cannot open input file 'zlib.lib'
-----------
Using cached compile:
Cached command line:  cl C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi- 

Code:
 
        #ifdef __has_include
         #if !__has_include("zlib.h")
          #error "Header 'zlib.h' could not be found"
         #endif
        #else
         #include <zlib.h>
        #endif
Cached compiler stdout:
 

        
         
          
Cached compiler stderr:
 testfile.c
C:\Users\davec\projects\postgresql\build\meson-private\tmpjdcwon0c\testfile.c(4): fatal error C1189: #error:  "Header 'zlib.h' could not be found"

Run-time dependency zlib found: NO (tried pkgconfig, cmake and system)
meson.build:1373: WARNING: did not find zlib
Running command: c:\MinGW\msys\1.0\bin\perl.EXE config/check_modules.pl
--- stdout ---

--- stderr ---
Can't locate IPC/Run.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at config/check_modules.pl line 14.
BEGIN failed--compilation aborted at config/check_modules.pl line 14.


Message: Can't locate IPC/Run.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at config/check_modules.pl line 14.
BEGIN failed--compilation aborted at config/check_modules.pl line 14.
meson.build:1404: WARNING: Additional Perl modules are required to run TAP tests.
Pkg-config for machine host machine not found. Giving up.
CMake binary for host machine is cached.
Preliminary CMake check failed. Aborting.
Run-time dependency libzstd found: NO (tried pkgconfig and cmake)
Running compile:
Working directory:  C:\Users\davec\projects\postgresql\build\meson-private\tmpy5g0ve54
Code:
 
#include <stdbool.h>
#include <complex.h>
#include <tgmath.h>
#include <inttypes.h>

struct named_init_test {
  int a;
  int b;
};

extern void structfunc(struct named_init_test);

int main(int argc, char **argv)
{
  struct named_init_test nit = {
    .a = 3,
    .b = 5,
  };

  for (int loop_var = 0; loop_var < 3; loop_var++)
  {
    nit.a += nit.b;
  }

  structfunc((struct named_init_test){1, 0});

  return nit.a != 0;
}

-----------
Command line: `cl C:\Users\davec\projects\postgresql\build\meson-private\tmpy5g0ve54\testfile.c /FoC:\Users\davec\projects\postgresql\build\meson-private\tmpy5g0ve54\output.obj /nologo /showIncludes /utf-8 /c /nologo /showIncludes /utf-8 /c /Od /Oi-` -> 0
stdout:
testfile.c
Note: including file: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\stdbool.h
Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\complex.h
Note: including file:  C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt.h
Note: including file:   C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\vcruntime.h
Note: including file:    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\sal.h
Note: including file:     C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\concurrencysal.h
Note: including file:    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\vadefs.h
Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\tgmath.h
Note: including file:  C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\math.h
Note: including file:   C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_math.h
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\tgmath.h(33): warning UCRT4000: This header does not conform to the C99 standard. C99 functionality is available when compiling in C11 mode or higher (/std:c11). Functionality equivalent to the type-generic functions provided by tgmath.h is available in <ctgmath> when compiling as C++. If compiling in C++17 mode or higher (/std:c++17), this header will automatically include <ctgmath> instead. You can define _CRT_SILENCE_NONCONFORMING_TGMATH_H to acknowledge that you have received this warning.
Note: including file: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\inttypes.h
Note: including file:  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\stdint.h
-----------
Checking if "c99" compiles: YES 

meson.build:1479:17: ERROR: Can not run test applications in this cross environment.

^ permalink  raw  reply  [nested|flat] 5+ messages in thread

* Re: Trying to build x86 version on windows using meson
@ 2024-03-23 00:03  Andres Freund <[email protected]>
  parent: Dave Cramer <[email protected]>
  0 siblings, 0 replies; 5+ messages in thread

From: Andres Freund @ 2024-03-23 00:03 UTC (permalink / raw)
  To: Dave Cramer <[email protected]>; +Cc: Peter Eisentraut <[email protected]>; PostgreSQL Hackers <[email protected]>

Hi,

On 2024-03-21 13:17:44 -0400, Dave Cramer wrote:
> Attached correct log file

Hm. So there's something a bit odd:


> Build started at 2024-03-21T13:07:08.707715
> Main binary: C:\Program Files\Meson\meson.exe
> Build Options: '-Dextra_include_dirs=c:\Program Files\OpenSSL-Win64\include' -Derrorlogs=True '-Dextra_lib_dirs=c:\Program Files\OpenSSL-win64' '-Dprefix=c:\postgres86'
> Python system: Windows
> The Meson build system
> Version: 1.3.1
> Source dir: C:\Users\davec\projects\postgresql
> Build dir: C:\Users\davec\projects\postgresql\build
> Build type: native build

So meson thinks this is a native build, not a cross build. But then later
realizes that generated binaries and the current platform aren't the same. And
thus errors out.

The line numbers don't match my tree, but I think what's failing is the
sizeof() check. Which has support for cross builds, but it only uses that
(slower) path if it knows that a cross build is being used.


I suggest actually telling meson to cross compile. I don't quite know what
properties you're going to need, but something like the following (put it in a
file, point meson to it wity --cross-file) might give you a start:


[properties]
needs_exe_wrapper = false

[binaries]
c = 'cl'
cpp = 'cl'
ar = 'lib'
windres = 'rc'

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'

Greetings,

Andres Freund






^ permalink  raw  reply  [nested|flat] 5+ messages in thread


end of thread, other threads:[~2024-03-23 00:03 UTC | newest]

Thread overview: 5+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2021-01-05 04:34 [PATCH] Fix timeline-tracking failure while sending a historic timeline Kyotaro Horiguchi <[email protected]>
2024-03-21 11:11 Re: Trying to build x86 version on windows using meson Dave Cramer <[email protected]>
2024-03-21 16:51 ` Re: Trying to build x86 version on windows using meson Andres Freund <[email protected]>
2024-03-21 17:17   ` Re: Trying to build x86 version on windows using meson Dave Cramer <[email protected]>
2024-03-23 00:03     ` Re: Trying to build x86 version on windows using meson Andres Freund <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox