AC_REPLACE_FUNCS: restore shell loop for non-literal

* lib/autoconf/functions.m4 (AC_REPLACE_FUNCS): Handle
non-literals, which was lost in 2010-02-26 optimization.
* tests/semantics.at (AC_REPLACE_FUNCS): Enhance test.
* NEWS: Document the fix.
* THANKS: Update.
Reported by Wiseman Jun.

Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Eric Blake 2010-09-21 17:00:09 -06:00
parent 13418cc969
commit 043b96c5db
5 changed files with 31 additions and 7 deletions

View File

@ -1,5 +1,13 @@
2010-09-21 Eric Blake <eblake@redhat.com>
AC_REPLACE_FUNCS: restore shell loop for non-literal
* lib/autoconf/functions.m4 (AC_REPLACE_FUNCS): Handle
non-literals, which was lost in 2010-02-26 optimization.
* tests/semantics.at (AC_REPLACE_FUNCS): Enhance test.
* NEWS: Document the fix.
* THANKS: Update.
Reported by Wiseman Jun.
maint: resync upstream files
* build-aux/gendocs.sh: Resync via 'make fetch'.

10
NEWS
View File

@ -5,12 +5,16 @@ GNU Autoconf NEWS - User visible changes.
** AC_MSG_ERROR (and AS_ERROR) can once again be followed immediately by
`dnl'. Regression introduced in 2.66.
** AT_BANNER() with empty argument will cause visual separation from previous
test category.
** AC_INIT again allows URLs with '?' for its BUG-REPORT argument.
Regression introduced in 2.66.
** AC_REPLACE_FUNCS again allows a non-literal argument, such as a shell
variable that expands to a list of functions to check. Regression
introduced in 2.66.
** AT_BANNER() with empty argument will cause visual separation from previous
test category.
** The macros AC_PREPROC_IFELSE, AC_COMPILE_IFELSE, AC_LINK_IFELSE, and
AC_RUN_IFELSE now warn if the first argument failed to use
AC_LANG_SOURCE or AC_LANG_PROGRAM to generate the conftest file

1
THANKS
View File

@ -414,6 +414,7 @@ Wayne Chapeskie waynec@spinnaker.com
Werner Lemberg wl@gnu.org
Wilfredo Sanchez wsanchez@apple.com
William Pursell bill.pursell@gmail.com
Wiseman Jun junwiseman@gmail.com
Wolfgang Mueller Wolfgang.Mueller@cui.unige.ch
Yaakov Selkowitz yselkowitz@users.sourceforge.net
Yavor Doganov yavor@gnu.org

View File

@ -131,8 +131,12 @@ m4_define([_AC_REPLACE_FUNC],
# equivalent of AC_CHECK_FUNC, then call AC_LIBOBJ if the function
# was not found.
AC_DEFUN([AC_REPLACE_FUNCS],
[AS_LITERAL_IF([$1],
[m4_map_args_w([$1], [_AC_REPLACE_FUNC(], [)
])])
])],
[AC_CHECK_FUNCS([$1],
[_AH_CHECK_FUNC([$ac_func])AC_DEFINE(AS_TR_CPP([HAVE_$ac_func]))],
[_AC_LIBOBJ([$ac_func])])])])
# AC_TRY_LINK_FUNC(FUNC, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)

View File

@ -176,8 +176,13 @@ AT_DATA([config.in],
])
AT_CONFIGURE_AC(
[AC_CONFIG_FILES(config.libobjs:config.in)
AC_REPLACE_FUNCS(printf autoconf_ftnirp)])
[AC_CONFIG_FILES([config.libobjs:config.in])
AC_REPLACE_FUNCS([printf autoconf_ftnirp])
funcs='fprintf autoconf_ftnirpf'
AH_TEMPLATE([HAVE_FPRINTF], [])
AH_TEMPLATE([HAVE_AUTOCONF_FTNIRPF], [])
AC_REPLACE_FUNCS([$funcs])
AS_UNSET([funcs])])
AT_CHECK_AUTOCONF([-W obsolete])
AT_CHECK_AUTOHEADER
@ -185,11 +190,13 @@ AT_CHECK_CONFIGURE
AT_CHECK_ENV
AT_CHECK_DEFINES(
[/* #undef HAVE_AUTOCONF_FTNIRP */
/* #undef HAVE_AUTOCONF_FTNIRPF */
#define HAVE_FPRINTF 1
#define HAVE_PRINTF 1
])
AT_CHECK([sed 's/ */ /g;s/^ //;s/ $//' config.libobjs], [],
[${LIBOBJDIR}autoconf_ftnirp$U.o
[${LIBOBJDIR}autoconf_ftnirp$U.o ${LIBOBJDIR}autoconf_ftnirpf$U.o
])
AT_CLEANUP