Subject: bug#60962: closed (Re: [bug#60962] [PATCH v3] tests: Fix implicit function declaration in ax/depcomp.sh)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 28 Aug 2023 13:14:03 +0000

Your bug report

#60962: [PATCH v3] tests: Fix implicit function declaration in ax/depcomp.sh

which was filed against the automake-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
60962: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60962
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#60962] [PATCH v3] tests: Fix implicit function declaration in ax/depcomp.sh
From: Karl Berry <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Mon, 28 Aug 2023 07:13:29 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Frédéric,

     [in t/ax/depcomp.sh]
     - Replace the mv operation by a cp operation to ensure that subfoo.h is
       considered being modified.

Thanks for the clear explanation and simple patch :). I (finally)
installed it, just adding a comment, so am closing this. Happy hacking,
Karl

Subject: [PATCH v3] tests: Fix implicit function declaration in ax/depcomp.sh
From: Frédéric Bérat <[email-masked]>
To: [email-masked]
Cc: Frederic Berat <[email-masked]>
Date: Fri, 20 Jan 2023 11:51:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

From: Frederic Berat <[email-masked]>

Change since v2:
 - Replace the mv operation by a cp operation to ensure that subfoo.h is
   considered being modified.

-- 8< --

In depcomp.sh, the following occurs:

1. Files are created so that headers and units are available in
   subdirectories
2. Multiple "make" are executed, while modifying the content of the
   headers, some should fail, others should succeed.
3. At the end, the "sub/subfoo.h" header gets removed.
4. make is executed again, which is expected to succeed.

Yet, with c99, this can't work as the subfoo.h header contains
declaration that are used by foo.c.
Thus, we need to get them back, either by inserting the declaration in
foo.c (or any other header/unit), or by restoring subfoo.h to its
original state.

The later solution seems the easiest path, being less intrusive in
depcomp.sh.
---
 t/ax/depcomp.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/t/ax/depcomp.sh b/t/ax/depcomp.sh
index 7a3ac63a7..c92f7c8df 100644
--- a/t/ax/depcomp.sh
+++ b/t/ax/depcomp.sh
@@ -243,6 +243,7 @@ cat > sub/subfoo.h <<'END'
 #include <stdio.h>
 extern int subfoo (void);
 END
+cp sub/subfoo.h sub/subfoo.save
 
 cat > src/baz.c <<'END'
 #include "baz.h"
@@ -399,8 +400,7 @@ do_test ()
       && rewrite "$srcdir"/sub/subfoo.h echo 'choke me' \
       && not $MAKE \
       && delete "$srcdir"/sub/subfoo.h \
-      && edit "$srcdir"/sub/subfoo.c -e 1d \
-      && edit "$srcdir"/foo.h -e 2d \
+      && cp "$srcdir"/sub/subfoo.save "$srcdir"/sub/subfoo.h \
       && make_ok \
       || r='not ok'
     result_ "$r" "$pfx dependency tracking works"
-- 
2.39.0