On 2019-12-17 07:30, Michael Paquier wrote:
The patch looks pretty clean.  I have a few minor comments.

-       if (/^AC_INIT\(\[PostgreSQL\], \[([^\]]+)\]/)
+       if (/^AC_INIT\(\[([^\]]+)\], \[([^\]]+)\], \[([^\]]+)\]/)
         {
Why did you remove the bit about "PostgreSQL"?

Just to make it more general. If we're going to parse the arguments, why not parse all of them the same way.

+       open(my $i, '<', "src/include/pg_config.h.in")
+         || confess "Could not open pg_config.h.in\n";
+       open(my $o, '>', "src/include/pg_config.h")
+         || confess "Could not write to pg_config.h\n";
Failure to open pg_config.h.

Wouldn't it be better to remove pg_config_ext.h.win32 as well?

Yeah, good idea. Attached patch is refactored so all three header files managed by AC_CONFIG_HEADERS are processed the same way.

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>From b60719bd445fd63f0c42db8823f7d6cda89a6732 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Thu, 7 Nov 2019 15:56:22 +0100
Subject: [PATCH v3 1/2] Generate pg_config.h from pg_config.h.in on Windows

---
 src/tools/msvc/Solution.pm | 544 +++++++++++++++++++++++++++++--------
 1 file changed, 435 insertions(+), 109 deletions(-)

diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index ac626dfa53..0a40557f9e 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -20,7 +20,6 @@ sub _new
                projects                   => {},
                options                    => $options,
                numver                     => '',
-               strver                     => '',
                VisualStudioVersion        => undef,
                MinimumVisualStudioVersion => undef,
                vcver                      => undef,
@@ -140,16 +139,22 @@ sub GenerateFiles
 {
        my $self = shift;
        my $bits = $self->{platform} eq 'Win32' ? 32 : 64;
+       my $package_name;
+       my $package_version;
+       my $package_bugreport;
 
        # Parse configure.in to get version numbers
        open(my $c, '<', "configure.in")
          || confess("Could not open configure.in for reading\n");
        while (<$c>)
        {
-               if (/^AC_INIT\(\[PostgreSQL\], \[([^\]]+)\]/)
+               if (/^AC_INIT\(\[([^\]]+)\], \[([^\]]+)\], \[([^\]]+)\]/)
                {
-                       $self->{strver} = $1;
-                       if ($self->{strver} !~ /^(\d+)(?:\.(\d+))?/)
+                       $package_name      = $1;
+                       $package_version   = $2;
+                       $package_bugreport = $3;
+
+                       if ($package_version !~ /^(\d+)(?:\.(\d+))?/)
                        {
                                confess "Bad format of version: 
$self->{strver}\n";
                        }
@@ -159,7 +164,10 @@ sub GenerateFiles
        }
        close($c);
        confess "Unable to parse configure.in for all variables!"
-         if ($self->{strver} eq '' || $self->{numver} eq '');
+         if ( $package_name eq ''
+               || $package_version eq ''
+               || $self->{numver} eq ''
+               || $package_bugreport eq '');
 
        if (IsNewer("src/include/pg_config_os.h", "src/include/port/win32.h"))
        {
@@ -167,100 +175,371 @@ sub GenerateFiles
                copyFile("src/include/port/win32.h", 
"src/include/pg_config_os.h");
        }
 
-       if (IsNewer("src/include/pg_config.h", "src/include/pg_config.h.win32"))
+       print "Generating configuration headers...\n";
+       my $extraver = $self->{options}->{extraver};
+       $extraver = '' unless defined $extraver;
+       my $port = $self->{options}->{"--with-pgport"} || 5432;
+
+       # Every symbol in pg_config.h.in must be accounted for here.  Set
+       # to undef if the symbol should not be defined.
+       my %define = (
+               ACCEPT_TYPE_ARG1         => 'unsigned int',
+               ACCEPT_TYPE_ARG2         => 'struct sockaddr *',
+               ACCEPT_TYPE_ARG3         => 'int',
+               ACCEPT_TYPE_RETURN       => 'unsigned int PASCAL',
+               ALIGNOF_DOUBLE           => 8,
+               ALIGNOF_INT              => 4,
+               ALIGNOF_LONG             => 4,
+               ALIGNOF_LONG_LONG_INT    => 8,
+               ALIGNOF_PG_INT128_TYPE   => undef,
+               ALIGNOF_SHORT            => 2,
+               AC_APPLE_UNIVERSAL_BUILD => undef,
+               BLCKSZ                   => 1024 * 
$self->{options}->{blocksize},
+               DEF_PGPORT               => $port,
+               DEF_PGPORT_STR           => qq{"$port"},
+               ENABLE_GSS               => $self->{options}->{gss} ? 1 : undef,
+               ENABLE_NLS               => $self->{options}->{nls} ? 1 : undef,
+               ENABLE_THREAD_SAFETY     => 1,
+               FLEXIBLE_ARRAY_MEMBER    => '/**/',
+               GETTIMEOFDAY_1ARG        => undef,
+               HAVE_APPEND_HISTORY      => undef,
+               HAVE_ASN1_STRING_GET0_DATA                  => undef,
+               HAVE_ATOMICS                                => 1,
+               HAVE_ATOMIC_H                               => undef,
+               HAVE_BACKTRACE_SYMBOLS                      => undef,
+               HAVE_BIO_GET_DATA                           => undef,
+               HAVE_BIO_METH_NEW                           => undef,
+               HAVE_CBRT                                   => undef,
+               HAVE_CLASS                                  => undef,
+               HAVE_CLOCK_GETTIME                          => undef,
+               HAVE_COMPUTED_GOTO                          => undef,
+               HAVE_COPYFILE                               => undef,
+               HAVE_COPYFILE_H                             => undef,
+               HAVE_CRTDEFS_H                              => undef,
+               HAVE_CRYPTO_LOCK                            => undef,
+               HAVE_DECL_FDATASYNC                         => 0,
+               HAVE_DECL_F_FULLFSYNC                       => 0,
+               HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER => undef,
+               HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER    => undef,
+               HAVE_DECL_LLVMGETHOSTCPUNAME                => 0,
+               HAVE_DECL_LLVMGETHOSTCPUFEATURES            => 0,
+               HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN         => 0,
+               HAVE_DECL_POSIX_FADVISE                     => undef,
+               HAVE_DECL_RTLD_GLOBAL                       => 0,
+               HAVE_DECL_RTLD_NOW                          => 0,
+               HAVE_DECL_STRLCAT                           => undef,
+               HAVE_DECL_STRLCPY                           => undef,
+               HAVE_DECL_STRNLEN                           => 1,
+               HAVE_DECL_STRTOLL                           => 1,
+               HAVE_DECL_STRTOULL                          => 1,
+               HAVE_DLOPEN                                 => undef,
+               HAVE_EDITLINE_HISTORY_H                     => undef,
+               HAVE_EDITLINE_READLINE_H                    => undef,
+               HAVE_EXECINFO_H                             => undef,
+               HAVE_EXPLICIT_BZERO                         => undef,
+               HAVE_FDATASYNC                              => undef,
+               HAVE_FLS                                    => undef,
+               HAVE_FPCLASS                                => undef,
+               HAVE_FP_CLASS                               => undef,
+               HAVE_FP_CLASS_D                             => undef,
+               HAVE_FP_CLASS_H                             => undef,
+               HAVE_FSEEKO                                 => 1,
+               HAVE_FUNCNAME__FUNC                         => undef,
+               HAVE_FUNCNAME__FUNCTION                     => 1,
+               HAVE_GCC__ATOMIC_INT32_CAS                  => undef,
+               HAVE_GCC__ATOMIC_INT64_CAS                  => undef,
+               HAVE_GCC__SYNC_CHAR_TAS                     => undef,
+               HAVE_GCC__SYNC_INT32_CAS                    => undef,
+               HAVE_GCC__SYNC_INT32_TAS                    => undef,
+               HAVE_GCC__SYNC_INT64_CAS                    => undef,
+               HAVE_GETADDRINFO                            => undef,
+               HAVE_GETHOSTBYNAME_R                        => undef,
+               HAVE_GETIFADDRS                             => undef,
+               HAVE_GETOPT                                 => undef,
+               HAVE_GETOPT_H                               => undef,
+               HAVE_GETOPT_LONG                            => undef,
+               HAVE_GETPEEREID                             => undef,
+               HAVE_GETPEERUCRED                           => undef,
+               HAVE_GETPWUID_R                             => undef,
+               HAVE_GETRLIMIT                              => undef,
+               HAVE_GETRUSAGE                              => undef,
+               HAVE_GETTIMEOFDAY                           => undef,
+               HAVE_GSSAPI_GSSAPI_H                        => undef,
+               HAVE_GSSAPI_H                               => undef,
+               HAVE_HISTORY_H                              => undef,
+               HAVE_HISTORY_TRUNCATE_FILE                  => undef,
+               HAVE_IEEEFP_H                               => undef,
+               HAVE_IFADDRS_H                              => undef,
+               HAVE_INET_ATON                              => undef,
+               HAVE_INT_TIMEZONE                           => 1,
+               HAVE_INT64                                  => undef,
+               HAVE_INT8                                   => undef,
+               HAVE_INTPTR_T                               => undef,
+               HAVE_INTTYPES_H                             => undef,
+               HAVE_INT_OPTERR                             => undef,
+               HAVE_INT_OPTRESET                           => undef,
+               HAVE_IPV6                                   => 1,
+               HAVE_ISINF                                  => 1,
+               HAVE_I_CONSTRAINT__BUILTIN_CONSTANT_P       => undef,
+               HAVE_LANGINFO_H                             => undef,
+               HAVE_LDAP_H                                 => undef,
+               HAVE_LDAP_INITIALIZE                        => undef,
+               HAVE_LIBCRYPTO                              => undef,
+               HAVE_LIBLDAP                                => undef,
+               HAVE_LIBLDAP_R                              => undef,
+               HAVE_LIBM                                   => undef,
+               HAVE_LIBPAM                                 => undef,
+               HAVE_LIBREADLINE                            => undef,
+               HAVE_LIBSELINUX                             => undef,
+               HAVE_LIBSSL                                 => undef,
+               HAVE_LIBWLDAP32                             => undef,
+               HAVE_LIBXML2                                => undef,
+               HAVE_LIBXSLT                                => undef,
+               HAVE_LIBZ                 => $self->{options}->{zlib} ? 1 : 
undef,
+               HAVE_LOCALE_T             => 1,
+               HAVE_LONG_INT_64          => undef,
+               HAVE_LONG_LONG_INT_64     => 1,
+               HAVE_MBARRIER_H           => undef,
+               HAVE_MBSTOWCS_L           => 1,
+               HAVE_MEMMOVE              => 1,
+               HAVE_MEMORY_H             => 1,
+               HAVE_MEMSET_S             => undef,
+               HAVE_MINIDUMP_TYPE        => 1,
+               HAVE_MKDTEMP              => undef,
+               HAVE_NETINET_TCP_H        => undef,
+               HAVE_NET_IF_H             => undef,
+               HAVE_OPENSSL_INIT_SSL     => undef,
+               HAVE_OSSP_UUID_H          => undef,
+               HAVE_PAM_PAM_APPL_H       => undef,
+               HAVE_POLL                 => undef,
+               HAVE_POLL_H               => undef,
+               HAVE_POSIX_FADVISE        => undef,
+               HAVE_POSIX_FALLOCATE      => undef,
+               HAVE_PPC_LWARX_MUTEX_HINT => undef,
+               HAVE_PPOLL                => undef,
+               HAVE_PREAD                => undef,
+               HAVE_PSTAT                => undef,
+               HAVE_PS_STRINGS           => undef,
+               HAVE_PTHREAD              => undef,
+               HAVE_PTHREAD_IS_THREADED_NP              => undef,
+               HAVE_PTHREAD_PRIO_INHERIT                => undef,
+               HAVE_PWRITE                              => undef,
+               HAVE_RANDOM                              => undef,
+               HAVE_READLINE_H                          => undef,
+               HAVE_READLINE_HISTORY_H                  => undef,
+               HAVE_READLINE_READLINE_H                 => undef,
+               HAVE_READLINK                            => undef,
+               HAVE_RINT                                => 1,
+               HAVE_RL_COMPLETION_APPEND_CHARACTER      => undef,
+               HAVE_RL_COMPLETION_MATCHES               => undef,
+               HAVE_RL_FILENAME_COMPLETION_FUNCTION     => undef,
+               HAVE_RL_RESET_SCREEN_SIZE                => undef,
+               HAVE_SECURITY_PAM_APPL_H                 => undef,
+               HAVE_SETPROCTITLE                        => undef,
+               HAVE_SETPROCTITLE_FAST                   => undef,
+               HAVE_SETSID                              => undef,
+               HAVE_SHM_OPEN                            => undef,
+               HAVE_SPINLOCKS                           => 1,
+               HAVE_SRANDOM                             => undef,
+               HAVE_STDBOOL_H                           => 1,
+               HAVE_STDINT_H                            => undef,
+               HAVE_STDLIB_H                            => 1,
+               HAVE_STRCHRNUL                           => undef,
+               HAVE_STRERROR_R                          => undef,
+               HAVE_STRINGS_H                           => undef,
+               HAVE_STRING_H                            => 1,
+               HAVE_STRLCAT                             => undef,
+               HAVE_STRLCPY                             => undef,
+               HAVE_STRNLEN                             => 1,
+               HAVE_STRSIGNAL                           => undef,
+               HAVE_STRTOF                              => 1,
+               HAVE_STRTOLL                             => 1,
+               HAVE_STRTOQ                              => undef,
+               HAVE_STRTOULL                            => 1,
+               HAVE_STRTOUQ                             => undef,
+               HAVE_STRUCT_ADDRINFO                     => 1,
+               HAVE_STRUCT_CMSGCRED                     => undef,
+               HAVE_STRUCT_OPTION                       => undef,
+               HAVE_STRUCT_SOCKADDR_SA_LEN              => undef,
+               HAVE_STRUCT_SOCKADDR_STORAGE             => 1,
+               HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY   => 1,
+               HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN      => undef,
+               HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY => undef,
+               HAVE_STRUCT_SOCKADDR_STORAGE___SS_LEN    => undef,
+               HAVE_STRUCT_TM_TM_ZONE                   => undef,
+               HAVE_SYNC_FILE_RANGE                     => undef,
+               HAVE_SYMLINK                             => 1,
+               HAVE_SYSLOG                              => undef,
+               HAVE_SYS_EPOLL_H                         => undef,
+               HAVE_SYS_IPC_H                           => undef,
+               HAVE_SYS_PRCTL_H                         => undef,
+               HAVE_SYS_PROCCTL_H                       => undef,
+               HAVE_SYS_PSTAT_H                         => undef,
+               HAVE_SYS_RESOURCE_H                      => undef,
+               HAVE_SYS_SELECT_H                        => undef,
+               HAVE_SYS_SEM_H                           => undef,
+               HAVE_SYS_SHM_H                           => undef,
+               HAVE_SYS_SOCKIO_H                        => undef,
+               HAVE_SYS_STAT_H                          => 1,
+               HAVE_SYS_TAS_H                           => undef,
+               HAVE_SYS_TYPES_H                         => 1,
+               HAVE_SYS_UCRED_H                         => undef,
+               HAVE_SYS_UN_H                            => undef,
+               HAVE_TERMIOS_H                           => undef,
+               HAVE_TYPEOF                              => undef,
+               HAVE_UCRED_H                             => undef,
+               HAVE_UINT64                              => undef,
+               HAVE_UINT8                               => undef,
+               HAVE_UINTPTR_T                           => undef,
+               HAVE_UNION_SEMUN                         => undef,
+               HAVE_UNISTD_H                            => 1,
+               HAVE_UNIX_SOCKETS                        => undef,
+               HAVE_UNSETENV                            => undef,
+               HAVE_USELOCALE                           => undef,
+               HAVE_UTIME                               => 1,
+               HAVE_UTIMES                              => undef,
+               HAVE_UTIME_H                             => 1,
+               HAVE_UUID_BSD                            => undef,
+               HAVE_UUID_E2FS                           => undef,
+               HAVE_UUID_OSSP                           => undef,
+               HAVE_UUID_H                              => undef,
+               HAVE_UUID_UUID_H                         => undef,
+               HAVE_WINLDAP_H                           => undef,
+               HAVE_WCHAR_H                             => 1,
+               HAVE_WCSTOMBS_L                          => 1,
+               HAVE_WCTYPE_H                            => 1,
+               HAVE_X509_GET_SIGNATURE_NID              => 1,
+               HAVE_X86_64_POPCNTQ                      => undef,
+               HAVE__BOOL                               => undef,
+               HAVE__BUILTIN_BSWAP16                    => undef,
+               HAVE__BUILTIN_BSWAP32                    => undef,
+               HAVE__BUILTIN_BSWAP64                    => undef,
+               HAVE__BUILTIN_CLZ                        => undef,
+               HAVE__BUILTIN_CONSTANT_P                 => undef,
+               HAVE__BUILTIN_CTZ                        => undef,
+               HAVE__BUILTIN_OP_OVERFLOW                => undef,
+               HAVE__BUILTIN_POPCOUNT                   => undef,
+               HAVE__BUILTIN_TYPES_COMPATIBLE_P         => undef,
+               HAVE__BUILTIN_UNREACHABLE                => undef,
+               HAVE__CONFIGTHREADLOCALE                 => 1,
+               HAVE__CPUID                              => 1,
+               HAVE__GET_CPUID                          => undef,
+               HAVE__STATIC_ASSERT                      => undef,
+               HAVE___STRTOLL                           => undef,
+               HAVE___STRTOULL                          => undef,
+               INT64_MODIFIER                           => qq{"ll"},
+               LOCALE_T_IN_XLOCALE                      => undef,
+               MAXIMUM_ALIGNOF                          => 8,
+               MEMSET_LOOP_LIMIT                        => 1024,
+               PACKAGE_BUGREPORT   => qq{"$package_bugreport"},
+               PACKAGE_NAME        => qq{"$package_name"},
+               PACKAGE_STRING      => qq{"$package_name $package_version"},
+               PACKAGE_TARNAME     => lc qq{"$package_name"},
+               PACKAGE_URL         => undef,
+               PACKAGE_VERSION     => qq{"$package_version"},
+               PG_INT128_TYPE      => undef,
+               PG_INT64_TYPE       => 'long long int',
+               PG_KRB_SRVNAM       => qq{"postgres"},
+               PG_MAJORVERSION     => qq{"$self->{majorver}"},
+               PG_PRINTF_ATTRIBUTE => undef,
+               PG_USE_STDBOOL      => 1,
+               PG_VERSION          => qq{"$package_version$extraver"},
+               PG_VERSION_NUM      => $self->{numver},
+               PG_VERSION_STR =>
+                 qq{"PostgreSQL $package_version$extraver, compiled by Visual 
C++ build " CppAsString2(_MSC_VER) ", $bits-bit"},
+               PROFILE_PID_DIR         => undef,
+               PTHREAD_CREATE_JOINABLE => undef,
+               RELSEG_SIZE             => (1024 / 
$self->{options}->{blocksize}) *
+                         $self->{options}->{segsize} * 1024,
+               SIZEOF_BOOL                         => 1,
+               SIZEOF_LONG                         => 4,
+               SIZEOF_OFF_T                        => undef,
+               SIZEOF_SIZE_T                       => $bits / 8,
+               SIZEOF_VOID_P                       => $bits / 8,
+               STDC_HEADERS                        => 1,
+               STRERROR_R_INT                      => undef,
+               USE_ARMV8_CRC32C                    => undef,
+               USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK => undef,
+               USE_ASSERT_CHECKING => $self->{options}->{asserts} ? 1 : undef,
+               USE_BONJOUR         => undef,
+               USE_BSD_AUTH        => undef,
+               USE_DEV_URANDOM     => undef,
+               USE_ICU             => $self->{options}->{icu} ? 1 : undef,
+               USE_LIBXML          => undef,
+               USE_LIBXSLT         => undef,
+               USE_LDAP => $self->{options}->{ldap} ? 1 : undef,
+               USE_LLVM => undef,
+               USE_NAMED_POSIX_SEMAPHORES          => undef,
+               USE_OPENSSL                         => undef,
+               USE_OPENSSL_RANDOM                  => undef,
+               USE_PAM                             => undef,
+               USE_SLICING_BY_8_CRC32C             => undef,
+               USE_SSE42_CRC32C                    => undef,
+               USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1,
+               USE_SYSTEMD                         => undef,
+               USE_SYSV_SEMAPHORES                 => undef,
+               USE_SYSV_SHARED_MEMORY              => undef,
+               USE_UNNAMED_POSIX_SEMAPHORES        => undef,
+               USE_WIN32_RANDOM                    => 1,
+               USE_WIN32_SEMAPHORES                => 1,
+               USE_WIN32_SHARED_MEMORY             => 1,
+               WCSTOMBS_L_IN_XLOCALE               => undef,
+               WORDS_BIGENDIAN                     => undef,
+               XLOG_BLCKSZ       => 1024 * $self->{options}->{wal_blocksize},
+               _FILE_OFFSET_BITS => undef,
+               _LARGEFILE_SOURCE => undef,
+               _LARGE_FILES      => undef,
+               inline            => '__inline',
+               intptr_t          => undef,
+               pg_restrict       => '__restrict',
+               # not defined, because it'd conflict with __declspec(restrict)
+               restrict          => undef,
+               signed            => undef,
+               typeof            => undef,
+               uintptr_t         => undef,);
+
+       if ($self->{options}->{uuid})
        {
-               print "Generating pg_config.h...\n";
-               open(my $i, '<', "src/include/pg_config.h.win32")
-                 || confess "Could not open pg_config.h.win32\n";
-               open(my $o, '>', "src/include/pg_config.h")
-                 || confess "Could not write to pg_config.h\n";
-               my $extraver = $self->{options}->{extraver};
-               $extraver = '' unless defined $extraver;
-               while (<$i>)
-               {
-                       s{PG_VERSION "[^"]+"}{PG_VERSION 
"$self->{strver}$extraver"};
-                       s{PG_VERSION_NUM \d+}{PG_VERSION_NUM $self->{numver}};
-                       s{PG_VERSION_STR "[^"]+"}{PG_VERSION_STR "PostgreSQL 
$self->{strver}$extraver, compiled by Visual C++ build " CppAsString2(_MSC_VER) 
", $bits-bit"};
-                       print $o $_;
-               }
-               print $o "#define PG_MAJORVERSION \"$self->{majorver}\"\n";
-               print $o "/* defines added by config steps */\n";
-               print $o "#ifndef IGNORE_CONFIGURED_SETTINGS\n";
-               print $o "#define USE_ASSERT_CHECKING 1\n"
-                 if ($self->{options}->{asserts});
-               print $o "#define USE_LDAP 1\n"   if ($self->{options}->{ldap});
-               print $o "#define HAVE_LIBZ 1\n"  if ($self->{options}->{zlib});
-               print $o "#define ENABLE_NLS 1\n" if ($self->{options}->{nls});
-
-               print $o "#define BLCKSZ ", 1024 * 
$self->{options}->{blocksize},
-                 "\n";
-               print $o "#define RELSEG_SIZE ",
-                 (1024 / $self->{options}->{blocksize}) *
-                 $self->{options}->{segsize} * 1024, "\n";
-               print $o "#define XLOG_BLCKSZ ",
-                 1024 * $self->{options}->{wal_blocksize}, "\n";
-
-               if ($self->{options}->{uuid})
-               {
-                       print $o "#define HAVE_UUID_OSSP\n";
-                       print $o "#define HAVE_UUID_H\n";
-               }
-               if ($self->{options}->{xml})
-               {
-                       print $o "#define HAVE_LIBXML2\n";
-                       print $o "#define USE_LIBXML\n";
-               }
-               if ($self->{options}->{xslt})
-               {
-                       print $o "#define HAVE_LIBXSLT\n";
-                       print $o "#define USE_LIBXSLT\n";
-               }
-               if ($self->{options}->{gss})
-               {
-                       print $o "#define ENABLE_GSS 1\n";
-               }
-               if ($self->{options}->{openssl})
-               {
-                       print $o "#define USE_OPENSSL 1\n";
+               $define{HAVE_UUID_OSSP} = 1;
+               $define{HAVE_UUID_H}    = 1;
+       }
+       if ($self->{options}->{xml})
+       {
+               $define{HAVE_LIBXML2} = 1;
+               $define{USE_LIBXML}   = 1;
+       }
+       if ($self->{options}->{xslt})
+       {
+               $define{HAVE_LIBXSLT} = 1;
+               $define{USE_LIBXSLT}  = 1;
+       }
+       if ($self->{options}->{openssl})
+       {
+               $define{USE_OPENSSL} = 1;
 
-                       my ($digit1, $digit2, $digit3) = 
$self->GetOpenSSLVersion();
+               my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion();
 
-                       # More symbols are needed with OpenSSL 1.1.0 and above.
-                       if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')
-                       {
-                               print $o "#define HAVE_ASN1_STRING_GET0_DATA 
1\n";
-                               print $o "#define HAVE_BIO_GET_DATA 1\n";
-                               print $o "#define HAVE_BIO_METH_NEW 1\n";
-                               print $o "#define HAVE_OPENSSL_INIT_SSL 1\n";
-                       }
-               }
-               if ($self->{options}->{icu})
-               {
-                       print $o "#define USE_ICU 1\n";
-               }
-               if (my $port = $self->{options}->{"--with-pgport"})
+               # More symbols are needed with OpenSSL 1.1.0 and above.
+               if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')
                {
-                       print $o "#undef DEF_PGPORT\n";
-                       print $o "#undef DEF_PGPORT_STR\n";
-                       print $o "#define DEF_PGPORT $port\n";
-                       print $o "#define DEF_PGPORT_STR \"$port\"\n";
+                       $define{HAVE_ASN1_STRING_GET0_DATA} = 1;
+                       $define{HAVE_BIO_GET_DATA}          = 1;
+                       $define{HAVE_BIO_METH_NEW}          = 1;
+                       $define{HAVE_OPENSSL_INIT_SSL}      = 1;
                }
-               print $o "#define VAL_CONFIGURE \""
-                 . $self->GetFakeConfigure() . "\"\n";
-               print $o "#endif /* IGNORE_CONFIGURED_SETTINGS */\n";
-               close($o);
-               close($i);
        }
 
-       if (IsNewer(
-                       "src/include/pg_config_ext.h",
-                       "src/include/pg_config_ext.h.win32"))
-       {
-               print "Copying pg_config_ext.h...\n";
-               copyFile(
-                       "src/include/pg_config_ext.h.win32",
-                       "src/include/pg_config_ext.h");
-       }
+       $self->GenerateConfigHeader('src/include/pg_config.h', \%define, 1);
+       $self->GenerateConfigHeader('src/include/pg_config_ext.h', \%define, 0);
+       
$self->GenerateConfigHeader('src/interfaces/ecpg/include/ecpg_config.h', 
\%define, 0);
+
+       # XXX
+       open(my $f, '>>', 'src/include/pg_config.h')
+         || confess "Could not write to src/include/pg_config.h\n";
+       print $f "\n";
+       print $f "#define VAL_CONFIGURE \""
+         . $self->GetFakeConfigure() . "\"\n";
+       close($f);
 
        $self->GenerateDefFile(
                "src/interfaces/libpq/libpqdll.def",
@@ -475,22 +754,6 @@ sub GenerateFiles
                chdir('../../../..');
        }
 
-       if (IsNewer(
-                       'src/interfaces/ecpg/include/ecpg_config.h',
-                       'src/interfaces/ecpg/include/ecpg_config.h.in'))
-       {
-               print "Generating ecpg_config.h...\n";
-               open(my $o, '>', 'src/interfaces/ecpg/include/ecpg_config.h')
-                 || confess "Could not open ecpg_config.h";
-               print $o <<EOF;
-#define HAVE_LONG_LONG_INT 1
-#define HAVE_LONG_LONG_INT_64 1
-#define PG_USE_STDBOOL 1
-#define ENABLE_THREAD_SAFETY 1
-EOF
-               close($o);
-       }
-
        unless (-f "src/port/pg_config_paths.h")
        {
                print "Generating pg_config_paths.h...\n";
@@ -581,13 +844,76 @@ EOF
        open(my $o, '>', "doc/src/sgml/version.sgml")
          || croak "Could not write to version.sgml\n";
        print $o <<EOF;
-<!ENTITY version "$self->{strver}">
+<!ENTITY version "$package_version">
 <!ENTITY majorversion "$self->{majorver}">
 EOF
        close($o);
        return;
 }
 
+# Read lines from input file and substitute symbols using the same
+# logic that config.status uses.  There should be one call of this for
+# each AC_CONFIG_HEADERS call in configure.in.
+#
+# If the "required" argument is true, we also keep track which of our
+# defines have been found and error out if any are left unused at the
+# end.  That way we avoid accumulating defines in this file that are
+# no longer used by configure.
+sub GenerateConfigHeader
+{
+       my ($self, $config_header, $defines, $required) = @_;
+       my %defines_copy = %$defines;
+
+       my $config_header_in = $config_header . '.in';
+
+       if (IsNewer($config_header, $config_header_in) ||
+               IsNewer($config_header, __FILE__))
+       {
+               open(my $i, '<', $config_header_in)
+                 || confess "Could not open $config_header_in\n";
+               open(my $o, '>', $config_header)
+                 || confess "Could not write to $config_header\n";
+
+               print $o
+                 "/* $config_header.  Generated from $config_header_in by 
src/tools/msvc/Solution.pm.  */\n";
+
+               while (<$i>)
+               {
+                       if (m/^#(\s*)undef\s+(\w+)/)
+                       {
+                               my $ws    = $1;
+                               my $macro = $2;
+                               if (exists $defines->{$macro})
+                               {
+                                       if (defined $defines->{$macro})
+                                       {
+                                               print $o "#${ws}define $macro 
", $defines->{$macro}, "\n";
+                                       }
+                                       else
+                                       {
+                                               print $o "/* #${ws}undef $macro 
*/\n";
+                                       }
+                                       delete $defines_copy{$macro};
+                               }
+                               else
+                               {
+                                       croak "undefined symbol: $macro at 
$config_header line $.";
+                               }
+                       }
+                       else
+                       {
+                               print $o $_;
+                       }
+               }
+               close($o);
+               close($i);
+       }
+       if ($required && scalar(keys %defines_copy) > 0)
+       {
+               croak "unused defines: " . join(' ', keys %defines_copy);
+       }
+}
+
 sub GenerateDefFile
 {
        my ($self, $deffile, $txtfile, $libname) = @_;
-- 
2.24.1

>From 5472bdde3fbda526e3d9ecbadb6627a29066031a Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Thu, 7 Nov 2019 15:59:59 +0100
Subject: [PATCH v3 2/2] Remove pg_config.h.win32

---
 src/include/pg_config.h.win32     | 736 ------------------------------
 src/include/pg_config_ext.h.win32 |   7 -
 src/tools/version_stamp.pl        |   7 -
 3 files changed, 750 deletions(-)
 delete mode 100644 src/include/pg_config.h.win32
 delete mode 100644 src/include/pg_config_ext.h.win32

diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
deleted file mode 100644
index 808f5abcdb..0000000000
--- a/src/include/pg_config.h.win32
+++ /dev/null
@@ -1,736 +0,0 @@
-/* src/include/pg_config.h.  Generated by configure.  */
-/* src/include/pg_config.h.in.  Generated from configure.in by autoheader.  */
-
-/* This file is generated from MingW ./configure, and with the following
- * changes to be valid for Visual C++ (and compatible):
- *
- * HAVE_CBRT, HAVE_FUNCNAME_FUNC, HAVE_GETOPT, HAVE_GETOPT_H, HAVE_INTTYPES_H,
- * HAVE_GETOPT_LONG, HAVE_LOCALE_T, HAVE_RINT, HAVE_STRINGS_H, HAVE_STRTOLL,
- * HAVE_STRTOULL, HAVE_STRUCT_OPTION, ENABLE_THREAD_SAFETY,
- * inline, USE_SSE42_CRC32C_WITH_RUNTIME_CHECK
- */
-
-/* Define to the type of arg 1 of 'accept' */
-#define ACCEPT_TYPE_ARG1 unsigned int
-
-/* Define to the type of arg 2 of 'accept' */
-#define ACCEPT_TYPE_ARG2 struct sockaddr *
-
-/* Define to the type of arg 3 of 'accept' */
-#define ACCEPT_TYPE_ARG3 int
-
-/* Define to the return type of 'accept' */
-#define ACCEPT_TYPE_RETURN unsigned int PASCAL
-
-/* The normal alignment of `double', in bytes. */
-#define ALIGNOF_DOUBLE 8
-
-/* The normal alignment of `int', in bytes. */
-#define ALIGNOF_INT 4
-
-/* The normal alignment of `long', in bytes. */
-#define ALIGNOF_LONG 4
-
-/* The normal alignment of `long long int', in bytes. */
-#define ALIGNOF_LONG_LONG_INT 8
-
-/* The normal alignment of `PG_INT128_TYPE', in bytes. */
-#undef ALIGNOF_PG_INT128_TYPE
-
-/* The normal alignment of `short', in bytes. */
-#define ALIGNOF_SHORT 2
-
-/* Define to the default TCP port number on which the server listens and to
-   which clients will try to connect. This can be overridden at run-time, but
-   it's convenient if your clients have the right default compiled in.
-   (--with-pgport=PORTNUM) */
-#define DEF_PGPORT 5432
-
-/* Define to the default TCP port number as a string constant. */
-#define DEF_PGPORT_STR "5432"
-
-/* Define to 1 if you want National Language Support. (--enable-nls) */
-/* #undef ENABLE_NLS */
-
-/* Define to 1 to build client libraries as thread-safe code.
-   (--enable-thread-safety) */
-#define ENABLE_THREAD_SAFETY 1
-
-/* Define to nothing if C supports flexible array members, and to 1 if it does
-   not. That way, with a declaration like `struct s { int n; double
-   d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99
-   compilers. When computing the size of such an object, don't use 'sizeof
-   (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)'
-   instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with
-   MSVC and with C++ compilers. */
-#define FLEXIBLE_ARRAY_MEMBER
-
-/* Define to 1 if gettimeofday() takes only 1 argument. */
-/* #undef GETTIMEOFDAY_1ARG */
-
-#ifdef GETTIMEOFDAY_1ARG
-# define gettimeofday(a,b) gettimeofday(a)
-#endif
-
-/* Define to 1 if you have the `ASN1_STRING_get0_data' function. */
-/* #undef HAVE_ASN1_STRING_GET0_DATA */
-
-/* Define to 1 if you want to use atomics if available. */
-#define HAVE_ATOMICS 1
-
-/* Define to 1 if you have the `BIO_get_data' function. */
-/* #undef HAVE_BIO_GET_DATA */
-
-/* Define to 1 if you have the `BIO_meth_new' function. */
-/* #undef HAVE_BIO_METH_NEW */
-
-/* Define to 1 if you have the `cbrt' function. */
-//#define HAVE_CBRT 1
-
-/* Define to 1 if you have the `class' function. */
-/* #undef HAVE_CLASS */
-
-/* Define to 1 if you have the `clock_gettime' function. */
-/* #undef HAVE_CLOCK_GETTIME */
-
-/* Define to 1 if your compiler handles computed gotos. */
-/* #undef HAVE_COMPUTED_GOTO */
-
-/* Define to 1 if you have the declaration of `fdatasync', and to 0 if you
-   don't. */
-#define HAVE_DECL_FDATASYNC 0
-
-/* Define to 1 if you have the declaration of `F_FULLFSYNC', and to 0 if you
-   don't. */
-#define HAVE_DECL_F_FULLFSYNC 0
-
-/* Define to 1 if you have the declaration of
-   `LLVMCreateGDBRegistrationListener', and to 0 if you don't. */
-#undef HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER
-
-/* Define to 1 if you have the declaration of
-   `LLVMCreatePerfJITEventListener', and to 0 if you don't. */
-#undef HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER
-
-/* Define to 1 if you have the declaration of `LLVMGetHostCPUFeatures', and to
-   0 if you don't. */
-#define HAVE_DECL_LLVMGETHOSTCPUFEATURES 0
-
-/* Define to 1 if you have the declaration of `LLVMGetHostCPUName', and to 0
-   if you don't. */
-#define HAVE_DECL_LLVMGETHOSTCPUNAME 0
-
-/* Define to 1 if you have the declaration of `LLVMOrcGetSymbolAddressIn', and
-   to 0 if you don't. */
-#define HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN 0
-
-/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you
-   don't. */
-#define HAVE_DECL_RTLD_GLOBAL 0
-
-/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you
-   don't. */
-#define HAVE_DECL_RTLD_NOW 0
-
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRNLEN 1
-
-/* Define to 1 if you have the declaration of `strtoll', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRTOLL 1
-
-/* Define to 1 if you have the declaration of `strtoull', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRTOULL 1
-
-/* Define to 1 if you have the `dlopen' function. */
-/* #undef HAVE_DLOPEN */
-
-/* Define to 1 if you have the <editline/history.h> header file. */
-/* #undef HAVE_EDITLINE_HISTORY_H */
-
-/* Define to 1 if you have the <editline/readline.h> header file. */
-/* #undef HAVE_EDITLINE_READLINE_H */
-
-/* Define to 1 if you have the `explicit_bzero' function. */
-/* #undef HAVE_EXPLICIT_BZERO */
-
-/* Define to 1 if you have the `fdatasync' function. */
-/* #undef HAVE_FDATASYNC */
-
-/* Define to 1 if you have the `fpclass' function. */
-/* #undef HAVE_FPCLASS */
-
-/* Define to 1 if you have the `fp_class' function. */
-/* #undef HAVE_FP_CLASS */
-
-/* Define to 1 if you have the `fp_class_d' function. */
-/* #undef HAVE_FP_CLASS_D */
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-/* #undef HAVE_FP_CLASS_H */
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#define HAVE_FSEEKO 1
-
-/* Define to 1 if your compiler understands __func__. */
-//#define HAVE_FUNCNAME__FUNC 1
-
-/* Define to 1 if your compiler understands __FUNCTION__. */
-#define HAVE_FUNCNAME__FUNCTION 1
-
-/* Define to 1 if you have the `getaddrinfo' function. */
-/* #undef HAVE_GETADDRINFO */
-
-/* Define to 1 if you have the `gethostbyname_r' function. */
-/* #undef HAVE_GETHOSTBYNAME_R */
-
-/* Define to 1 if you have the `getopt' function. */
-//#define HAVE_GETOPT 1
-
-/* Define to 1 if you have the <getopt.h> header file. */
-//#define HAVE_GETOPT_H 1
-
-/* Define to 1 if you have the `getopt_long' function. */
-//#define HAVE_GETOPT_LONG 1
-
-/* Define to 1 if you have the `getpeereid' function. */
-/* #undef HAVE_GETPEEREID */
-
-/* Define to 1 if you have the `getpwuid_r' function. */
-/* #undef HAVE_GETPWUID_R */
-
-/* Define to 1 if you have the `getrusage' function. */
-/* #undef HAVE_GETRUSAGE */
-
-/* Define to 1 if you have the <history.h> header file. */
-/* #undef HAVE_HISTORY_H */
-
-/* Define to 1 if you have the <ieeefp.h> header file. */
-/* #undef HAVE_IEEEFP_H */
-
-/* Define to 1 if you have the `inet_aton' function. */
-/* #undef HAVE_INET_ATON */
-
-/* Define to 1 if the system has the type `int64'. */
-/* #undef HAVE_INT64 */
-
-/* Define to 1 if the system has the type `int8'. */
-/* #undef HAVE_INT8 */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-//#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the global variable 'int timezone'. */
-#define HAVE_INT_TIMEZONE 1
-
-/* Define to 1 if you have support for IPv6. */
-#define HAVE_IPV6 1
-
-/* Define to 1 if you have isinf(). */
-#define HAVE_ISINF 1
-
-/* Define to 1 if you have the <langinfo.h> header file. */
-/* #undef HAVE_LANGINFO_H */
-
-/* Define to 1 if you have the <ldap.h> header file. */
-/* #undef HAVE_LDAP_H */
-
-/* Define to 1 if you have the `ldap_initialize' function. */
-/* #undef HAVE_LDAP_INITIALIZE */
-
-/* Define to 1 if you have the `crypto' library (-lcrypto). */
-/* #undef HAVE_LIBCRYPTO */
-
-/* Define to 1 if you have the `ldap' library (-lldap). */
-/* #undef HAVE_LIBLDAP */
-
-/* Define to 1 if you have the `pam' library (-lpam). */
-/* #undef HAVE_LIBPAM */
-
-/* Define if you have a function readline library */
-/* #undef HAVE_LIBREADLINE */
-
-/* Define to 1 if you have the `ssl' library (-lssl). */
-/* #undef HAVE_LIBSSL */
-
-/* Define to 1 if you have the `wldap32' library (-lwldap32). */
-/* #undef HAVE_LIBWLDAP32 */
-
-/* Define to 1 if you have the `z' library (-lz). */
-/* #undef HAVE_LIBZ */
-
-/* Define to 1 if the system has the type `locale_t'. */
-#define HAVE_LOCALE_T 1
-
-/* Define to 1 if `long int' works and is 64 bits. */
-/* #undef HAVE_LONG_INT_64 */
-
-/* Define to 1 if `long long int' works and is 64 bits. */
-#define HAVE_LONG_LONG_INT_64 1
-
-/* Define to 1 if you have the `mbstowcs_l' function. */
-#define HAVE_MBSTOWCS_L 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memset_s' function. */
-/* #undef HAVE_MEMSET_S */
-
-/* Define to 1 if the system has the type `MINIDUMP_TYPE'. */
-#define HAVE_MINIDUMP_TYPE 1
-
-/* Define to 1 if you have the `mkdtemp' function. */
-/* #undef HAVE_MKDTEMP */
-
-/* Define to 1 if you have the <netinet/tcp.h> header file. */
-/* #undef HAVE_NETINET_TCP_H */
-
-/* Define to 1 if you have the `OPENSSL_init_ssl' function. */
-/* #undef HAVE_OPENSSL_INIT_SSL */
-
-/* Define to 1 if you have the <pam/pam_appl.h> header file. */
-/* #undef HAVE_PAM_PAM_APPL_H */
-
-/* Define to 1 if you have the `poll' function. */
-/* #undef HAVE_POLL */
-
-/* Define to 1 if you have the <poll.h> header file. */
-/* #undef HAVE_POLL_H */
-
-/* Define to 1 if you have the `posix_fallocate' function. */
-/* #undef HAVE_POSIX_FALLOCATE */
-
-/* Define to 1 if you have the `ppoll' function. */
-/* #undef HAVE_PPOLL */
-
-/* Define to 1 if you have the `pread' function. */
-/* #undef HAVE_PREAD */
-
-/* Define to 1 if you have the `pstat' function. */
-/* #undef HAVE_PSTAT */
-
-/* Define to 1 if the PS_STRINGS thing exists. */
-/* #undef HAVE_PS_STRINGS */
-
-/* Define to 1 if you have the `pwrite' function. */
-/* #undef HAVE_PWRITE */
-
-/* Define to 1 if you have the `random' function. */
-/* #undef HAVE_RANDOM */
-
-/* Define to 1 if you have the <readline.h> header file. */
-/* #undef HAVE_READLINE_H */
-
-/* Define to 1 if you have the <readline/history.h> header file. */
-/* #undef HAVE_READLINE_HISTORY_H */
-
-/* Define to 1 if you have the <readline/readline.h> header file. */
-/* #undef HAVE_READLINE_READLINE_H */
-
-/* Define to 1 if you have the `readlink' function. */
-/* #undef HAVE_READLINK */
-
-/* Define to 1 if you have the `rint' function. */
-#define HAVE_RINT 1
-
-/* Define to 1 if you have the global variable
-   'rl_completion_append_character'. */
-/* #undef HAVE_RL_COMPLETION_APPEND_CHARACTER */
-
-/* Define to 1 if you have the `rl_completion_matches' function. */
-/* #undef HAVE_RL_COMPLETION_MATCHES */
-
-/* Define to 1 if you have the `rl_filename_completion_function' function. */
-/* #undef HAVE_RL_FILENAME_COMPLETION_FUNCTION */
-
-/* Define to 1 if you have the <security/pam_appl.h> header file. */
-/* #undef HAVE_SECURITY_PAM_APPL_H */
-
-/* Define to 1 if you have the `setproctitle' function. */
-/* #undef HAVE_SETPROCTITLE */
-
-/* Define to 1 if you have the `setsid' function. */
-/* #undef HAVE_SETSID */
-
-/* Define to 1 if you have spinlocks. */
-#define HAVE_SPINLOCKS 1
-
-/* Define to 1 if you have the `srandom' function. */
-/* #undef HAVE_SRANDOM */
-
-/* Define to 1 if stdbool.h conforms to C99. */
-#define HAVE_STDBOOL_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-/* #undef HAVE_STDINT_H */
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strchrnul' function. */
-/* #undef HAVE_STRCHRNUL */
-
-/* Define to 1 if you have the `strerror_r' function. */
-/* #undef HAVE_STRERROR_R */
-
-/* Define to 1 if you have the <strings.h> header file. */
-/*#define HAVE_STRINGS_H 1 */
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strnlen' function. */
-#define HAVE_STRNLEN 1
-
-/* Define to 1 if you have the `strsignal' function. */
-/* #undef HAVE_STRSIGNAL */
-
-/* Define to 1 if you have the `strtof' function. */
-#define HAVE_STRTOF 1
-
-/* Define to 1 if you have the `strtoll' function. */
-#ifdef HAVE_LONG_LONG_INT_64
-#define HAVE_STRTOLL 1
-#endif
-
-/* Define to 1 if you have the `strtoull' function. */
-#ifdef HAVE_LONG_LONG_INT_64
-#define HAVE_STRTOULL 1
-#endif
-
-/* Define to 1 if the system has the type `struct addrinfo'. */
-#define HAVE_STRUCT_ADDRINFO 1
-
-/* Define to 1 if the system has the type `struct cmsgcred'. */
-/* #undef HAVE_STRUCT_CMSGCRED */
-
-/* Define to 1 if the system has the type `struct option'. */
-//#define HAVE_STRUCT_OPTION 1
-
-/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
-/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */
-
-/* Define to 1 if the system has the type `struct sockaddr_storage'. */
-#define HAVE_STRUCT_SOCKADDR_STORAGE 1
-
-/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
-#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
-
-/* Define to 1 if `ss_len' is a member of `struct sockaddr_storage'. */
-/* #undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN */
-
-/* Define to 1 if `__ss_family' is a member of `struct sockaddr_storage'. */
-/* #undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY */
-
-/* Define to 1 if `__ss_len' is a member of `struct sockaddr_storage'. */
-/* #undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_LEN */
-
-/* Define to 1 if `tm_zone' is a member of `struct tm'. */
-/* #undef HAVE_STRUCT_TM_TM_ZONE */
-
-/* Define to 1 if you have the `symlink' function. */
-#define HAVE_SYMLINK 1
-
-/* Define to 1 if you have the `sync_file_range' function. */
-/* #undef HAVE_SYNC_FILE_RANGE */
-
-/* Define to 1 if you have the syslog interface. */
-/* #undef HAVE_SYSLOG */
-
-/* Define to 1 if you have the <sys/ipc.h> header file. */
-/* #undef HAVE_SYS_IPC_H */
-
-/* Define to 1 if you have the <sys/prctl.h> header file. */
-/* #undef HAVE_SYS_PRCTL_H */
-
-/* Define to 1 if you have the <sys/pstat.h> header file. */
-/* #undef HAVE_SYS_PSTAT_H */
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-/* #undef HAVE_SYS_SELECT_H */
-
-/* Define to 1 if you have the <sys/sem.h> header file. */
-/* #undef HAVE_SYS_SEM_H */
-
-/* Define to 1 if you have the <sys/shm.h> header file. */
-/* #undef HAVE_SYS_SHM_H */
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/ucred.h> header file. */
-/* #undef HAVE_SYS_UCRED_H */
-
-/* Define to 1 if you have the <sys/un.h> header file. */
-/* #undef HAVE_SYS_UN_H */
-
-/* Define to 1 if you have the <termios.h> header file. */
-/* #undef HAVE_TERMIOS_H */
-
-/* Define to 1 if your compiler understands `typeof' or something similar. */
-/* #undef HAVE_TYPEOF */
-
-/* Define to 1 if the system has the type `uint64'. */
-/* #undef HAVE_UINT64 */
-
-/* Define to 1 if the system has the type `uint8'. */
-/* #undef HAVE_UINT8 */
-
-/* Define to 1 if the system has the type `union semun'. */
-/* #undef HAVE_UNION_SEMUN */
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have unix sockets. */
-/* #undef HAVE_UNIX_SOCKETS */
-
-/* Define to 1 if you have the `unsetenv' function. */
-/* #undef HAVE_UNSETENV */
-
-/* Define to 1 if you have the `uselocale' function. */
-/* #undef HAVE_USELOCALE */
-
-/* Define to 1 if you have the `utime' function. */
-#define HAVE_UTIME 1
-
-/* Define to 1 if you have the `utimes' function. */
-/* #undef HAVE_UTIMES */
-
-/* Define to 1 if you have the <utime.h> header file. */
-#define HAVE_UTIME_H 1
-
-/* Define to 1 if you have the <wchar.h> header file. */
-#define HAVE_WCHAR_H 1
-
-/* Define to 1 if you have the `wcstombs_l' function. */
-#define HAVE_WCSTOMBS_L 1
-
-/* Define to 1 if you have the <wctype.h> header file. */
-#define HAVE_WCTYPE_H 1
-
-/* Define to 1 if you have the <winldap.h> header file. */
-/* #undef HAVE_WINLDAP_H */
-
-/* Define to 1 if you have the `X509_get_signature_nid' function. */
-#define HAVE_X509_GET_SIGNATURE_NID 1
-
-/* Define to 1 if the assembler supports X86_64's POPCNTQ instruction. */
-/* #undef HAVE_X86_64_POPCNTQ */
-
-/* Define to 1 if the system has the type `_Bool'. */
-/* #undef HAVE__BOOL */
-
-/* Define to 1 if your compiler understands __builtin_bswap16. */
-/* #undef HAVE__BUILTIN_BSWAP16 */
-
-/* Define to 1 if your compiler understands __builtin_bswap32. */
-/* #undef HAVE__BUILTIN_BSWAP32 */
-
-/* Define to 1 if your compiler understands __builtin_bswap64. */
-/* #undef HAVE__BUILTIN_BSWAP64 */
-
-/* Define to 1 if your compiler understands __builtin_clz. */
-/* #undef HAVE__BUILTIN_CLZ */
-
-/* Define to 1 if your compiler understands __builtin_constant_p. */
-/* #undef HAVE__BUILTIN_CONSTANT_P */
-
-/* Define to 1 if your compiler understands __builtin_ctz. */
-/* #undef HAVE__BUILTIN_CTZ */
-
-/* Define to 1 if your compiler understands __builtin_$op_overflow. */
-/* #undef HAVE__BUILTIN_OP_OVERFLOW */
-
-/* Define to 1 if your compiler understands __builtin_popcount. */
-/* #undef HAVE__BUILTIN_POPCOUNT */
-
-/* Define to 1 if your compiler understands __builtin_types_compatible_p. */
-/* #undef HAVE__BUILTIN_TYPES_COMPATIBLE_P */
-
-/* Define to 1 if your compiler understands __builtin_unreachable. */
-/* #undef HAVE__BUILTIN_UNREACHABLE */
-
-/* Define to 1 if you have the `_configthreadlocale' function. */
-#define HAVE__CONFIGTHREADLOCALE 1
-
-/* Define to 1 if you have __cpuid. */
-#define HAVE__CPUID 1
-
-/* Define to 1 if you have __get_cpuid. */
-#undef HAVE__GET_CPUID
-
-/* Define to 1 if your compiler understands _Static_assert. */
-/* #undef HAVE__STATIC_ASSERT */
-
-/* Define to the appropriate printf length modifier for 64-bit ints. */
-#define INT64_MODIFIER "ll"
-
-/* Define to 1 if `locale_t' requires <xlocale.h>. */
-/* #undef LOCALE_T_IN_XLOCALE */
-
-/* Define as the maximum alignment requirement of any C data type. */
-#define MAXIMUM_ALIGNOF 8
-
-/* Define bytes to use libc memset(). */
-#define MEMSET_LOOP_LIMIT 1024
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "pgsql-b...@lists.postgresql.org"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "PostgreSQL"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "PostgreSQL 13devel"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "postgresql"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "13devel"
-
-/* Define to the name of a signed 128-bit integer type. */
-#undef PG_INT128_TYPE
-
-/* Define to the name of a signed 64-bit integer type. */
-#define PG_INT64_TYPE long long int
-
-/* Define to the name of the default PostgreSQL service principal in Kerberos
-   (GSSAPI). (--with-krb-srvnam=NAME) */
-#define PG_KRB_SRVNAM "postgres"
-
-/* Define to 1 to use <stdbool.h> to define type bool. */
-#define PG_USE_STDBOOL 1
-
-/* PostgreSQL version as a string */
-#define PG_VERSION "13devel"
-
-/* PostgreSQL version as a number */
-#define PG_VERSION_NUM 130000
-
-/* A string containing the version number, platform, and C compiler */
-#define PG_VERSION_STR "Uninitialized version string (win32)"
-
-/* The size of `bool', as computed by sizeof. */
-#define SIZEOF_BOOL 1
-
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 4
-
-/* The size of `size_t', as computed by sizeof. */
-#ifndef _WIN64
-#define SIZEOF_SIZE_T 4
-#else
-#define SIZEOF_SIZE_T 8
-#endif
-
-/* The size of `void *', as computed by sizeof. */
-#ifndef _WIN64
-#define SIZEOF_VOID_P 4
-#else
-#define SIZEOF_VOID_P 8
-#endif
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if strerror_r() returns int. */
-/* #undef STRERROR_R_INT */
-
-/* Define to 1 to build with assertion checks. (--enable-cassert) */
-/* #undef USE_ASSERT_CHECKING */
-
-/* Define to 1 to build with Bonjour support. (--with-bonjour) */
-/* #undef USE_BONJOUR */
-
-/* Define to 1 to build with BSD Authentication support. (--with-bsd-auth) */
-/* #undef USE_BSD_AUTH */
-
-/* Define to use /dev/urandom for random number generation */
-/* #undef USE_DEV_URANDOM */
-
-/* Define to 1 to build with LDAP support. (--with-ldap) */
-/* #undef USE_LDAP */
-
-/* Define to 1 to build with LLVM based JIT support. (--with-llvm) */
-/* #undef USE_LLVM */
-
-/* Define to select named POSIX semaphores. */
-/* #undef USE_NAMED_POSIX_SEMAPHORES */
-
-/* Define to build with OpenSSL support. (--with-openssl) */
-/* #undef USE_OPENSSL */
-
-/* Define to use OpenSSL for random number generation */
-/* #undef USE_OPENSSL_RANDOM */
-
-/* Define to 1 to build with PAM support. (--with-pam) */
-/* #undef USE_PAM */
-
-/* Define to 1 to use software CRC-32C implementation (slicing-by-8). */
-/* #undef USE_SLICING_BY_8_CRC32C */
-
-/* Define to 1 use Intel SSE 4.2 CRC instructions. */
-/* #undef USE_SSE42_CRC32C */
-
-/* Define to 1 to use Intel SSE 4.2 CRC instructions with a runtime check. */
-#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK
-
-/* Define to select SysV-style semaphores. */
-/* #undef USE_SYSV_SEMAPHORES */
-
-/* Define to select SysV-style shared memory. */
-#define USE_SYSV_SHARED_MEMORY 1
-
-/* Define to select unnamed POSIX semaphores. */
-/* #undef USE_UNNAMED_POSIX_SEMAPHORES */
-
-/* Define to use native Windows API for random number generation */
-#define USE_WIN32_RANDOM 1
-
-/* Define to select Win32-style semaphores. */
-#define USE_WIN32_SEMAPHORES 1
-
-/* Define to 1 if `wcstombs_l' requires <xlocale.h>. */
-/* #undef WCSTOMBS_L_IN_XLOCALE */
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _FILE_OFFSET_BITS */
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-/* #undef _LARGEFILE_SOURCE */
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _LARGE_FILES */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#define inline __inline
-#endif
-
-/* Define to keyword to use for C99 restrict support, or to nothing if not
-   supported */
-/* Works for C and C++ in Visual Studio 2008 and upwards */
-#define pg_restrict __restrict
-
-/* Define to the equivalent of the C99 'restrict' keyword, or to
-   nothing if this is not supported.  Do not define if restrict is
-   supported directly.  */
-/* not defined, because it'd conflict with __declspec(restrict) */
-
-/* Define to empty if the C compiler does not understand signed types. */
-/* #undef signed */
-
-/* Define to how the compiler spells `typeof'. */
-/* #undef typeof */
diff --git a/src/include/pg_config_ext.h.win32 
b/src/include/pg_config_ext.h.win32
deleted file mode 100644
index 65bbb5d80d..0000000000
--- a/src/include/pg_config_ext.h.win32
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * src/include/pg_config_ext.h.win32.  This is generated manually, not by
- * autoheader, since we want to limit which symbols get defined here.
- */
-
-/* Define to the name of a signed 64-bit integer type. */
-#define PG_INT64_TYPE long long int
diff --git a/src/tools/version_stamp.pl b/src/tools/version_stamp.pl
index 10ddc79d49..508985497f 100755
--- a/src/tools/version_stamp.pl
+++ b/src/tools/version_stamp.pl
@@ -102,13 +102,6 @@
        "-e 's/AC_INIT(\\[PostgreSQL\\], \\[[0-9a-z.]*\\]/AC_INIT([PostgreSQL], 
[$fullversion]/'"
 );
 
-sed_file("src/include/pg_config.h.win32",
-       "-e 's/#define PACKAGE_STRING \"PostgreSQL .*\"/#define PACKAGE_STRING 
\"PostgreSQL $fullversion\"/' "
-         . "-e 's/#define PACKAGE_VERSION \".*\"/#define PACKAGE_VERSION 
\"$fullversion\"/' "
-         . "-e 's/#define PG_VERSION \".*\"/#define PG_VERSION 
\"$fullversion\"/' "
-         . "-e 's/#define PG_VERSION_NUM .*/#define PG_VERSION_NUM 
$padnumericversion/'"
-);
-
 sed_file("src/interfaces/libpq/libpq.rc.in",
        "-e 's/FILEVERSION [0-9]*,[0-9]*,[0-9]*,0/FILEVERSION 
$majorversion,0,$numericminor,0/' "
          . "-e 's/PRODUCTVERSION [0-9]*,[0-9]*,[0-9]*,0/PRODUCTVERSION 
$majorversion,0,$numericminor,0/' "
-- 
2.24.1

Reply via email to