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,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;