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
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>
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
