1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>E.1.�GCC 2.96</title><link rel="stylesheet" href="default.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="index.html" title="MPlayer - The Movie Player"><link rel="up" href="users-vs-dev.html" title="Appendix�E.�Developer cries"><link rel="prev" href="users-vs-dev.html" title="Appendix�E.�Developer cries"><link rel="next" href="mplayer-binary.html" title="E.2.�Binary distribution"><link rel="preface" href="howtoread.html" title="How to read this documentation"><link rel="chapter" href="intro.html" title="Chapter�1.�Introduction"><link rel="chapter" href="install.html" title="Chapter�2.�Installation"><link rel="chapter" href="usage.html" title="Chapter�3.�Usage"><link rel="chapter" href="cd-dvd.html" title="Chapter�4.�CD/DVD usage"><link rel="chapter" href="faq.html" title="Chapter�5.�Frequently Asked Questions"><link rel="chapter" href="containers.html" title="Chapter�6.�Containers"><link rel="chapter" href="codecs.html" title="Chapter�7.�Codecs"><link rel="chapter" href="video.html" title="Chapter�8.�Video output devices"><link rel="chapter" href="audio.html" title="Chapter�9.�Audio output devices"><link rel="chapter" href="tv.html" title="Chapter�10.�TV"><link rel="chapter" href="ports.html" title="Chapter�11.�Ports"><link rel="chapter" href="mencoder.html" title="Chapter�12.�Basic usage of MEncoder"><link rel="chapter" href="encoding-guide.html" title="Chapter�13.�Encoding with MEncoder"><link rel="appendix" href="mailinglists.html" title="Appendix�A.�Mailing lists"><link rel="appendix" href="bugreports.html" title="Appendix�B.�How to report bugs"><link rel="appendix" href="bugs.html" title="Appendix�C.�Known bugs"><link rel="appendix" href="skin.html" title="Appendix�D.�MPlayer skin format"><link rel="appendix" href="users-vs-dev.html" title="Appendix�E.�Developer cries"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">E.1.�GCC 2.96</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="users-vs-dev.html">Prev</a>�</td><th width="60%" align="center">Appendix�E.�Developer cries</th><td width="20%" align="right">�<a accesskey="n" href="mplayer-binary.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="gcc-296"></a>E.1.�GCC 2.96</h2></div></div></div><p><b>The background:�</b>
2
The GCC <span class="bold"><strong>2.95</strong></span> series is an official GNU release and
3
version 2.95.3 of GCC is the most bug-free in that series. We have never
4
noticed compilation problems that we could trace to gcc-2.95.3. Starting
5
with Red Hat Linux 7.0, <span class="bold"><strong>Red Hat</strong></span> included a heavily
6
patched CVS version of GCC in their distribution and named it
7
<span class="bold"><strong>2.96</strong></span>. Red Hat included this version in the
8
distribution because GCC 3.0 was not finished at the time, and they needed
9
a compiler that worked well on all of their supported platforms, including
10
IA64 and s390. The Linux distributor <span class="bold"><strong>Mandrake</strong></span>
11
(now Mandriva) also followed Red Hat's example and started shipping GCC 2.96
12
with their Linux-Mandrake 8.0 series.
13
</p><p><b>The statements:�</b>
14
The GCC team disclaimed any link with GCC 2.96 and issued an
15
<a href="http://gcc.gnu.org/gcc-2.96.html" target="_top">official response</a>
16
to GCC 2.96. Many developers around the world began having problems with
17
GCC 2.96, and several projects,
18
<a href="http://avifile.sf.net/news-old1.htm" target="_top">avifile</a> among them,
19
started recommending other compilers.
20
Other interesting links are
21
<a href="http://www.atnf.csiro.au/people/rgooch/linux/docs/kernel-newsflash.html" target="_top">
22
Linux kernel news flash about kernel 2.4.17</a>
24
<a href="http://www.voy.com/3516/572.html" target="_top">Voy Forum</a>.
25
<span class="application">MPlayer</span> also suffered from intermittent problems
26
that were all solved by switching to a different version of GCC. Several
27
projects started implementing workarounds for some of the 2.96 issues, but
28
we refused to fix other people's bugs, especially since some workarounds
29
may imply a performance penalty.
31
GCC 2.96 does not allow <code class="literal">|</code> (pipe) characters in assembler
32
comments because it supports Intel as well as AT&T Syntax and the
33
<code class="literal">|</code> character is a symbol in the Intel variant. The
34
problem is that it <span class="emphasis"><em>silently</em></span> ignores the whole
35
assembler block. This is supposedly fixed now, GCC prints a warning instead
36
of skipping the block.
37
</p><p><b>The present:�</b>
38
Red Hat says that GCC 2.96-85 and above is fixed. The situation has indeed
39
improved, yet we still see problem reports on our mailing lists that
40
disappear with a different compiler. In any case it does not matter any
41
longer. Hopefully a maturing GCC 3.x will solve the issue for good. If you
42
want to compile with 2.96 give the <tt class="option">--disable-gcc-checking</tt>
43
flag to <tt class="filename">configure</tt>. Remember that you are on your own
44
and <span class="bold"><strong>do not report any bugs</strong></span>. If you do, you will only
45
get banned from our mailing list because we have had more than enough flame
46
wars over GCC 2.96. Please let the matter rest.
48
If you have problems with GCC 2.96, you can get 2.96-85 packages from the
49
Red Hat <a href="ftp://updates.redhat.com" target="_top">ftp server</a>, or just
50
go for the 3.0.4 packages offered for version 7.2 and later. You can also
51
get <a href="ftp://people.redhat.com/jakub/gcc/errata/3.2.3-37/" target="_top">gcc-3.2.3-37 packages</a>
52
(unofficial, but working fine)
53
and you can install them along the gcc-2.96 you already have.
54
<span class="application">MPlayer</span> will detect it and use 3.2 instead of 2.96.
55
If you do not want to or cannot use the binary packages, here is how you can
56
compile GCC 3 from source:
57
</p><div class="procedure"><ol type="1"><li><p>
59
<a href="http://gcc.gnu.org/mirrors.html" target="_top">GCC mirrors page</a>
60
page and download <tt class="filename">gcc-core-<em class="replaceable"><code>XXX</code></em>.tar.gz</tt>
61
where <em class="replaceable"><code>XXX</code></em> is the version number. This includes the complete
62
C compiler and is sufficient for <span class="application">MPlayer</span>. If you also want
63
C++, Java or some of the other advanced GCC features
64
<tt class="filename">gcc-<em class="replaceable"><code>XXX</code></em>.tar.gz</tt> may better suit your needs.
66
Extract the archive with
67
</p><pre class="screen">tar -xvzf gcc-core-<em class="replaceable"><code>XXX</code></em>.tar.gz</pre><p>
69
GCC is not built inside the source directory itself like most programs,
70
but needs a build directory outside the source directory. Thus you need
71
to create this directory via
72
</p><pre class="screen">mkdir gcc-build</pre><p>
74
Then you can proceed to configure gcc in the build directory, but you
75
need the configure from the source directory:
76
</p><pre class="screen">
78
../gcc-3.<em class="replaceable"><code>XXX</code></em>/configure</pre><p>
80
Compile GCC by issuing this command in the build directory:
81
</p><pre class="screen">make bootstrap</pre><p>
83
Now you can install GCC (as root) by typing
84
</p><pre class="screen">make install</pre><p>
85
</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="users-vs-dev.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="users-vs-dev.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="mplayer-binary.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix�E.�Developer cries�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�E.2.�Binary distribution</td></tr></table></div></body></html>