False failure during repeated windows build.

Поиск
Список
Период
Сортировка
От Kyotaro Horiguchi
Тема False failure during repeated windows build.
Дата
Msg-id 20200218.160500.44393633318853097.horikyota.ntt@gmail.com
обсуждение исходный текст
Ответы Re: False failure during repeated windows build.  (Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>)
Список pgsql-hackers
Hello.

I found it quite annoying that it stops with complaining as "unused
defines" during repeated execution of build.pl. The subroutine
GenerateConfigHeader prepares %defines_copy before checking the
newness of $config_header and even if it decides not to generate new
one, the following code makes sure if the %defines_copy is empty, then
of course it fails with the message.

The attached fixes that.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center
From b276face1b8f7b2e7a3ce9b3060205d6f04a1735 Mon Sep 17 00:00:00 2001
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Date: Tue, 18 Feb 2020 15:29:55 +0900
Subject: [PATCH] Fix behavior for repeated build on Windows.

Even after the function GenerateConfigHeader in Solution.pm decided
not to generate a new file, it wrongly checks for the remaining macro
defintions and stops with failure. Fix it by not doing the check if it
skipped file generation.
---
 src/tools/msvc/Solution.pm | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 8412ef298e..cf16144b02 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -839,13 +839,14 @@ EOF
 sub GenerateConfigHeader
 {
     my ($self, $config_header, $defines, $required) = @_;
-    my %defines_copy = %$defines;
 
     my $config_header_in = $config_header . '.in';
 
     if (IsNewer($config_header, $config_header_in) ||
         IsNewer($config_header, __FILE__))
     {
+        my %defines_copy = %$defines;
+
         open(my $i, '<', $config_header_in)
           || confess "Could not open $config_header_in\n";
         open(my $o, '>', $config_header)
@@ -884,10 +885,11 @@ sub GenerateConfigHeader
         }
         close($o);
         close($i);
-    }
-    if ($required && scalar(keys %defines_copy) > 0)
-    {
-        croak "unused defines: " . join(' ', keys %defines_copy);
+
+        if ($required && scalar(keys %defines_copy) > 0)
+        {
+            croak "unused defines: " . join(' ', keys %defines_copy);
+        }
     }
 }
 
-- 
2.18.2


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: pg_stat_progress_basebackup - progress reporting forpg_basebackup, in the server side
Следующее
От: Ants Aasma
Дата:
Сообщение: Re: Parallel copy