1 |
On Sun, 08 Jan 2006 01:50:10 -0600 |
2 |
"Anthony E. Caudel" <acaudel@×××××.com> wrote: |
3 |
|
4 |
> |
5 |
> |
6 |
> So, my problem is, how do I avoid the extra 100, unnecessary compiles? |
7 |
> I tried "emerge --emptytree --upgrade -p" but it ignored the upgrade |
8 |
> option so I can't combine them that way. |
9 |
> |
10 |
|
11 |
Simply put you can't. The base system - emerge -e system, has to be done once and that |
12 |
gets everything in the system profile built with gcc 3.4. However, both gcc and glibc need to |
13 |
be rebuilt again after the first pass, and anything using glibc needs to be rebuilt after glibc |
14 |
has been recompiled, thus the - emerge -e world. |
15 |
|
16 |
Think about it this way - things like binutils and linux-headers are used with gcc-3.4 and the old |
17 |
glibc to rebuild glibc. But the new glibc is different than the old glibc, thus bin-utils is working |
18 |
with pointers to places in glibc that may not exist any more. Thus needs to be rebuilt with |
19 |
the new glibc, as does ncurses, zlib and a ton of other things. One thing you could do to |
20 |
speed up the emerge -e system pass is to add a - USE="-X -doc" to avoid building Xorg on the system |
21 |
pass. |
22 |
|
23 |
Still it take two complete passes to use both the new gcc and the glibc compiled with the new gcc. |
24 |
Look ate the output of emerge -ep system. All those packages before glibc have to be rebuilt after |
25 |
glibc has been rebuilt. And all the packages after glibc that have dependencies on the previous |
26 |
packages have to be rebuilt after the previous packages have been built with the new glibc. |
27 |
|
28 |
This is essentially what occurs during a Stage 1 install and /usr/portage/scripts/bootstrap.sh is |
29 |
run - multiple passes, rebuilding the system profile in a specific sequence. |
30 |
|
31 |
Bob |
32 |
- |
33 |
-- |
34 |
gentoo-user@g.o mailing list |