URL:
  <https://savannah.gnu.org/support/?110886>

                 Summary: autoupdate produces broken configure.ac
                   Group: Autoconf
               Submitter: apteryx
               Submitted: Wed 14 Jun 2023 09:41:53 PM EDT
                Category: None
                Priority: 5 - Normal
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Wed 14 Jun 2023 09:41:53 PM EDT By: Maxim Cournoyer <apteryx>
Hi,

I've been trying to use autoupdate on the wxWidgets project [0]

[0]  https://github.com/wxWidgets/wxWidgets

It's a good test, being a 8k lines file apparently last updated for Autoconf
2.59.

After fixing a couple of quoting problems with the help of Alfred (ams), I was
able to have it run once happily.  The problem is that the output it produces
then trips it when running again; in other words, it produces a broken
configure.ac file.

It seems the problem has to do with the _au_m4_changequote([,]) it generates,
that are placed before nested AC_TRY_COMPILE or AC_TRY_LINK usages.

Attaches are the Git patches of my debugging session and recorded observations
/ edits.  They can be applied to wxWidgets at commit
1093bb492bc90531162490ba1711f9dba09f59e0.

Here's the first hunk of the recorded 'autoupdate broken substitutions', for
example:

modified   configure.in
@@ -1407,12 +1407,10 @@ dnl This case is for OS X vs. everything else
 case "${host}" in
   *-*-darwin* )
     AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable])
-    AC_TRY_COMPILE([#include <CoreFoundation/CFBase.h>
-],[],
-        [AC_MSG_RESULT([yes])],
-        [AC_MSG_RESULT([no])
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <CoreFoundation/CFBase.h>
+]], [[]])],[AC_MSG_RESULT([yes])],[AC_MSG_RESULT([no])
         AC_MSG_CHECKING([if __CF_USE_FRAMEWORK_INCLUDES__ is required])
-        AC_TRY_COMPILE([#define __CF_USE_FRAMEWORK_INCLUDES__
+        _au_m4_changequote([,])AC_TRY_COMPILE([#define
__CF_USE_FRAMEWORK_INCLUDES__
 #include <CoreFoundation/CFBase.h>
         ],[],
         [AC_MSG_RESULT([yes])
@@ -1421,8 +1419,8 @@ case "${host}" in
         CPPFLAGS="-D__CF_USE_FRAMEWORK_INCLUDES__ $CPPFLAGS"],
         [AC_MSG_FAILURE([no.  CoreFoundation not available.])]
         )
-        ]
-    )
+        
+    ])
   ;;
 esac

You can replay the patches on the mentioned wxWidgets commit above and see for
yourself.  My testing was done using Autoconf 2.71 from GNU Guix at commit
3fc26c6dc4b6bbf558a17b5e3ef8092ea0eeeacd.

I hope that my report is actionable!  Thank you for maintaining this important
(and probably a bit hairy at places) tool.







    _______________________________________________________
File Attachments:


-------------------------------------------------------
Date: Wed 14 Jun 2023 09:41:53 PM EDT  Name:
0001-build-Properly-quote-else-clause-of-AC_TRY_COMPILE.patch  Size: 2KiB  
By: apteryx

<http://savannah.gnu.org/support/download.php?file_id=54836>
-------------------------------------------------------
Date: Wed 14 Jun 2023 09:41:53 PM EDT  Name:
0002-configure.in-Fix-more-quoting-problems.patch  Size: 6KiB   By: apteryx

<http://savannah.gnu.org/support/download.php?file_id=54837>
-------------------------------------------------------
Date: Wed 14 Jun 2023 09:41:53 PM EDT  Name:
0003-autoupdate-valid-substitutions.patch  Size: 38KiB   By: apteryx

<http://savannah.gnu.org/support/download.php?file_id=54838>
-------------------------------------------------------
Date: Wed 14 Jun 2023 09:41:53 PM EDT  Name:
0004-autoupdate-broken-substitutions.patch  Size: 11KiB   By: apteryx

<http://savannah.gnu.org/support/download.php?file_id=54839>

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?110886>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/


Reply via email to