~ubuntu-dev/mplayer/ubuntu-feisty

« back to all changes in this revision

Viewing changes to DOCS/HTML/en/gcc-296.html

  • Committer: William Grant
  • Date: 2007-02-03 03:16:07 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: william.grant@ubuntu.org.au-20070203031607-08gc2ompbz6spt9i
Update to 1.0rc1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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>
23
 
and
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.
30
 
</p><p>
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&amp;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.
47
 
</p><p>
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>
58
 
  Go to the
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.
65
 
  </p></li><li><p>
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>
68
 
  </p></li><li><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>
73
 
  </p></li><li><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">
77
 
cd gcc-build
78
 
../gcc-3.<em class="replaceable"><code>XXX</code></em>/configure</pre><p>
79
 
  </p></li><li><p>
80
 
  Compile GCC by issuing this command in the build directory:
81
 
  </p><pre class="screen">make bootstrap</pre><p>
82
 
  </p></li><li><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>