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/