Hi, This is gentle reminder about the patch
Regards, Nikolai Nikolai Merinov <nikolai.meri...@member.fsf.org> writes: > Hi, > > Do I need to make additional changes to the patch? > > Regards, > Nikolai > > On Thu, Mar 14, 2019 at 8:08 PM Nikolai Merinov > <nikolai.meri...@member.fsf.org> wrote: > > Hi, > > During work on a same issue in the libtool code I observed that it's > necessary to fix the _AC_DO macro in same manner in order to pass > compiler checks with flags like CFLAGS='"-Wall"'. > > An updated version of the patch with changes to both _AC_DO and > _AC_DO_STDERR attached. > > Regards, > Nikolai > >From 614d16f92a75a62652dc8c99e872576d9bfb7399 Mon Sep 17 00:00:00 2001 >From: Nikolai Merinov <nikolai.meri...@member.fsf.org> >Date: Thu, 7 Mar 2019 22:33:13 +0500 >Subject: [PATCH] _AC_DO _AC_DO_STDERR: Evaluate argument twice > >The `AC_COMPILE_IFELSE', `AC_LINK_IFELSE', `AC_PREPROC_IFELSE' macros >use the `_AC_DO_STDERR` macro in the following manner: > >> ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' >> _AC_DO_STDERR($ac_compile) > >In order to have same behavior during a configuration stage and during >a compilation stage we should evaluate a passed argument twice: in >second time we'll be able to unquote strings in user-supplied >variables as it happens during make rules execution. > >The `_AC_DO' macro used through the `_AC_DO_VAR' macro in similar >manner in many places and should work by same rules. > >* lib/autoconf/general.m4 (_AC_DO_STDERR): Reuse `_AC_DO_ECHO' trick >to evaluate arguments twice if compile string have no '\"', '`', or >'\\' symbols. > (_AC_DO): Same changes. >* tests/compile.at: Add test for CFLAGS evaluation. >--- > NEWS | 5 +++++ > lib/autoconf/general.m4 | 22 ++++++++++++++++++---- > tests/compile.at | 11 +++++++++++ > 3 files changed, 34 insertions(+), 4 deletions(-) > >diff --git a/NEWS b/NEWS >index efade585..b6d0136a 100644 >--- a/NEWS >+++ b/NEWS >@@ -123,6 +123,11 @@ GNU Autoconf NEWS - User visible changes. > use with multiple languages, rather than forcing all checks in the > language used by the first encounter of the macro. > >+- The _AC_DO_STDERR and _AC_DO macros now evaluate a COMMAND argument >+ twice. This change consolidate behavior for user-supplied arguments >+ between the AC_COMPILE_IFELSE and AC_LINK_IFELSE macros and >+ compilation commands used in makefiles. >+ > ** Man pages for config.guess and config.sub are no longer provided. > They were moved to the master source tree for config.guess and config.sub. > >diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 >index e1d82b54..0af61b2a 100644 >--- a/lib/autoconf/general.m4 >+++ b/lib/autoconf/general.m4 >@@ -2448,16 +2448,30 @@ AS_ECHO(["$ac_try_echo"])]) > # Eval COMMAND, save the exit status in ac_status, and log it. > # For internal use only. > AC_DEFUN([_AC_DO], >-[_AC_RUN_LOG([eval "$1"], >- [_AC_DO_ECHO([$1])])]) >+[m4_if([$1], [$ac_do], [], [ac_do="$1" >+])]dnl >+[[case "(($ac_do" in >+ *\"* | *\`* | *\\*) ac_do_command=\$ac_do;; >+ *) ac_do_command=$ac_do;; >+esac >+eval ac_do_command="\"$ac_do_command\""] >+_AC_RUN_LOG([eval "$ac_do_command"], >+ [_AC_DO_ECHO([$ac_do])])]) > > > # _AC_DO_STDERR(COMMAND) > # ---------------------- > # Like _AC_RUN_LOG_STDERR, but eval (instead of running) COMMAND. > AC_DEFUN([_AC_DO_STDERR], >-[_AC_RUN_LOG_STDERR([eval "$1"], >- [_AC_DO_ECHO([$1])])]) >+[m4_if([$1], [$ac_do_stderr], [], [ac_do_stderr="$1" >+])]dnl >+[[case "(($ac_do_stderr" in >+ *\"* | *\`* | *\\*) ac_do_stderr_command=\$ac_do_stderr;; >+ *) ac_do_stderr_command=$ac_do_stderr;; >+esac >+eval ac_do_stderr_command="\"$ac_do_stderr_command\""] >+_AC_RUN_LOG_STDERR([eval "$ac_do_stderr_command"], >+ [_AC_DO_ECHO([$ac_do_stderr])])]) > > > # _AC_DO_VAR(VARIABLE) >diff --git a/tests/compile.at b/tests/compile.at >index 29374529..9af8cb38 100644 >--- a/tests/compile.at >+++ b/tests/compile.at >@@ -301,6 +301,17 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return 2])], > AT_CHECK_AUTOCONF > AT_CHECK_CONFIGURE([-q]) > >+AT_DATA([configure.ac], >+[[AC_INIT >+AC_PROG_CC >+test x$GCC = xyes && CFLAGS='"-Wall"' >+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [return 0])], [], >+ [AC_MSG_ERROR([compiling trivial program failed])]) >+]]) >+ >+AT_CHECK_AUTOCONF >+AT_CHECK_CONFIGURE([-q]) >+ > AT_CLEANUP > > ## --------------- ## >-- >2.21.0 >