Ensure HAVE_DECL_XXX macros in MSVC builds match those in Unix.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 15 Jul 2021 15:00:43 +0000 (11:00 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 15 Jul 2021 15:00:43 +0000 (11:00 -0400)
Autoconf's AC_CHECK_DECLS() always defines HAVE_DECL_whatever
as 1 or 0, but some of the entries in msvc/Solution.pm showed
such symbols as "undef" instead of 0.  Fix that for consistency.
There's no live bug in current usages AFAICS, but it's not hard
to imagine one creeping in if more-complex #if tests get added.

Back-patch to v13, which is as far back as Solution.pm contains
this data.  The inconsistency still exists in the manually-filled
pg_config_ext.h.win32 files of older branches; but as long as the
problem is only latent, it doesn't seem worth the trouble to
clean things up there.

Discussion: https://postgr.es/m/3185430.1626133592@sss.pgh.pa.us

src/tools/msvc/Solution.pm

index c967743467b32c4c38b1c3efab5ff74a54c58690..165a93987ac4f3ee3dd3835ebe4bee3260ea012c 100644 (file)
@@ -239,19 +239,19 @@ sub GenerateFiles
        HAVE_CRYPTO_LOCK           => undef,
        HAVE_DECL_FDATASYNC        => 0,
        HAVE_DECL_F_FULLFSYNC      => 0,
-       HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER => undef,
-       HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER    => undef,
+       HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER => 0,
+       HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER    => 0,
        HAVE_DECL_LLVMGETHOSTCPUNAME                => 0,
        HAVE_DECL_LLVMGETHOSTCPUFEATURES            => 0,
        HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN         => 0,
-       HAVE_DECL_POSIX_FADVISE                     => undef,
+       HAVE_DECL_POSIX_FADVISE                     => 0,
        HAVE_DECL_PREADV                            => 0,
        HAVE_DECL_PWRITEV                           => 0,
        HAVE_DECL_RTLD_GLOBAL                       => 0,
        HAVE_DECL_RTLD_NOW                          => 0,
        HAVE_DECL_SIGWAIT                           => 0,
-       HAVE_DECL_STRLCAT                           => undef,
-       HAVE_DECL_STRLCPY                           => undef,
+       HAVE_DECL_STRLCAT                           => 0,
+       HAVE_DECL_STRLCPY                           => 0,
        HAVE_DECL_STRNLEN                           => 1,
        HAVE_DECL_STRTOLL                           => 1,
        HAVE_DECL_STRTOULL                          => 1,