[sr #110350] AX_PROG_CC_FOR_BUILD broken with 2.69c

Benjamin Moody <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <[email protected]>
Follow-up Comment #1, sr #110350 (project autoconf):

It's not entirely clear to me what the issue is - is maintaining compatibility
the sticking point, or is it that you want a better API to enable what
AX_PROC_CC_FOR_BUILD did?

I also don't understand what Jannick's proposed solution would be, though my
M4 is not the best.

First of all, how important is it to use AC_DEFUN_ONCE for AC_PROG_CC? 
Autoconf 2.69 does cache the result of AC_PROG_CC, after all.  So maybe the
simplest thing would be to revert that change and keep things working as they
were in 2.69.

If optimizing AC_PROG_CC is necessary, how important is it to preserve
compatibility with the existing AX_PROC_CC_FOR_BUILD macro?  I don't think it
would be too much of a burden to tell people "when you upgrade to Autoconf
2.70, you will also need to get an updated version of
ax_prog_cc_for_build.m4".  Of course, that would rely on there _being_ an
updated ax_prog_cc_for_build.m4 - is there a proposed alternative that would
work in the presence of AC_DEFUN_ONCE'd AC_PROG_CC?

If it's essential both to optimize AC_PROG_CC to avoid multiple expansions,
_and_ to avoid breaking AX_PROC_CC_FOR_BUILD, how ugly is the implementation
allowed to be? :)  It seems to me that you could change AC_PROG_CC to
something like:


AC_DEFUN([AC_PROG_CC],
dnl  If the macro CC is locally defined (e.g. by AX_PROG_CC_FOR_BUILD,
dnl  which defines it as CC_FOR_BUILD), then perform the compiler
dnl  tests each time AC_PROG_CC is invoked.  If CC is undefined, then
dnl  we only want to include the tests once.
[m4_ifdef([CC],
[_AC_PROG_CC_REALLY_I_MEAN_IT($@)],
[_AC_PROG_CC_ONLY_ONCE($@)])])

AC_DEFUN_ONCE([_AC_PROG_CC_ONLY_ONCE],
[_AC_PROG_CC_REALLY_I_MEAN_IT($@)])

AC_DEFUN([_AC_PROG_CC_REALLY_I_MEAN_IT],
[AC_LANG_PUSH(C)dnl
AC_ARG_VAR([CC],     [C compiler command])dnl
AC_ARG_VAR([CFLAGS], [C compiler flags])dnl
...
AC_LANG_POP(C)dnl
])# AC_PROG_CC


I'm sure this could be done much more elegantly, but it seems to work in a
simple test.


    _______________________________________________________

Reply to this item at:

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

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.