aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2010-01-05 11:12:50 +0000
committerMagnus Hagander <magnus@hagander.net>2010-01-05 11:12:50 +0000
commit04de9be9106987a889429048bb3cc7ef5fa5d31f (patch)
tree5814c950b19dff5ff969c6115a417a23a6b5dc9d /src
parentce92f8b4634b128c4e1090d26617a17fb73ae3d5 (diff)
downloadpostgresql-04de9be9106987a889429048bb3cc7ef5fa5d31f.tar.gz
postgresql-04de9be9106987a889429048bb3cc7ef5fa5d31f.zip
Disable linker warning 4197 on Win64, that is caused by the fact that we export
symbols both using __declspec(dllexport) (via the PGDLLIMPORT macro) and using full-dll-export. This works without warning on Win32, but not on Win64. In passing, fix the fact that the framework could never deal with more than one disbled linker warning - because MSVC wants commas between linker warnings, and semicolons between compiler warnings...
Diffstat (limited to 'src')
-rw-r--r--src/tools/msvc/Project.pm10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 3b30b72aaae..8eee8c11875 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -3,7 +3,7 @@ package Project;
#
# Package that encapsulates a Visual C++ project file generation
#
-# $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.24 2010/01/02 15:18:42 mha Exp $
+# $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.25 2010/01/05 11:12:50 mha Exp $
#
use Carp;
use strict;
@@ -333,7 +333,7 @@ sub DisableLinkerWarnings
{
my ($self, $warnings) = @_;
- $self->{disablelinkerwarnings} .= ';' unless ($self->{disablelinkerwarnings} eq '');
+ $self->{disablelinkerwarnings} .= ',' unless ($self->{disablelinkerwarnings} eq '');
$self->{disablelinkerwarnings} .= $warnings;
}
@@ -348,6 +348,10 @@ sub Save
$self->FullExportDLL($self->{name} . ".lib");
}
+ # Warning 4197 is about double exporting, disable this per
+ # http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99193
+ $self->DisableLinkerWarnings('4197') if ($self->{platform} eq 'x64');
+
# Dump the project
open(F, ">$self->{name}.vcproj") || croak("Could not write to $self->{name}.vcproj\n");
$self->WriteHeader(*F);
@@ -494,7 +498,9 @@ sub WriteConfiguration
}
$libs =~ s/ $//;
$libs =~ s/__CFGNAME__/$cfgname/g;
+
my $targetmachine = $self->{platform} eq 'Win32' ? 1 : 17;
+
print $f <<EOF;
<Configuration Name="$cfgname|$self->{platform}" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}"
ConfigurationType="$cfgtype" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="FALSE" CharacterSet="2" WholeProgramOptimization="$p->{wholeopt}">