early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -0,0 +1,72 @@
diff --git a/configure.ac b/configure.ac
index fba79ee..4fadb94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
AC_INIT([PostgreSQL], [14.1], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required.
Untested combinations of 'autoconf' and PostgreSQL versions are not
recommended. You can remove the check from 'configure.ac' but it is then
your responsibility whether the result works or not.])])
@@ -1184,7 +1184,8 @@ if test "$enable_thread_safety" = yes; then
fi
if test "$with_readline" = yes; then
- PGAC_CHECK_READLINE
+ PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no])
+ LIBS="$READLINE_LIBS $LIBS"
if test x"$pgac_cv_check_readline" = x"no"; then
AC_MSG_ERROR([readline library not found
If you have readline already installed, see config.log for details on the
@@ -1194,7 +1195,7 @@ Use --without-readline to disable readline support.])
fi
if test "$with_zlib" = yes; then
- AC_CHECK_LIB(z, inflate, [],
+ PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"],
[AC_MSG_ERROR([zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
@@ -1243,6 +1244,9 @@ if test "$with_ssl" = openssl ; then
# Minimum required OpenSSL version is 1.0.1
AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L],
[Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.])
+ PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
+ PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
+ if false ; then
if test "$PORTNAME" != "win32"; then
AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
@@ -1250,6 +1254,7 @@ if test "$with_ssl" = openssl ; then
AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])])
AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])])
fi
+ fi
# Function introduced in OpenSSL 1.0.2.
AC_CHECK_FUNCS([X509_get_signature_nid])
# Functions introduced in OpenSSL 1.1.0. We used to check for
@@ -1273,15 +1278,18 @@ if test "$with_pam" = yes ; then
fi
if test "$with_libxml" = yes ; then
- AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])])
+ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])])
+ LIBS="$LIBXML2_LIBS $LIBS"
fi
if test "$with_libxslt" = yes ; then
- AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])])
+ PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])])
+ LIBS="$LIBXSLT_LIBS $LIBS"
fi
if test "$with_lz4" = yes ; then
- AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])])
+ PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])])
+ LIBS="$LZ4_LIBS $LIBS"
fi
# Note: We can test for libldap_r only after we know PTHREAD_LIBS;

View File

@@ -0,0 +1,23 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..faa3e336f 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -84,16 +84,16 @@ EOF
defs => "_DEBUG;DEBUG=1",
opt => 'Disabled',
strpool => 'false',
- runtime => 'MultiThreadedDebugDLL'
+ runtime => 'MultiThreadedDebug'
});
$self->WriteItemDefinitionGroup(
$f,
'Release',
{
defs => "",
opt => 'Full',
strpool => 'true',
- runtime => 'MultiThreadedDLL'
+ runtime => 'MultiThreaded'
});
return;
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..e1dc59aa7 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -265,7 +265,7 @@ sub WriteConfigurationPropertyGroup
my $cfgtype =
($self->{type} eq "exe")
? 'Application'
- : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary');
+ : ($self->{type} eq "dll" ? 'StaticLibrary' : 'StaticLibrary');
print $f <<EOF;
<PropertyGroup Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'" Label="Configuration">

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..b93992f22 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -384,7 +384,7 @@ EOF
print $f <<EOF;
<PreLinkEvent>
<Message>Generate DEF file</Message>
- <Command>perl src\\tools\\msvc\\gendef.pl $cfgname\\$self->{name} $self->{platform}</Command>
+ <Command>perl "src\\tools\\msvc\\gendef.pl" $cfgname\\$self->{name} $self->{platform}</Command>
</PreLinkEvent>
EOF
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..4f51c12f2 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -199,7 +199,7 @@ sub mkvcbuild
'syncrep_gram.y');
$postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l',
'jsonpath_gram.y');
- $postgres->AddDefine('BUILDING_DLL');
+ # $postgres->AddDefine('BUILDING_DLL');
$postgres->AddLibrary('secur32.lib');
$postgres->AddLibrary('ws2_32.lib');
$postgres->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});

View File

@@ -0,0 +1,45 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 51711c2bf..d33fdc3b0 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -63,17 +63,21 @@ sub DeterminePlatform
my $self = shift;
if ($^O eq "MSWin32")
{
# Examine CL help output to determine if we are in 32 or 64-bit mode.
my $output = `cl /help 2>&1`;
$? >> 8 == 0 or die "cl command not found";
- $self->{platform} =
- ($output =~ /^\/favor:<.+AMD64/m) ? 'x64' : 'Win32';
+ if ($output =~ m/x64\n/) { $self->{platform} = 'x64';
+ } elsif ($output =~ m/x86\n/) { $self->{platform} = 'Win32';
+ } elsif ($output =~ m/ARM64\n/) { $self->{platform} = 'ARM64';
+ } elsif ($output =~ m/ARM\n/) { $self->{platform} = 'ARM';
+ } else { $self->{platform} = 'Unknown'
+ }
}
else
{
$self->{platform} = 'FAKE';
}
print "Detected hardware platform: $self->{platform}\n";
return;
}
@@ -757,14 +757,14 @@ EOF
|| confess "Could not open pg_config_paths.h";
print $o <<EOF;
#define PGBINDIR "/bin"
-#define PGSHAREDIR "/share"
+#define PGSHAREDIR "/share/libpq"
#define SYSCONFDIR "/etc"
#define INCLUDEDIR "/include"
#define PKGINCLUDEDIR "/include"
#define INCLUDEDIRSERVER "/include/server"
#define LIBDIR "/lib"
#define PKGLIBDIR "/lib"
-#define LOCALEDIR "/share/locale"
+#define LOCALEDIR "/share/libpq/locale"
#define DOCDIR "/doc"
#define HTMLDIR "/doc"
#define MANDIR "/man"

View File

@@ -0,0 +1,92 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 2820ace22..7fddbf0fb 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -948,7 +948,7 @@ sub AddProject
if ($self->{options}->{zlib})
{
$proj->AddIncludeDir($self->{options}->{zlib} . '\include');
- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib');
+ $proj->AddLibrary($self->{options}->{zlib} . '\debug\lib\zlibd.lib');
}
if ($self->{options}->{openssl})
{
@@ -989,8 +989,11 @@ sub AddProject
# On both Win32 and Win64 the same library
# names are used without a debugging context.
$dbgsuffix = 0;
- $libsslpath = '\lib\libssl.lib';
- $libcryptopath = '\lib\libcrypto.lib';
+ $libsslpath = '\debug\lib\libssl.lib'; #
+ $libcryptopath = '\debug\lib\libcrypto.lib'; #
+ $proj->AddLibrary('crypt32.lib');
+ $proj->AddLibrary('ws2_32.lib');
+ $proj->AddLibrary('secur32.lib');
}
$proj->AddLibrary($self->{options}->{openssl} . $libsslpath,
@@ -1024,7 +1024,7 @@ sub AddProject
if ($self->{options}->{nls})
{
$proj->AddIncludeDir($self->{options}->{nls} . '\include');
- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib');
+ $proj->AddLibrary($self->{options}->{nls} . '\debug\lib\intl.lib'); #
}
if ($self->{options}->{gss})
{
@@ -1051,21 +1051,21 @@ sub AddProject
}
if ($self->{options}->{iconv})
{
$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
- $proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
+ $proj->AddLibrary($self->{options}->{iconv} . '\debug\lib\iconv.lib'); #
}
if ($self->{options}->{icu})
{
$proj->AddIncludeDir($self->{options}->{icu} . '\include');
if ($self->{platform} eq 'Win32')
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuind.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuucd.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icudtd.lib'); #
}
else
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuind.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuucd.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icudtd.lib'); #
}
@@ -1074,22 +1074,22 @@ sub AddProject
{
$proj->AddIncludeDir($self->{options}->{xml} . '\include');
$proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2');
- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib');
+ $proj->AddLibrary($self->{options}->{xml} . '\debug\lib\libxml2.lib'); #
}
if ($self->{options}->{xslt})
{
$proj->AddIncludeDir($self->{options}->{xslt} . '\include');
- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib');
+ $proj->AddLibrary($self->{options}->{xslt} . '\debug\lib\libxslt.lib'); #
}
if ($self->{options}->{lz4})
{
$proj->AddIncludeDir($self->{options}->{lz4} . '\include');
- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib');
+ $proj->AddLibrary($self->{options}->{lz4} . '\debug\lib\lz4d.lib'); #
}
if ($self->{options}->{uuid})
{
$proj->AddIncludeDir($self->{options}->{uuid} . '\include');
- $proj->AddLibrary($self->{options}->{uuid} . '\lib\uuid.lib');
+ $proj->AddLibrary($self->{options}->{uuid} . '\debug\lib\uuid.lib'); #
}
return $proj;
}

View File

@@ -0,0 +1,92 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 2820ace22..7fddbf0fb 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -948,7 +948,7 @@ sub AddProject
if ($self->{options}->{zlib})
{
$proj->AddIncludeDir($self->{options}->{zlib} . '\include');
- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib');
+ $proj->AddLibrary($self->{options}->{zlib} . '\lib\zlib.lib');
}
if ($self->{options}->{openssl})
{
@@ -989,8 +989,11 @@ sub AddProject
# On both Win32 and Win64 the same library
# names are used without a debugging context.
$dbgsuffix = 0;
- $libsslpath = '\lib\libssl.lib';
- $libcryptopath = '\lib\libcrypto.lib';
+ $libsslpath = '\lib\libssl.lib'; #
+ $libcryptopath = '\lib\libcrypto.lib'; #
+ $proj->AddLibrary('crypt32.lib');
+ $proj->AddLibrary('ws2_32.lib');
+ $proj->AddLibrary('secur32.lib');
}
$proj->AddLibrary($self->{options}->{openssl} . $libsslpath,
@@ -1024,7 +1024,7 @@ sub AddProject
if ($self->{options}->{nls})
{
$proj->AddIncludeDir($self->{options}->{nls} . '\include');
- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib');
+ $proj->AddLibrary($self->{options}->{nls} . '\lib\intl.lib'); #
}
if ($self->{options}->{gss})
{
@@ -1051,21 +1051,21 @@ sub AddProject
}
if ($self->{options}->{iconv})
{
$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
- $proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
+ $proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib'); #
}
if ($self->{options}->{icu})
{
$proj->AddIncludeDir($self->{options}->{icu} . '\include');
if ($self->{platform} eq 'Win32')
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib'); #
}
else
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib'); #
}
@@ -1074,22 +1074,22 @@ sub AddProject
{
$proj->AddIncludeDir($self->{options}->{xml} . '\include');
$proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2');
- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib');
+ $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); #
}
if ($self->{options}->{xslt})
{
$proj->AddIncludeDir($self->{options}->{xslt} . '\include');
- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib');
+ $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); #
}
if ($self->{options}->{lz4})
{
$proj->AddIncludeDir($self->{options}->{lz4} . '\include');
- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib');
+ $proj->AddLibrary($self->{options}->{lz4} . '\lib\lz4.lib'); #
}
if ($self->{options}->{uuid})
{
$proj->AddIncludeDir($self->{options}->{uuid} . '\include');
- $proj->AddLibrary($self->{options}->{uuid} . '\lib\uuid.lib');
+ $proj->AddLibrary($self->{options}->{uuid} . '\lib\uuid.lib'); #
}
return $proj;
}

View File

@@ -0,0 +1,39 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..4f51c12f2 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -110,8 +110,8 @@ sub mkvcbuild
if ($vsVersion >= '9.00')
{
- push(@pgportfiles, 'pg_crc32c_sse42_choose.c');
- push(@pgportfiles, 'pg_crc32c_sse42.c');
+ #push(@pgportfiles, 'pg_crc32c_sse42_choose.c');
+ #push(@pgportfiles, 'pg_crc32c_sse42.c');
push(@pgportfiles, 'pg_crc32c_sb8.c');
}
else
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..625f32bf8 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -307,9 +307,8 @@ sub WriteItemDefinitionGroup
: ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary');
my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';');
- my $targetmachine =
- $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64';
-
+ my $targetmachine = $self->{platform} eq 'ARM64' ? 'MachineARM64' : 'MachineARM';
+
my $includes = $self->{includes};
unless ($includes eq '' or $includes =~ /;$/)
{
@@ -347,7 +349,6 @@ sub WriteItemDefinitionGroup
<ProgramDatabaseFile>.\\$cfgname\\$self->{name}\\$self->{name}.pdb</ProgramDatabaseFile>
<GenerateMapFile>false</GenerateMapFile>
<MapFileName>.\\$cfgname\\$self->{name}\\$self->{name}.map</MapFileName>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
<!-- Permit links to MinGW-built, 32-bit DLLs (default before VS2012). -->
<ImageHasSafeExceptionHandlers/>
<SubSystem>Console</SubSystem>

View File

@@ -0,0 +1,33 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index b93992f..2397511 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -336,7 +336,7 @@ sub WriteItemDefinitionGroup
<BrowseInformation>false</BrowseInformation>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index e0c9a88..98f9e67 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -352,9 +352,12 @@ sub CopySolutionOutput
|| croak "Could not copy $pf.$ext\n";
}
}
- lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb")
- || croak "Could not copy $pf.pdb\n";
- print ".";
+ if ($1 eq 'DynamicLibrary')
+ {
+ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb")
+ || croak "Could not copy $pf.pdb\n";
+ print ".";
+ }
}
print "\n";
return;

View File

@@ -0,0 +1,38 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 25a549015..9018270ab 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -132,21 +132,21 @@ sub GetOpenSSLVersion
# Attempt to get OpenSSL version and location. This assumes that
# openssl.exe is in the specified directory.
# Quote the .exe name in case it has spaces
- my $opensslcmd =
- qq("openssl.exe" version 2>&1);
- my $sslout = `$opensslcmd`;
+ #my $opensslcmd =
+ # qq("openssl.exe" version 2>&1);
+ #my $sslout = `$opensslcmd`;
- $? >> 8 == 0
- or croak
- "Unable to determine OpenSSL version: The openssl.exe command wasn't found.";
+ #$? >> 8 == 0
+ # or croak
+ # "Unable to determine OpenSSL version: The openssl.exe command wasn't found.";
- if ($sslout =~ /(\d+)\.(\d+)\.(\d+)(\D)/m)
- {
- return ($1, $2, $3);
- }
+ #if ($sslout =~ /(\d+)\.(\d+)\.(\d+)(\D)/m)
+ #{
+ return (1, 1, 1);
+ #}
- croak
- "Unable to determine OpenSSL version: The openssl.exe version could not be determined.";
+ #croak
+ # "Unable to determine OpenSSL version: The openssl.exe version could not be determined.";
}
sub GenerateFiles

View File

@@ -0,0 +1,223 @@
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index d109b2c90..75c7446e6 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -89,10 +89,10 @@ sub Install
my $majorver = DetermineMajorVersion();
print "Installing version $majorver for $conf in $target\n";
- my @client_dirs = ('bin', 'lib', 'share', 'symbols');
+ my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq');
my @all_dirs = (
- @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib',
- 'share/extension', 'share/timezonesets', 'share/tsearch_data');
+ @client_dirs, 'doc', 'doc/libpq', 'doc/libpq/contrib', 'doc/libpq/extension', 'share/libpq/contrib',
+ 'share/libpq/extension', 'share/libpq/timezonesets', 'share/libpq/tsearch_data');
if ($insttype eq "client")
{
EnsureDirectories($target, @client_dirs);
@@ -117,7 +117,7 @@ sub Install
}
},
@top_dir);
- CopySetOfFiles('config files', $sample_files, $target . '/share/');
+ CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/');
CopyFiles(
'Import libraries',
$target . '/lib/',
@@ -131,35 +131,35 @@ sub Install
CopySetOfFiles(
'timezone names',
[ glob('src\timezone\tznames\*.txt') ],
- $target . '/share/timezonesets/');
+ $target . '/share/libpq/timezonesets/');
CopyFiles(
'timezone sets',
- $target . '/share/timezonesets/',
+ $target . '/share/libpq/timezonesets/',
'src/timezone/tznames/', 'Default', 'Australia', 'India');
CopySetOfFiles(
'BKI files',
[ glob("src\\backend\\catalog\\postgres.*") ],
- $target . '/share/');
+ $target . '/share/libpq/');
CopySetOfFiles(
'SQL files',
[ glob("src\\backend\\catalog\\*.sql") ],
- $target . '/share/');
+ $target . '/share/libpq/');
CopyFiles(
- 'Information schema data', $target . '/share/',
+ 'Information schema data', $target . '/share/libpq/',
'src/backend/catalog/', 'sql_features.txt');
CopyFiles(
- 'Error code data', $target . '/share/',
+ 'Error code data', $target . '/share/libpq/',
'src/backend/utils/', 'errcodes.txt');
GenerateTimezoneFiles($target, $conf);
GenerateTsearchFiles($target);
CopySetOfFiles(
'Stopword files',
[ glob("src\\backend\\snowball\\stopwords\\*.stop") ],
- $target . '/share/tsearch_data/');
+ $target . '/share/libpq/tsearch_data/');
CopySetOfFiles(
'Dictionaries sample files',
[ glob("src\\backend\\tsearch\\dicts\\*_sample*") ],
- $target . '/share/tsearch_data/');
+ $target . '/share/libpq/tsearch_data/');
my $pl_extension_files = [];
my @pldirs = ('src/pl/plpgsql/src');
@@ -178,7 +178,7 @@ sub Install
},
@pldirs);
CopySetOfFiles('PL Extension files',
- $pl_extension_files, $target . '/share/extension/');
+ $pl_extension_files, $target . '/share/libpq/extension/');
}
GenerateNLSFiles($target, $config->{nls}, $majorver) if ($config->{nls});
@@ -293,23 +293,26 @@ sub CopySolutionOutput
{
if ($1 == 1)
{
- push(@{ $install_list{'bin'} }, "exe");
+ push(@{ $install_list{'tools\\libpq'} }, "exe");
}
elsif ($1 == 2)
{
- push(@{ $install_list{'lib'} }, "dll");
+ push(@{ $install_list{'bin'} }, "dll");
if ($is_sharedlib)
{
push(@{ $install_list{'bin'} }, "dll");
push(@{ $install_list{'lib'} }, "lib");
}
+ else
+ {
+ push(@{ $install_list{'lib'} }, "lib");
+ }
}
else
{
-
+ push(@{ $install_list{'lib'} }, "lib");
# Static libraries, such as libpgport, only used internally
# during build, don't install.
- next;
}
}
elsif ($vcproj eq 'vcxproj'
@@ -320,11 +320,11 @@ sub CopySolutionOutput
{
if ($1 eq 'Application')
{
- push(@{ $install_list{'bin'} }, "exe");
+ push(@{ $install_list{'tools\\libpq'} }, "exe");
}
elsif ($1 eq 'DynamicLibrary')
{
- push(@{ $install_list{'lib'} }, "dll");
+ push(@{ $install_list{'bin'} }, "dll");
if ($is_sharedlib)
{
push(@{ $install_list{'bin'} }, "dll");
@@ -333,10 +333,9 @@ sub CopySolutionOutput
}
else # 'StaticLibrary'
{
-
+ push(@{ $install_list{'lib'} }, "lib");
# Static lib, such as libpgport, only used internally
# during build, don't install.
- next;
}
}
else
@@ -352,7 +352,7 @@ sub CopySolutionOutput
|| croak "Could not copy $pf.$ext\n";
}
}
- lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb")
+ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb")
|| croak "Could not copy $pf.pdb\n";
print ".";
}
@@ -374,5 +374,5 @@ sub GenerateTimezoneFiles
print "Generating timezone files...";
- my @args = ("$conf/zic/zic", '-d', "$target/share/timezone");
+ my @args = ("$conf/zic/zic", '-d', "$target/share/libpq/timezone");
foreach (@tzfiles)
{
@@ -398,7 +398,7 @@ sub GenerateTsearchFiles
$mf =~ /^LANGUAGES\s*=\s*(.*)$/m
|| die "Could not find LANGUAGES line in snowball Makefile\n";
my @pieces = split /\s+/, $1;
- open($F, '>', "$target/share/snowball_create.sql")
+ open($F, '>', "$target/share/libpq/snowball_create.sql")
|| die "Could not write snowball_create.sql";
print $F read_file('src/backend/snowball/snowball_func.sql.in');
@@ -483,7 +483,7 @@ sub CopySubdirFiles
foreach my $f (split /\s+/, $flist)
{
lcopy("$subdir/$module/$f.control",
- "$target/share/extension/$f.control")
+ "$target/share/libpq/extension/$f.control")
|| croak("Could not copy file $f.control in contrib $module");
print '.';
}
@@ -501,7 +501,7 @@ sub CopySubdirFiles
foreach my $f (split /\s+/, $flist)
{
lcopy("$subdir/$module/$f",
- "$target/share/$moduledir/" . basename($f))
+ "$target/share/libpq/$moduledir/" . basename($f))
|| croak("Could not copy file $f in contrib $module");
print '.';
}
@@ -516,7 +516,7 @@ sub CopySubdirFiles
foreach my $f (split /\s+/, $flist)
{
lcopy("$subdir/$module/$f",
- "$target/share/tsearch_data/" . basename($f))
+ "$target/share/libpq/tsearch_data/" . basename($f))
|| croak("Could not copy file $f in $subdir $module");
print '.';
}
@@ -579,7 +579,7 @@ sub CopySubdirFiles
if ($module eq 'spi');
foreach my $f (split /\s+/, $flist)
{
- lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f")
+ lcopy("$subdir/$module/$f", "$target/doc/libpq/$moduledir/$f")
|| croak("Could not copy file $f in contrib $module");
print '.';
}
@@ -708,7 +708,7 @@ sub GenerateNLSFiles
my $majorver = shift;
print "Installing NLS files...";
- EnsureDirectories($target, "share/locale");
+ EnsureDirectories($target, "share/libpq/locale");
my @flist;
File::Find::find(
{
@@ -730,12 +730,12 @@ sub GenerateNLSFiles
next unless /([^\/]+)\.po/;
$lang = $1;
- EnsureDirectories($target, "share/locale/$lang",
- "share/locale/$lang/LC_MESSAGES");
+ EnsureDirectories($target, "share/libpq/locale/$lang",
+ "share/libpq/locale/$lang/LC_MESSAGES");
my @args = (
"$nlspath\\bin\\msgfmt",
'-o',
- "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
+ "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
$_);
system(@args) && croak("Could not run msgfmt on $dir\\$_");
print ".";

View File

@@ -0,0 +1,35 @@
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index d109b2c90..75c7446e6 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -22,13 +22,13 @@ our (@ISA, @EXPORT_OK);
my $insttype;
my @client_contribs = ('oid2name', 'pgbench', 'vacuumlo');
-my @client_program_files = (
- 'clusterdb', 'createdb', 'createuser', 'dropdb',
- 'dropuser', 'ecpg', 'libecpg', 'libecpg_compat',
- 'libpgtypes', 'libpq', 'pg_amcheck', 'pg_basebackup',
- 'pg_config', 'pg_dump', 'pg_dumpall', 'pg_isready',
- 'pg_receivewal', 'pg_recvlogical', 'pg_restore', 'psql',
- 'reindexdb', 'vacuumdb', @client_contribs);
+my @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' );
+ #'clusterdb', 'createdb', 'createuser', 'dropdb',
+ #'dropuser', 'ecpg', 'libecpg', 'libecpg_compat',
+ #'libpgtypes', 'libpq', 'pg_amcheck', 'pg_basebackup',
+ #'pg_config', 'pg_dump', 'pg_dumpall', 'pg_isready',
+ #'pg_receivewal', 'pg_recvlogical', 'pg_restore', 'psql',
+ #'reindexdb', 'vacuumdb', @client_contribs);
sub lcopy
{
@@ -121,7 +121,7 @@ sub Install
CopyFiles(
'Import libraries',
$target . '/lib/',
- "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib",
+ "$conf\\", "libpgcommon\\libpgcommon.lib",
"libpgport\\libpgport.lib");
CopyContribFiles($config, $target);
CopyIncludeFiles($target);

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index 66c0c3483..2154c6cf6 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -733,7 +733,7 @@ sub GenerateNLSFiles
EnsureDirectories($target, "share/libpq/locale/$lang",
"share/libpq/locale/$lang/LC_MESSAGES");
my @args = (
- "$nlspath\\bin\\msgfmt",
+ "msgfmt.exe",
'-o',
"$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
$_);

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 51711c2bf..d33fdc3b0 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -129,7 +129,7 @@ sub GetOpenSSLVersion
# openssl.exe is in the specified directory.
# Quote the .exe name in case it has spaces
my $opensslcmd =
- qq("$self->{options}->{openssl}\\bin\\openssl.exe" version 2>&1);
+ qq("openssl.exe" version 2>&1);
my $sslout = `$opensslcmd`;
$? >> 8 == 0

View File

@@ -0,0 +1,40 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..21b5559d6 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -494,14 +494,15 @@ sub mkvcbuild
# Attempt to get python version and location.
# Assume python.exe in specified dir.
- my $pythonprog = "import sys;print(sys.prefix);"
- . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
- my $prefixcmd =
- qq("$solution->{options}->{python}\\python" -c "$pythonprog");
- my $pyout = `$prefixcmd`;
- die "Could not query for python version!\n" if $?;
- my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
-
+ #my $pythonprog = "import sys;print(sys.prefix);"
+ # . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
+ #my $prefixcmd =
+ # qq("$solution->{options}->{python}\\python" -c "$pythonprog");
+ #my $pyout = `$prefixcmd`;
+ #die "Could not query for python version!\n" if $?;
+ #my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
+ my $pyprefix = $solution->{options}->{python};
+ my $pyver = 310;
# Sometimes (always?) if python is not present, the execution
# appears to work, but gives no data...
die "Failed to query python for version information\n"
@@ -510,8 +511,9 @@ sub mkvcbuild
my $pymajorver = substr($pyver, 0, 1);
my $plpython = $solution->AddProject('plpython' . $pymajorver,
'dll', 'PLs', 'src/pl/plpython');
- $plpython->AddIncludeDir($pyprefix . '/include');
- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib");
+ $plpython->AddIncludeDir($pyprefix . '/include/python3.10');
+ $plpython->AddDefine('_DEBUG'); # required for python autolink linking correctly!
+ $plpython->AddLibrary($pyprefix . "/debug/lib/python$pyver" . "_d.lib");
$plpython->AddReference($postgres);
# Add transform modules dependent on plpython

View File

@@ -0,0 +1,39 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..21b5559d6 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -494,14 +494,15 @@ sub mkvcbuild
# Attempt to get python version and location.
# Assume python.exe in specified dir.
- my $pythonprog = "import sys;print(sys.prefix);"
- . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
- my $prefixcmd =
- qq("$solution->{options}->{python}\\python" -c "$pythonprog");
- my $pyout = `$prefixcmd`;
- die "Could not query for python version!\n" if $?;
- my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
-
+ #my $pythonprog = "import sys;print(sys.prefix);"
+ # . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
+ #my $prefixcmd =
+ # qq("$solution->{options}->{python}\\python" -c "$pythonprog");
+ #my $pyout = `$prefixcmd`;
+ #die "Could not query for python version!\n" if $?;
+ #my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
+ my $pyprefix = $solution->{options}->{python};
+ my $pyver = 310;
# Sometimes (always?) if python is not present, the execution
# appears to work, but gives no data...
die "Failed to query python for version information\n"
@@ -510,8 +511,8 @@ sub mkvcbuild
my $pymajorver = substr($pyver, 0, 1);
my $plpython = $solution->AddProject('plpython' . $pymajorver,
'dll', 'PLs', 'src/pl/plpython');
- $plpython->AddIncludeDir($pyprefix . '/include');
- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib");
+ $plpython->AddIncludeDir($pyprefix . '/include/python3.10');
+ $plpython->AddLibrary($pyprefix . "/lib/python$pyver.lib");
$plpython->AddReference($postgres);
# Add transform modules dependent on plpython

View File

@@ -0,0 +1,17 @@
diff --git a/src/pl/plpython/plpython.h b/src/pl/plpython/plpython.h
index 3a1f0d56d..6a8a09a20 100644
--- a/src/pl/plpython/plpython.h
+++ b/src/pl/plpython/plpython.h
@@ -45,12 +45,10 @@
#if defined(_MSC_VER) && defined(_DEBUG)
/* Python uses #pragma to bring in a non-default libpython on VC++ if
* _DEBUG is defined */
-#undef _DEBUG
/* Also hide away errcode, since we load Python.h before postgres.h */
#define errcode __msvc_errcode
#include <Python.h>
#undef errcode
-#define _DEBUG
#elif defined (_MSC_VER)
#define errcode __msvc_errcode
#include <Python.h>

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index e2fbe95..8c4f279 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -226,7 +226,7 @@ sub mkvcbuild
$pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include');
$pltcl->AddReference($postgres);
- for my $tclver (qw(86t 86 85 84))
+ for my $tclver (qw(90 90g 90s 90sg))
{
my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib";
if (-e $tcllib)

View File

@@ -0,0 +1,43 @@
diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl
index aceed5ffd..f6ed215e8 100644
--- a/src/tools/msvc/pgflex.pl
+++ b/src/tools/msvc/pgflex.pl
@@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning';
do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl';
-my ($flexver) = `flex -V`; # grab first line
+my ($flexver) = `win_flex -V`; # grab first line
$flexver = (split(/\s+/, $flexver))[1];
$flexver =~ s/[^0-9.]//g;
my @verparts = split(/\./, $flexver);
@@ -52,7 +52,7 @@ close($mf);
my $basetarg = basename($output);
my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : '');
-system("flex $flexflags -o$output $input");
+system("win_flex $flexflags -o$output $input");
if ($? == 0)
{
diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl
index 895e398c0..f5b524a5d 100644
--- a/src/tools/msvc/pgbison.pl
+++ b/src/tools/msvc/pgbison.pl
@@ -13,7 +13,7 @@ use File::Basename;
do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl';
-my ($bisonver) = `bison -V`; # grab first line
+my ($bisonver) = `win_bison -V`; # grab first line
$bisonver = (split(/\s+/, $bisonver))[3]; # grab version number
unless ($bisonver eq '1.875' || $bisonver ge '2.2')
@@ -51,5 +51,5 @@ close($mf);
my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : "";
-system("bison $nodep $headerflag $input -o $output");
+system("win_bison $nodep $headerflag $input -o $output");
exit $? >> 8;