1 |
On Sun, 12 Jan 2014 11:08:18 +0100 |
2 |
Michał Górny <mgorny@g.o> wrote: |
3 |
|
4 |
> Dnia 2014-01-12, o godz. 03:50:53 |
5 |
> Ryan Hill <dirtyepic@g.o> napisał(a): |
6 |
|
7 |
> > Bootstrapping makes distcc impossible, and you can't bootstrap these days |
8 |
> > without building C and C++. Even if you're not bootstrapping, the back and |
9 |
> > middle ends are shared. You have to build them to build the front-ends. |
10 |
> > Maybe you could cut out a couple of the target libraries, so you're really |
11 |
> > not gaining much. |
12 |
|
13 |
> Yes but if C & C++ was installed after it is built, distcc/ccache could |
14 |
> be then used to build the Fortran & GCJ & so on. Of course, there's |
15 |
> another matter of matching gcc versions between hosts but that's just |
16 |
> another problem that needs addressing elsewhere. |
17 |
|
18 |
Unfortunately not, at least for ccache. When a new C compiler is installed, it |
19 |
invalidates the cache that was generated by the previous compiler while building |
20 |
it because ccache hashes the compiler's mtime. Furthermore in stage2/3 you |
21 |
can't use either ccache or distcc. ccache because the mtime has changed again, |
22 |
the command line changes between stages (stage1 is built with minimal flags |
23 |
for speed, stage 2 with normal flags, and stage 3 with -gtoggle to make sure |
24 |
the addition of debug info doesn't change code generation). The build system |
25 |
also bypasses ccache during stage2/3 by directly calling the binary in the |
26 |
build tree (after all, using cached data between stages would kind of defeat |
27 |
the purpose of bootstrapping). I'm less familiar with distcc but if the remote |
28 |
host doesn't have a copy of the just-built compiler I don't think there's much |
29 |
it can do. |
30 |
|
31 |
> Considering that it saves you like 5M? I'd rather keep it enabled. 5M |
32 |
> won't save the day, while waiting extra 2 hours for gcc rebuild because |
33 |
> some package needs Fortran is irritating. And I say two hours because, |
34 |
> say, I had to enable USE=gcj earlier and now I have to rebuild that |
35 |
> huge thing. |
36 |
|
37 |
Okay, good example. No[1] one[2] likes[3] building gcj. |
38 |
|
39 |
[1] http://gcc.gnu.org/ml/gcc/2008-06/msg00425.html |
40 |
[2] http://gcc.gnu.org/ml/gcc/2010-10/msg00506.html |
41 |
[3] http://gcc.gnu.org/ml/gcc/2013-11/msg00153.html |
42 |
|
43 |
|
44 |
-- |
45 |
Ryan Hill psn: dirtyepic_sk |
46 |
gcc-porting/toolchain/wxwidgets @ gentoo.org |
47 |
|
48 |
47C3 6D62 4864 0E49 8E9E 7F92 ED38 BD49 957A 8463 |