<!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 Tue, 2010-02-02 at 17:34 -0800, Jeremy Huddleston wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Feb 2, 2010, at 17:11, Gaetan Nadon wrote:

&gt; On Tue, 2010-02-02 at 14:00 -0800, Jeremy Huddleston wrote:
&gt; 
&gt;&gt; On Feb 2, 2010, at 13:18, Gaetan Nadon wrote:
&gt;&gt; 
&gt;&gt;&gt; I have not seen any compelling reasons to turn off this optimization.
&gt;&gt;&gt; Maybe 10 years ago when it was first introduced. I have seen reports of
&gt;&gt;&gt; large number of warnings, but from older gcc versions. As it is today,
&gt;&gt;&gt; we are losing some optimization that could be beneficial.
&gt;&gt;&gt; 
&gt;&gt;&gt; This option has been there for so long (most likely copied along), I
&gt;&gt;&gt; doubt you will will get a clear answer for each of the 240 xorg modules.
&gt;&gt;&gt; It would take a few modules to try it out first.
&gt;&gt; 
&gt;&gt; I see it in libX11 has historically used -fno-strict-aliasing:
&gt;&gt; <A HREF="http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=db7c6fdeeaef9475458498e4cf09d6b1329e9aa3">http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=db7c6fdeeaef9475458498e4cf09d6b1329e9aa3</A>
&gt;&gt; 
&gt;&gt; but adding XORG_CWARNFLAGS to XORG_DEFAULT_OPTIONS has caused this to change for other modules.
&gt;&gt; 
&gt;&gt; Looking at historic versions of modules, I see it present in:
&gt;&gt; 
&gt;&gt; libICE
&gt;&gt; libSM
&gt;&gt; libX11
&gt;&gt; libXau
&gt;&gt; libXfont
&gt;&gt; libXft
&gt;&gt; libXpm
&gt;&gt; libXres
&gt;&gt; xorg-server
&gt;&gt; 
&gt;&gt; of course most of these seem to have just copied the entire GCC_WARNINGS block and probably didn't actually need -fno-strict-aliasing
&gt; 
&gt; Of course. Whatever the reasons were, if anyone remembers, may not apply
&gt; anymore. Devising a plan for it's removal will not be an easy task. I
&gt; see 3 options:
&gt; 
&gt; 1) take it out of macros, 1 patch

I sent that patch already.

&gt; 2) transfer it to all makefiles and then removing it gradually, that's
&gt; 2*240 +1 patches

I don't think that's wise.  If anything, you should just put it in the ones where it was prior to XORG_CWARNFLAGS (the 9 mentioned above).

That being said, I also enabled the warning which should mention when it discovers code sensitive to the -fstrict-aliasing optimization, and none of the libs in the list above spewed such a warning.

&gt; 3) override in 'n' makefiles until proven safe. Then take it out macros.
&gt; That's 2*n +1 patches.

We could do that for the 9 modules above.  I'm fairly confident that the libs don't need it, but I haven't rebuilt all of the server to be confident it doesn't spew any warnings about strict-aliasing.
</PRE>
</BLOCKQUOTE>
<BR>
<PRE>
Oh, just 9. It thought these were just examples and that there were many more. I noticed the patch later, sorry. I had a quick look in xserver and I saw some warnings, as expected.
</PRE>
</BODY>
</HTML>