Norman Gray <[EMAIL PROTECTED]> writes:

> Having __STDC__ equal to 0 violates the standard, thus this test is
> giving the wrong result.  I've no idea what these `useful extensions'
> are, and if I did, I'd certainly be sure to avoid them,

Some of these "useful extensions" are <stdio.h> functions like fileno,
which are required by POSIX.  Standard-conforming C implementations
must disabling these functions, since the C standard says that the
following program must work:

#include <stdio.h>
double fileno;

However, as a practical matter, I've found that it's more hassle to
disable functions like fileno than it is to enable them.  Name clashes
like the above are extremely rare in real programs -- they won't
survive in traditional environments, and they won't survive in most
default platforms, as they all (wisely) have decided not to break
existing code.  Conversely, a lot of real-world code uses "fileno"
without using the POSIX-blessed method for attacking this problem.  I
think changing Autoconf to break this real-world code would cause more
problems than it would cure.

That being said, it might be reasonable to define a new Autoconf macro
AC_PROG_CC_STDC_PEDANTIC, or something like that, which tests for 100%
conformance to the C Standard in matters like this.


> There's a current problem: if you process the configure from GNU m4
> 1.4  with autoconf 2.57, and run the resulting ./configure, the
> resulting  Makefile does not have -std1 in the CFLAGS

As far as I can easily tell on my host, that's fixed if one applies
Autoconf 2.59 (the current version) to M4 1.4.2 (the current version).
My understanding is that Autoconf 2.59 will append -std1, that CVS
Autoconf will append -std, and that either will work for M4 1.4.2 on
Tru64.


Reply via email to