Question: What is GCC 2.96 ? I can't find it at the GNU site.

Answer: Read the official answer from GNU GCC team.

Question: What is the problem with GCC 2.96 ? And with 3.x ?

Answer:

Read in MySQL documentation :

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.

And for the people who periodically ask what the exact problems with gcc 2.96 are, my answer: We don't know exactly. There were various problems and new problems / bugs come up periodically. It is not a single bug/problem. We just see various bug reports, mostly gcc internal bugs, compiler syntax errors in source or bad code compiled. They are all solved by using a different version of gcc. I understand that gcc 2.96 has different default optimization flags and they conflict 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.

I think that gcc 2.96 should be fixed to be option-compatible with other releases, but Red Hat guys refused to do it. If someone is 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 work around gcc 2.96 bugs... We simply have no interest and time to do it.

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

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

Answer 2:

Also read this text !!!

Question: No! You are wrong! Everything works with gcc 2.96 but MPlayer !

Answer:

No. You are wrong! Several projects (mostly those 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 worked around gcc bugs (changed code which triggered compiler bugs) so they work for now.

Question: No! You are wrong! Everything works with gcc 2.96 including MPlayer .

Answer:

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

Question: OK. Understood. But I want to give it a try... how to compile with gcc 2.96?

Answer: Really? Are you sure? OK. You know... here it is: ./configure --disable-gcc-checking

Question: No! I don't agree with you, because ...

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