[mythtv] [patch] mythtv-HOWTO-5.html - compiling for different processors

Daniel Thor Kristjansson danielk at mrl.nyu.edu
Tue Dec 28 19:03:17 UTC 2004


This patches the documentation to tell people how to compile for 
different intel compatible processors, with the required changes (such 
as for a C3) highlighted. This also tells people what to do if their 
gcc does not explicitly support their processor.

This does not tell people how to compile for PowerPC, since I don't 
know how to do this.

-- Daniel
-------------- next part --------------
Index: docs/mythtv-HOWTO-5.html
===================================================================
RCS file: /var/lib/mythcvs/mythtv/docs/mythtv-HOWTO-5.html,v
retrieving revision 1.74
diff -u -r1.74 mythtv-HOWTO-5.html
--- docs/mythtv-HOWTO-5.html	21 Dec 2004 04:10:35 -0000	1.74
+++ docs/mythtv-HOWTO-5.html	28 Dec 2004 19:03:02 -0000
@@ -82,35 +82,71 @@
 <A HREF="http://lame.sourceforge.net/">http://lame.sourceforge.net/</A>.  Download the source code to v3.93.1
 by following the links from "About".</P>
 
-<H2><A NAME="nonintelcpu_"></A> <A NAME="ss5.1">5.1</A> <A HREF="mythtv-HOWTO.html#toc5.1">Notes on compiling on a system with non-Intel processors </A>
+<H2><A NAME="cpuspecificoptimizations_"></A> <A NAME="ss5.1">5.1</A> <A HREF="mythtv-HOWTO.html#toc5.1">Notes on compiling for different processors</A>
 </H2>
 
-<P>If you've got a system with an AMD K6-2 or a VIA C3 processor, make the
-following change in the <CODE>settings.pro</CODE> file.</P>
-<P>Look for 
-<PRE>
--march=pentiumpro
-</PRE>
- 
-and replace it with
-<PRE>
--march=i586
-</PRE>
- 
-before you compile.</P>
-<P>Recent AMD processors, like the Duron, Thunderbird and Athlon don't need this
-change.</P>
-<P>If you have an AMD64, look for 
-<PRE>
--march=pentiumpro
-</PRE>
- 
-and replace it with
-<PRE>
--march=opteron
-</PRE>
- 
-before you compile.</P>
+<P>By default MythTV is compiled for a pentiumpro or i686 processor, this generates good code for most CPUs,
+but does not take advantage of MMX, or SSE if available, and does not work with recent processors that are
+compatible with older Intel processors, such as the Via or IDT low power processors. So you may wish to, or
+need to, change this before compiling. The flags in bold are required if you have that CPU.</P>
+
+<P>If you hace a system with an AMD processor change the following in the <CODE>settings.pro</CODE> file.
+Replace <TT>-march=pentiumpro</TT> before you compile with one of the following:
+<DL>
+<DT><TT><B>-march=K6   </B></TT></DT><DD>for the AMD K6 with MMX (i586 compatible)</DD>
+<DT><TT><B>-march=K6-2 </B></TT></DT><DD>for the AMD K6 CPU with MMX and 3dNOW! (i586 compatible)</DD>
+<DT><TT>-march=athlon      </TT></DT><DD>for the AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and some of SSE. (pentium2 compatible)</DD>
+<DT><TT>-march=athlon-xp   </TT></DT><DD>for the AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE. (pentium3 compatible)</DD>
+<DT><TT>-march=k8          </TT></DT><DD>for the AMD K8 core based CPUs with x86-64 instruction set support
+                                         with MMX, 3dNOW!, enhanced 3dNOW!, SSE and SSE2. (pentium4 compatible)</DD>
+</DL>
+</P>
+
+<BR></BR>
+
+<P>If you have a Via processor change the following in the <CODE>settings.pro</CODE> file.
+Replace <TT>-march=pentiumpro</TT> before you compile with one of the following:
+<DL>
+<DT><TT><B>-march=c3   </B></TT></DT><DD>for the Via C3 CPU with MMX and 3dNOW! instruction set support. (pentium-mmx compatible)</DD>
+<DT><TT><B>-march=c3-2 </B></TT></DT><DD>for the Via C3-2 CPU with MMX and SSE instruction set support. (pentium2 compatible)</DD>
+</DL>
+</P>
+
+<BR></BR>
+
+<P>If you have a IDT Winchip processor change the following in the <CODE>settings.pro</CODE> file.
+Replace <TT>-march=pentiumpro</TT> before you compile with one of the following:
+<DL>
+<DT><TT><B>-march=winchip-c6</B></TT></DT><DD>for the IDT Winchip C6 CPU with MMX (i486 compatible)</DD>
+<DT><TT><B>-march=winchip2  </B></TT></DT><DD>for the IDT Winchip2 CPU, with MMX and 3dNOW! (i486 compatible)</DD>
+</DL>
+</P>
+
+<BR></BR>
+
+<P>Finally, if you have an Intel processor other than the Pentium Pro you may wish to specify this as well.
+Replace <TT>-march=pentiumpro</TT> before you compile with one of the following:
+<DL>
+<DT><TT><B>-march=i586        </B></TT></DT><DD>for the Intel Pentium CPU without MMX</DD>
+<DT><TT><B>-march=pentium-mmx </B></TT></DT><DD>for the Intel PentiumMMX CPU based on Pentium core with MMX</DD>
+<DT><TT>-march=pentium2    </TT></DT><DD>for the Intel Pentium2 CPU based on PentiumPro core with MMX</DD>
+<DT><TT>-march=pentium3    </TT></DT><DD>for the Intel Pentium3 CPU based on PentiumPro core with MMX and SSE</DD>
+<DT><TT>-march=pentium-m   </TT></DT><DD>for the Low power version of Intel Pentium3 CPU with MMX, SSE and SSE2</DD>
+<DT><TT>-march=pentium4    </TT></DT><DD>for the Intel Pentium4 CPU with MMX, SSE and SSE2</DD>
+<DT><TT>-march=prescott    </TT></DT><DD>for the Intel Pentium4 CPU with MMX, SSE, SSE2 and SSE3</DD>
+<DT><TT>-march=nocona      </TT></DT><DD>for the Intel Pentium4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3</DD>
+</DL>
+</P>
+
+<BR></BR>
+
+<P>For the best performance, you may wish to modify the compile options in 
+<CODE>libs/libavcodec/libavcodec.pro</CODE>, and <CODE>libs/libavformat/libavformat.pro</CODE> as well,
+and include <TT>-mfpmath=sse</TT> in the compile options, if your processor supports SSE instructions.</P>
+
+<P>NOTE: If your version of gcc does not support your processor, choose the most recent processor supported
+by your compiler and add any extra features, for instance the <CODE>-march=winchip-c6</CODE> would become
+<CODE>-march=i486 -mmmx</CODE> for the IDT Winchip C6 CPU.</P>
 
 <H2><A NAME="ss5.2">5.2</A> <A HREF="mythtv-HOWTO.html#toc5.2">Building LAME</A>
 </H2>


More information about the mythtv-dev mailing list