1 |
Ace Dahlmann schrieb: |
2 |
|
3 |
> Hi! |
4 |
> |
5 |
> On Fri, 29 Jul 2005 19:53:01 +0200 |
6 |
> Thomas Schweikle <tps@××××××.de> wrote: |
7 |
> |
8 |
>> Das stört nicht. Wichtig ist nur, dann das Buildsystem *nicht* von |
9 |
>> der Gentoo-Installation auf der "großen" Kiste zu verwenden. |
10 |
> |
11 |
> Wie meinst Du das? |
12 |
> |
13 |
> Ich bin die ganze Zeit ab überlegen, was bei Alex dann genau passiert, |
14 |
> aber ich hab da wohl gerade eine logische Denkblockade. |
15 |
|
16 |
In der Regel werden in einen chroot-Käfig dateien, die im |
17 |
Hauptsystem liegen übernommen. Es wird zum beispiel per "bind" der |
18 |
gesamte "/usr/lib"-Baum gemountet. Damit steht im chroot der gleiche |
19 |
Baum zur verfügung wie im Hauptsystem --- nur üblicherweise als |
20 |
"read only". |
21 |
|
22 |
Für Teile, bei denen das nicht geht wird eine Kopie, oder ein |
23 |
Hardlink im Käfig angelegt. |
24 |
|
25 |
Diese Techniken sparen Platz. Wenn ich jetzt im chroot-Käfig aber |
26 |
eine andere gcc-Version einsetzen will, und sogar für eine andere |
27 |
CPU kompilieren möchte, dann funktioniert das nicht mehr. Ich muß |
28 |
alles was zum build-System gehört im chroot-Käfig nocheinmal haben. |
29 |
Passend zum compiler, den verwendeten Libraries, usw. |
30 |
|
31 |
Für den Fall, das ich für eine andere Architektur (i386 auf |
32 |
athlon-xp) compiliere, muß ich fast das gesamte System im chroot |
33 |
nocheinmal aufsetzen. Der Aufwand ist zimlich hoch. |
34 |
|
35 |
>> Interressant in diesem Zusammenhang: das Buildsystem von NetBSD |
36 |
>> leistet genau so etwas. Es könnte also lohnend sein, sich damit |
37 |
>> auseinanderzusetzen (Gentoo und FreeBSD unterscheiden leider noch |
38 |
>> nicht bei den i386-Prozessoren. P4 ist genauso wie Athlon ein und |
39 |
>> dieselbe Architektur --- auch wenn ein P4-optimiertes Programm auf |
40 |
>> einem 586 garantiert nicht mehr läuft!). |
41 |
> |
42 |
> Höh? Auch das erklär mal bitte genauer. Was genau wird nicht |
43 |
> unterschieden? Und was macht NetBSD da denn anders? |
44 |
|
45 |
In FreeBSD gibt es für alle Intel-586-Kompatiblen CPU nur eine |
46 |
Architektur: i686. Wenn ich jetzt für einen P4 optimiere, dann fällt |
47 |
hinten Programmcode für i386 optimiert für P4 heraus. |
48 |
|
49 |
Jetzt starte ich einen zweiten Kompilerlauf, diesmal mit Optimierung |
50 |
für den Pentium. Da dieser auch i386 als Architekturkennung hat, |
51 |
fällt das was für Pentium optimiert wurde auf das was ich gerade |
52 |
vorher für P4 erzeugt hatte. |
53 |
|
54 |
Ergebnis: es ist zur Zeit *nicht* möglich ohne weiteren Aufwand |
55 |
einfach für mehrere verschiedene Pentium, Pentium MMX, P-II, P-III, |
56 |
P4, Athlon-XP optimal angepassten Code zu erzeugen. Ich muß die |
57 |
Build-Umgebung für *jeden* dieser Prozessoren komplett neu |
58 |
zusammenschrauben. Dabei ist zimlich viel zu beachten, weil ich |
59 |
sicherstellen muß, das keine Library, die für P4 gedacht war in ein |
60 |
für den Pentium gedachtes Binary gelinkt wird. |
61 |
|
62 |
Gentoo hat zur Zeit exakt das Selbe Problem. Auch hier wird kein |
63 |
Unterschied zwischen Pentium, P4 und Athlon-XP gemacht. Es ist alles |
64 |
i586. |
65 |
|
66 |
Ich muß, wenn ich das machen will für jede CPU einen eigenen |
67 |
Buildbereich mit allem was dazugehört zusammenbauen. |
68 |
|
69 |
NetBSD macht zwischen einem Pentium, P4 und Athlon-XP einen |
70 |
Unterschied. Die verschiedenen CPU werden nicht mehr als eine |
71 |
Architektur betrachtet, sondern als verschieden. Es ist dadurch |
72 |
möglich mit nur einem Befehl optimierte Pakete für jede dieser CPU |
73 |
zu bauen --- das mit immer demselben Kompiler, ohne auf chroot, oder |
74 |
ähnliche Kunstgriffe zurückgreifen zu müssen. |
75 |
|
76 |
-- |
77 |
Thomas |
78 |
|
79 |
-- |
80 |
gentoo-user-de@g.o mailing list |