]> granicus.if.org Git - postgresql/commitdiff
Fix compile-time warnings on all perl code
authorAndrew Dunstan <andrew@dunslane.net>
Thu, 31 May 2018 12:13:02 +0000 (08:13 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Thu, 31 May 2018 12:13:02 +0000 (08:13 -0400)
This patch does two things. First, it silences a number of compile-time
warnings in the msvc tools files, mainly those due to the fact that in
some cases we have more than one package per file. Second it supplies a
dummy Perl library with just enough of the Windows API referred to in
our code to let it run these checks cleanly, even on Unix machines where
the code is never supposed to run. The dummy library should only be used
for that purpose, as its README notes.

src/tools/msvc/MSBuildProject.pm
src/tools/msvc/Project.pm
src/tools/msvc/Solution.pm
src/tools/msvc/VCBuildProject.pm
src/tools/msvc/VSObjectFactory.pm
src/tools/msvc/dummylib/README [new file with mode: 0644]
src/tools/msvc/dummylib/Win32.pm [new file with mode: 0644]
src/tools/msvc/dummylib/Win32/Registry.pm [new file with mode: 0644]
src/tools/msvc/dummylib/Win32API/File.pm [new file with mode: 0644]

index 27397ba3fb123db98cb481e1911d19721098e6aa..948c548aede6892e6a255253276d668f1d27e9bf 100644 (file)
@@ -11,6 +11,8 @@ use strict;
 use warnings;
 use base qw(Project);
 
+no warnings qw(redefine); ## no critic
+
 sub _new
 {
        my $classname = shift;
@@ -399,6 +401,8 @@ use strict;
 use warnings;
 use base qw(MSBuildProject);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -420,6 +424,8 @@ use strict;
 use warnings;
 use base qw(MSBuildProject);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -464,6 +470,8 @@ use strict;
 use warnings;
 use base qw(VC2012Project);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -487,6 +495,8 @@ use strict;
 use warnings;
 use base qw(VC2012Project);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -510,6 +520,8 @@ use strict;
 use warnings;
 use base qw(VC2012Project);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
index 261c913ea072a5e538812b8cb8d89bf6e11fd871..0d3554659b01687199b337f2585025d4c02e0a39 100644 (file)
@@ -229,6 +229,7 @@ sub AddDir
 
                                if ($filter eq "LIBOBJS")
                                {
+                                       no warnings qw(once);
                                        if (grep(/$p/, @main::pgportfiles, @main::pgcommonfiles)
                                                == 1)
                                        {
index 8f0b355fc0ea057dfbba381a86df20b66c0895df..7cfd5e1016078481015bdffb1659236c4d9dbe84 100644 (file)
@@ -10,6 +10,8 @@ use strict;
 use warnings;
 use VSObjectFactory;
 
+no warnings qw(redefine); ## no critic
+
 sub _new
 {
        my $classname = shift;
@@ -768,6 +770,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -791,6 +795,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -815,6 +821,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -839,6 +847,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -863,6 +873,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -889,6 +901,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -915,6 +929,8 @@ use strict;
 use warnings;
 use base qw(Solution);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
index 03b890b9b7462c89276860a4ca726d8761cd15d6..09152b2bbc4b22f058c7efece0ffa7ccecad9bc0 100644 (file)
@@ -11,6 +11,8 @@ use strict;
 use warnings;
 use base qw(Project);
 
+no warnings qw(redefine); ## no critic
+
 sub _new
 {
        my $classname = shift;
@@ -268,6 +270,8 @@ use strict;
 use warnings;
 use base qw(VCBuildProject);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
@@ -289,6 +293,8 @@ use strict;
 use warnings;
 use base qw(VCBuildProject);
 
+no warnings qw(redefine); ## no critic
+
 sub new
 {
        my $classname = shift;
index eea59c5e4fca98802ea39a7ee260bf89b3040b87..3745f8f8a1ae90473673b6f5bb9fa782defe7020 100644 (file)
@@ -20,6 +20,8 @@ our (@ISA, @EXPORT);
 @ISA    = qw(Exporter);
 @EXPORT = qw(CreateSolution CreateProject DetermineVisualStudioVersion);
 
+no warnings qw(redefine); ## no critic
+
 sub CreateSolution
 {
        my $visualStudioVersion = shift;
diff --git a/src/tools/msvc/dummylib/README b/src/tools/msvc/dummylib/README
new file mode 100644 (file)
index 0000000..7b63d0e
--- /dev/null
@@ -0,0 +1,13 @@
+
+src/tools/msvc/dummylib
+
+This directory contains just enough of a dummy library to allow checking of
+the programs in src/tools/msvc and src/tools/win32tzlist.pl with
+perl -cw, even on machines that lack the Win32 perl infrastructure.
+
+invoke via:
+
+PERL5LIB=src/tools/msvc/dummylib perl -cw $file
+
+This is the only use that should be made of this directory. Attempting actually
+running of any programs using this library will result in a lot of grief.
diff --git a/src/tools/msvc/dummylib/Win32.pm b/src/tools/msvc/dummylib/Win32.pm
new file mode 100644 (file)
index 0000000..079e276
--- /dev/null
@@ -0,0 +1,4 @@
+package Win32;
+use strict;
+use warnings;
+1;
diff --git a/src/tools/msvc/dummylib/Win32/Registry.pm b/src/tools/msvc/dummylib/Win32/Registry.pm
new file mode 100644 (file)
index 0000000..12fe044
--- /dev/null
@@ -0,0 +1,13 @@
+package Win32::Registry;
+
+use strict;
+use warnings;
+
+use vars qw($HKEY_LOCAL_MACHINE);
+
+use Exporter ();
+our (@EXPORT,@ISA);
+@ISA    = qw(Exporter);
+@EXPORT = qw($HKEY_LOCAL_MACHINE);
+
+1;
diff --git a/src/tools/msvc/dummylib/Win32API/File.pm b/src/tools/msvc/dummylib/Win32API/File.pm
new file mode 100644 (file)
index 0000000..34d2bd8
--- /dev/null
@@ -0,0 +1,14 @@
+package Win32API::File;
+
+use strict;
+use warnings;
+
+use constant { SEM_FAILCRITICALERRORS => 1,  SEM_NOGPFAULTERRORBOX => 2 };
+sub SetErrormode {};
+use Exporter;
+our(@ISA,@EXPORT_OK,%EXPORT_TAGS);
+@ISA = qw(Exporter);
+@EXPORT_OK = qw(SetErrorMode SEM_FAILCRITICALERRORS SEM_NOGPFAULTERRORBOX);
+%EXPORT_TAGS = (SEM_ => [qw(SEM_FAILCRITICALERRORS SEM_NOGPFAULTERRORBOX)]);
+
+1;