/[gentoo]/xml/htdocs/doc/en/distcc.xml
Gentoo

Diff of /xml/htdocs/doc/en/distcc.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.32 Revision 1.33
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/distcc.xml,v 1.32 2006/01/25 09:16:29 neysx Exp $ --> 3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/distcc.xml,v 1.33 2006/02/18 23:21:44 nightmorph Exp $ -->
4 4
5<guide link="/doc/en/distcc.xml"> 5<guide link="/doc/en/distcc.xml">
6 6
7<title>Gentoo Distcc Documentation</title> 7<title>Gentoo Distcc Documentation</title>
8 8
9<author title="Author"> 9<author title="Author">
10 <mail link="lisa@gentoo.org">Lisa Seelye</mail> 10 <mail link="lisa@gentoo.org">Lisa Seelye</mail>
11</author> 11</author>
12<author title="Editor"> 12<author title="Editor">
13 <mail link="vapier@gentoo.org">Mike Frysinger</mail> 13 <mail link="vapier@gentoo.org">Mike Frysinger</mail>
14</author> 14</author>
15<author title="Editor"> 15<author title="Editor">
16 <mail link="erwin@gentoo.org">Erwin</mail> 16 <mail link="erwin@gentoo.org">Erwin</mail>
17</author> 17</author>
18<author title="Editor"> 18<author title="Editor">
21<author title="Editor"> 21<author title="Editor">
22 <mail link="pylon@gentoo.org">Lars Weiler</mail> 22 <mail link="pylon@gentoo.org">Lars Weiler</mail>
23</author> 23</author>
24<author title="Reviewer"> 24<author title="Reviewer">
25 <mail link="blubber@gentoo.org">Tiemo Kieft</mail> 25 <mail link="blubber@gentoo.org">Tiemo Kieft</mail>
26</author> 26</author>
27 27
28<abstract> 28<abstract>
29This document serves as a HOWTO for using distcc with Gentoo. 29This document serves as a HOWTO for using distcc with Gentoo.
30</abstract> 30</abstract>
31 31
32<!-- The content of this document is licensed under the CC-BY-SA license --> 32<!-- The content of this document is licensed under the CC-BY-SA license -->
33<!-- See http://creativecommons.org/licenses/by-sa/1.0 --> 33<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
34<license/> 34<license/>
35 35
36<version>1.13</version> 36<version>1.14</version>
37<date>2006-01-25</date> 37<date>2006-02-18</date>
38 38
39<chapter> 39<chapter>
40<title>Introduction</title> 40<title>Introduction</title>
41<section> 41<section>
42<title>What is distcc?</title> 42<title>What is distcc?</title>
43<body> 43<body>
44 44
45<p> 45<p>
46Distcc is a program designed to distribute compiling tasks across a network to 46Distcc is a program designed to distribute compiling tasks across a network to
47participating hosts. It is comprised of a server, <c>distccd</c>, and a client 47participating hosts. It is comprised of a server, <c>distccd</c>, and a client
48program, <c>distcc</c>. Distcc can work transparently with <uri 48program, <c>distcc</c>. Distcc can work transparently with <uri
49link="http://ccache.samba.org">ccache</uri>, Portage, and Automake with a 49link="http://ccache.samba.org">ccache</uri>, Portage, and Automake with a
50little setup. 50little setup.
51</p> 51</p>
52 52
234architecture. This can be as simple as using an Athlon (i686) to build a 234architecture. This can be as simple as using an Athlon (i686) to build a
235program for a K6-2 (i586), or using a Sparc to build a program for a ppc. This 235program for a K6-2 (i586), or using a Sparc to build a program for a ppc. This
236is documented in our <uri link="/doc/en/cross-compiling-distcc.xml">DistCC 236is documented in our <uri link="/doc/en/cross-compiling-distcc.xml">DistCC
237Cross-compiling Guide</uri>. 237Cross-compiling Guide</uri>.
238</p> 238</p>
239 239
240</body> 240</body>
241</section> 241</section>
242</chapter> 242</chapter>
243 243
244<chapter id="bootstrapping"> 244<chapter id="bootstrapping">
245<title>Using Distcc to Bootstrap</title> 245<title>Using Distcc to Bootstrap</title>
246<section> 246<section>
247<title>Step 1: Configure Portage</title> 247<title>Step 1: Configure Portage</title>
248<body> 248<body>
249 249<!--
250Note that this will need to become a link to the old 2005.1 networked handbooks
251once the 2006.0 handbooks are released. Until then, the link can stay.
252-->
250<p> 253<p>
251Boot your new box with a Gentoo Linux LiveCD and follow the <uri 254Boot your new box with a Gentoo Linux LiveCD and follow the <uri
252link="/doc/en/handbook/handbook-x86.xml?part=1">installation instructions</uri> 255link="/doc/en/handbook/handbook-x86.xml?part=1">installation instructions</uri>
256up until the bootstrapping part. (See the <uri
257link="http://www.gentoo.org/doc/en/faq.xml#stage12">Gentoo FAQ</uri> for more
253up until the bootstrapping part. Then configure Portage to use distcc: 258information about bootstrapping.) Then configure Portage to use distcc:
254</p> 259</p>
255 260
256<pre caption="Preliminary Setup"> 261<pre caption="Preliminary Setup">
257# <i>nano -w /etc/make.conf</i> 262# <i>nano -w /etc/make.conf</i>
258<comment>(Add distcc to the FEATURES</comment> 263<comment>(Add distcc to the FEATURES</comment>
259FEATURES="distcc" 264FEATURES="distcc"
260<comment>(Modify MAKEOPTS to include -jN, where N is twice the number of CPUs 265<comment>(Modify MAKEOPTS to include -jN, where N is twice the number of CPUs
261+1 available)</comment> 266+1 available)</comment>
262MAKEOPTS="-jN" 267MAKEOPTS="-jN"
263</pre> 268</pre>
264 269
265<pre caption="Setting your path"> 270<pre caption="Setting your path">
266# <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i> 271# <i>export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"</i>
267</pre> 272</pre>
268 273
321</p> 326</p>
322 327
323<note> 328<note>
324During bootstrap and <c>emerge system</c> distcc may not appear to be used. 329During bootstrap and <c>emerge system</c> distcc may not appear to be used.
325This is expected as some ebuilds do not work well with distcc, so they 330This is expected as some ebuilds do not work well with distcc, so they
326intentionally disable it. 331intentionally disable it.
327</note> 332</note>
328 333
329</body> 334</body>
330</section> 335</section>
331</chapter> 336</chapter>
332 337
333<chapter> 338<chapter>
334<title>Troubleshooting</title> 339<title>Troubleshooting</title>
335<section> 340<section>
336<title>Mozilla and Xfree</title> 341<title>Mozilla and Xorg</title>
337<body> 342<body>
338 343
339<p> 344<p>
340As you emerge various packages, you'll notice that some of them aren't being 345As you emerge various packages, you'll notice that some of them aren't being
341distributed (and aren't being built in parallel). This is because the 346distributed (and aren't being built in parallel). This is because the
342developers of the Mozilla and Xfree ebuilds intentionally disable parallel 347developers of the Mozilla and Xorg-X11 ebuilds intentionally disable parallel
343building because it is known to cause problems. 348building because it is known to cause problems.
344</p> 349</p>
345 350
346<p> 351<p>
347Sometimes distcc might cause a package to fail to compile. If this happens 352Sometimes distcc might cause a package to fail to compile. If this happens
348for you, please <uri link="http://bugs.gentoo.org">report</uri> it to us. 353for you, please <uri link="http://bugs.gentoo.org">report</uri> it to us.
349</p>
350
351</body>
352</section>
353<section>
354<title>A Mixture of hardened-gcc and non-hardened-gcc Hosts Will Be Faulty</title>
355<body>
356
357<p>
358With such a long title any explanation here is almost irrelevent. However, if
359you plan to use distcc across hosts that have the <uri
360link="/proj/en/hardened/etdyn-ssp.xml">PaX/hardened-gcc</uri> and some that do
361not, you will run into problems.
362</p>
363
364<p>
365The solution requires a little foresight on your part; you have to run
366<c>hardened-gcc -R</c> on the host that has PaX/hardened-gcc, or you have to
367enable PaX protections in your kernel and <c>emerge hardened-gcc</c>. Both of
368which are a good thing to do since for the most part the protections offered
369by both packages is a good thing and is transparent to the user.
370</p> 354</p>
371 355
372</body> 356</body>
373</section> 357</section>
374<section> 358<section>
375<title>Mixed GCC Versions</title> 359<title>Mixed GCC Versions</title>
376<body> 360<body>
377 361
378<p> 362<p>
379If you have different GCC versions on your hosts, there will likely be very 363If you have different GCC versions on your hosts, there will likely be very
380weird problems. The solution is to make certain all hosts have the same GCC 364weird problems. The solution is to make certain all hosts have the same GCC
381version. 365version.
382</p> 366</p>
383 367
384<p> 368<p>

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33

  ViewVC Help
Powered by ViewVC 1.1.20