<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Sun, 2010-08-29 at 16:35 +0200, Mark Kettenis wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#1a1a1a">I'm confused here.&nbsp; Why does xdm (or anything in Xorg for that matter)</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">use AC_PROG_C_C99?&nbsp; Things are still supposed to compile with a C89</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">compiler with a minimal set of C99 extensions.&nbsp; And surely if C99 is</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">requested, we want standard C99 and not the GNU dialect implied by</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">-std=gnu99?</FONT></TT><BR>
    <BR>
</BLOCKQUOTE>
<BR>
It began with the addition of the XORG_STRICT_OPTION<BR>
<A HREF="http://cgit.freedesktop.org/xorg/util/macros/commit/?id=3b7dd69d0bf6bc19f0e4403bb6611de87497aac3">http://cgit.freedesktop.org/xorg/util/macros/commit/?id=3b7dd69d0bf6bc19f0e4403bb6611de87497aac3</A><BR>
<BR>
<BR>
<BLOCKQUOTE>
<PRE>
Add XORG_STRICT_OPTION macro for strict compilation option
</PRE>
</BLOCKQUOTE>
<BLOCKQUOTE>
<PRE>
Strict compilation option can be used to get rid of warnings that often are showing
real hidden bug in code. That just waits to cause problems.

CWARNFLAGS has to be added to AM_C(PP)FLAGS to use strict compilation mode
in Makefile.am. Automatic addition to compiler flags would cause some configure
checks fail. 

Signed-off-by: Peter Hutterer &lt;<A HREF="mailto:peter.hutterer@who-t.ne">peter.hutterer@who-t.ne</A>t&gt;
</PRE>
</BLOCKQUOTE>
<BR>
This macro is included in XORG_DEFAULTS, but it is canceled out by AC_PROG_CC when it is present in a module.<BR>
A survey showed about half the modules were 89 and the other were 99.<BR>
<BR>
I have no personal opinion on that matter, I am following what appears to be the main path. I don't know what the situation was prior to the introduction of XORG_STRICT_OPTION. I just did a grep and no module has the <TT><FONT COLOR="#1a1a1a">AC_PROG_C_C99</FONT></TT> macro. That means about half the moduls did not specify anything and got AC_PROG_CC by default through libtool or something like that.<BR>
<BR>
According to the comment, it attempts to select the C99 mode of the installed compiler.<BR>
<BR>
<BLOCKQUOTE>
<PRE>
# _AC_PROG_CC_C99 ([ACTION-IF-AVAILABLE], [ACTION-IF-UNAVAILABLE])
# ----------------------------------------------------------------
# If the C compiler is not in ISO C99 mode by default, try to add an
# option to output variable CC to make it so.&nbsp; This macro tries
# various options that select ISO C99 on some system or another.&nbsp; It
# considers the compiler to be in ISO C99 mode if it handles _Bool,
# // comments, flexible array members, inline, long long int, mixed
# code and declarations, named initialization of structs, restrict,
# va_copy, varargs macros, variable declarations in for loops and
# variable length arrays.

GCC                -std=gnu99 (unused restrictive modes: -std=c99 -std=iso9899:1999)
AIX                -qlanglvl=extc99 (unused restrictive mode: -qlanglvl=stdc99)
HP cc                -AC99
Intel ICC        -std=c99, -c99 (deprecated)
IRIX                -c99
Solaris                -xc99=all (Forte Developer 7 C mishandles -xc99 on Solaris 9,
                as it incorrectly assumes C99 semantics for library functions)
Tru64                -c99
</PRE>
</BLOCKQUOTE>
<BR>
Gaetan
</BODY>
</HTML>