<!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 Wed, 2011-01-19 at 12:51 -0800, Dan Nicholson wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
<BR>
<TT><FONT COLOR="#1a1a1a">This seems like more of a problem with the macros. I don't know why</FONT></TT><BR>
<TT><FONT COLOR="#1a1a1a">XORG_STRICT_OPTION doesn't just AC_REQUIRE AC_PROG_CC so that we don't</FONT></TT><BR>
<TT><FONT COLOR="#1a1a1a">get these kinds of issues.</FONT></TT><BR>
</BLOCKQUOTE>
I have not found a way to avoid these issues. The last call wins.<BR>
If C99 is invoked before AC_REQUIRE C89, C89 will win simply because<BR>
it is not C99. They don't know about each other, even if some of the work they<BR>
do is cached and reused by the other.<BR>
<BLOCKQUOTE TYPE=CITE>
<TT><FONT COLOR="#1a1a1a"> However, for this particular case I think</FONT></TT><BR>
<TT><FONT COLOR="#1a1a1a">it would be better if we just moved the XORG_DEFAULT_OPTIONS call</FONT></TT><BR>
<TT><FONT COLOR="#1a1a1a">below AC_PROG_CC.</FONT></TT><BR>
</BLOCKQUOTE>
The statements become order sensitive, which is hard to maintain, even<BR>
when commented. The day will come where there will be a dead lock.<BR>
<BLOCKQUOTE TYPE=CITE>
<TT><FONT COLOR="#1a1a1a"> If we comment or remove AC_PROG_CC, then it becomes</FONT></TT><BR>
<TT><FONT COLOR="#1a1a1a">really unclear that we're getting it implicitly through</FONT></TT><BR>
<TT><FONT COLOR="#1a1a1a">XORG_DEFAULT_OPTIONS.</FONT></TT><BR>
<BR>
</BLOCKQUOTE>
This is also true for any macro that is being invoked from XORG_DEFAULT_OPTIONS.<BR>
<BR>
The XORG_STRICT_OPTION was intended to "enforce" C99 by virtue of inclusion<BR>
in configure.ac. It ceased to be "optional" once it got included in XORG_DEFAULT_OPTIONS.<BR>
<BR>
Other comments from reviewers so far indicate there is no objections to C99,<BR>
with some pros and cons.<BR>
<BR>
The reason why AC_PROG_CC are removed is for the module to be compiled C99.<BR>
<BR>
If we find something better to do, it should be applied to all 240 modules, unless there<BR>
is a reason to configure the modules with different compiler levels.<BR>
<BR>
To find out which version it is compiled with:
<BLOCKQUOTE>
<PRE>
grep "^CC=" `find . -name config.log -type f -print`
</PRE>
</BLOCKQUOTE>
<BR>
For a C99:
<BLOCKQUOTE>
<PRE>
CC='gcc -std=gnu99'
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>