summaryrefslogtreecommitdiffstats
path: root/DOCS/gcc-2.96-3.0.html
blob: d4ae3540ba699fcc665300915d26df8a41b7ae96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<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 the 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 ask what the exact problems with
gcc 2.96 are, 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 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.
</P>

<P>
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
<I>work around</I> gcc 2.96 bugs...
We simply have 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 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 <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 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 (<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 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.
</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>