[sr #110369] AC_PROG_CC_C99 is not recognized as empty macro

Sergei Trofimovich <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <[email protected]>
URL:
  <https://savannah.gnu.org/support/?110369>

                 Summary: AC_PROG_CC_C99 is not recognized as empty macro
                 Project: Autoconf
            Submitted by: slyfox
            Submitted on: Ср 11 ноя 2020 08:22:41
                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

    _______________________________________________________

Details:

The configure error originally observed on libzmq project
https://github.com/zeromq/libzmq/blob/master/configure.ac#L67

Here is the minimal single file example:

$ cat configure.ac
AC_PREREQ(2.61)

AC_INIT([zeromq],[4.3.3])

  #
===========================================================================
  #  https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
  #
===========================================================================
  # ...
  #serial 6

  AC_DEFUN([AX_CHECK_COMPILE_FLAG],
  [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
  AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
  AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
    ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
    _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
    AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
      [AS_VAR_SET(CACHEVAR,[yes])],
      [AS_VAR_SET(CACHEVAR,[no])])
    _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
  AS_VAR_IF(CACHEVAR,yes,
    [m4_default([$2], :)],
    [m4_default([$3], :)])
  AS_VAR_POPDEF([CACHEVAR])dnl
  ])dnl AX_CHECK_COMPILE_FLAGS

  # End of
https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html

# Checks for programs.
AC_PROG_CC
AX_CHECK_COMPILE_FLAG([-std=gnu11], [CFLAGS+=" -std=gnu11"],
[AC_PROG_CC_C99])

AC_OUTPUT


Trying to use it fails as:

$ autoconf
configure.ac:31: warning: The macro `' is obsolete.
configure.ac:31: You should run autoupdate.
./lib/autoconf/c.m4:1493: AC_PROG_CC_C99 is expanded from...
lib/m4sugar/m4sh.m4:673: AS_IF is expanded from...
configure.ac:11: AX_CHECK_COMPILE_FLAG is expanded from...
configure.ac:31: the top level

$ ./configure --host=x86_64-pc-linux-gnu
...
checking whether C compiler accepts -std=gnu11... yes
./configure: line 3145: syntax error near unexpected token `fi'
./configure: line 3145: `fi'

There `[AC_PROG_CC_C99]` gets expanded to empty shell text instead of `:`.

Looks like `AC_PROG_CC_C99` definition is not considered to be empty by
`AX_CHECK_COMPILE_FLAG`. I'm not sure if it's a `AX_CHECK_COMPILE_FLAG` macro
bug or deficiency in `AC_PROG_CC_C99` definition.




    _______________________________________________________

Reply to this item at:

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

_______________________________________________
  Сообщение отправлено по 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.