view DOCS/gcc-2.96-3.0.html @ 5013:52c008dd6e93

min() moved out of #if, applied brightness/contrast patch by Brian J. Murrell
author arpi
date Sun, 10 Mar 2002 03:36:16 +0000
parents b4c4d1abb7a4
children 93c65f130dd6
line wrap: on
line source

<HTML>

<HEAD>
<STYLE>
	.text
		{font-family	:	Verdana, Arial, Helvetica, sans-serif;
		font-size	:	14px;}
</STYLE>
</HEAD>

<BODY BGCOLOR=WHITE>
<FONT CLASS="text">

<P>
<B>Question:</B> What is GCC 2.96 ? I can't find it at GNU site.
</P>

<P>
<B>Answer:</B> Read the <A HREF="http://gcc.gnu.org/gcc-2.96.html">official answer from GNU GCC team.</A>
</P>

<P>
<B>Question:</B> What is the problem with GCC 2.96 ? And with 3.x ?
</P>

<P>
<B>Answer:</B>
</P>

<P>Read in MySQL documentation :</P>

<P><I>
  Compiler Advisory: Several of our users have reported random crashes and
  table corruption with MySQL binaries compiled with gcc two-dot-nine-six on
  the x86 Linux platform. Although we were unable to duplicate the problems
  ourselves or understand their exact cause, we suspect with a great degree of
  confidence that the problem was compiler related. Replacing the faulty binary
  with our binary always eliminated the problem.
</I></P>

<P>
And for the people, who periodically asks what are the exact problems with
gcc 2.96, my answer: <I>we don't know exactly.</I> 
There were various problems and new problems / bugs come up periodically.
It is <I>not a single bug/problem</I>. We just see various bugreports, mostly
gcc internal bugs, compiler syntax errors in source or bad code compiled. They
all are solved using different version of gcc. I understand that gcc 2.96
has different default optimization flags and they conflicts with our inline
asm code, but we can't fix them, and we really don't want to fix them as they
work with other compilers or gcc versions, and the fix may cause speed loss.
</P>

<P>
I think that the gcc 2.96 should be fixed to be option-compatible with other
releases, but redhat guys refused to do it. If someone interested - ask
Eugene K., avifile author, he has a long mailing with them, because they had
the same problems with avifile. Finally he changed avifile source to
<I>workaround</I> gcc 2.96 bugs...
We simply has no interest and time to do it.
</P>

<P>
Ah, and about the pipe-in-comment bug: it wasn't really our bug.
I've talked one of gcc maintainers, and he told me that gcc 2.96 and 3.x
supports intel asm syntax, and it caused the pipe bug. But it <I>is</I> a bug,
because gcc <I>silently</I>, without any warning, ignored the whole asm block!
</P>

<P>
Other gcc 3.x problems comes from broken libstdc++ or glibc header (std_*.h)
installation. They are not our fault. MPlayer compiles and works well with
gcc 2.95.3 (<B>MEncoder</B> won't work with 2.95.2 because it miscompiles
some MMX instructions). <B>2.96 and 3.0.x are broken</B>, but it depends on
many environment elements, including gcc 2.96 release number, enabled mplayer
features, etc. <I>If it works for you using gcc 2.96, it doesn't mean it will
work for everyone.</I>
</P>

<P><B>Answer 2:</B></P>

<P>
Also read <A HREF="users_against_developers.html">this</A> text !!!</P>

<P>
<B>Question:</B> No! You are wrong! Everything works with gcc 2.96 <I>but</I> MPlayer !
</P>

<P>
<B>Answer:</B>
</P>

<P>
No. You are wrong!
Several projects (mostly which contain highly optimized inline asm code)
had problems with gcc 2.96. For example: avifile, MESA / DRI, Wine, ffmpeg,
lame, NuppelVideo, MySQL. But other projects already workarounded gcc bugs
(changed code which triggered compiler bugs) so they work for now.
</P>

<P>
<B>Question:</B> No! You are wrong! Everything works with gcc 2.96 <I>including</I> MPlayer .
</P>

<P>
<B>Answer:</B>
</P>

Good. Be happy. But you must know, it depends on many environment
elements, including gcc 2.96 release number, enabled mplayer features, etc.
<I>If it works for you using gcc 2.96, it doesn't mean it will work for everyone!</I>
It only means that you are lucky, until you find a problem. But don't forget the
<B>No.1 rule of gcc 2.96 users: NEVER REPORT BUGS OR PROBLEMS IF YOU ARE USING GCC 2.96</B> !

<P>
<B>Question:</B> Ok. Understood. But I want to give it a try... how to compile with gcc 2.96?
</P>

<P>
<B>Answer:</B> Really? Are you sure? Ok. You know... here it is: ./configure --disable-gcc-checking
</P>

<P>
<B>Question:</B> No! I don't agree with you, because ...
</P>

<P>
<B>Answer:</B> It doesn't matter. Keep your comments to yourself. We're not interested in gcc 2.96 stories.
</P>

</FONT>
</BODY>
</HTML>