PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LFS-Kompilat GCC, Gentoo als Hostsystem, statische GLibC



Thomas Engelke
10.11.03, 09:25
Hallo Ihr!

Ich habe auch weiterhin meine Problemchen, die sich scheinbar aus dem Zusammenhang zwischen Gentoo als Hostsystem und dem Versuch, LFS zu erzeugen, ergeben.

Ich bin beim Kompilat unter der Buchversion 5.0 (sowohl pre3 als auch die aktuelle stable) im Part 2, Punkt 5,
"Installing GCC 3.3.1 Pass 1" (http://www.de.linuxfromscratch.org/lfs/view/stable/chapter05/gcc-pass1.html).

An diesem Punkt spuckt mir die Ausführung der Zeile "make BOOT_LDFLAGS="-static" bootstrap" diese Fehlermeldung (http://www.de.linuxfromscratch.org/lfs/faq.html#cannot-find-lc) aus. Die Lösung dieses Problemes geht zum einen davon aus, man würde Mandrake benutzen (RPM-basiert). Ich nutze Gentoo (quellenbasiert). Außerdem wird als Lösungsindikator angegeben, daß die Datei /usr/lib/libc.a existieren muß. Leider tut sie das bei mir bereits.

Mir stellen sich dabei jetzt mehrere Fragen/Probleme/Rätsel:

1. Es gibt bei Gentoo scheinbar keine "Devel"-Pakete. Macht für mich auch Sinn, dadurch, daß alles aus Quellen kompiliert wird, werden diese Pakete bereits für die eigentliche Installation benötigt. Somit fällt die Installation der "Devel"-Pakete aus.
2. Wie kompiliere ich meine glibc statisch? Ich habe es bereits mit den Flags "MYCONF", "MYCONFIG" sowie dem USE-Flag "static" versucht (welches als solches in der Gentoo-Doku mit "Causes things to be statically linked instead of dynamically" angegeben ist). Die glibc hat sich durch nichts davon geändert. Ein neuer Versuch ist trotz leistungsstarkem Rechner jedoch immer noch nett zeitaufwändig, so daß dies nicht im Akkord passieren kann :)
3. Was ist der tatsächliche Grund für das o.a. Problem? Zwar scheint das Vorhandensein von /usr/lib/libc.a ein Indiz für die Lösung des Problemes zu sein, hier versagt sie jedoch scheinbar.

Bisherige Lösungsversuche und Hinweise: Ein paar nette Leute im #lfs-support unter irc.linuxfromscratch.org haben mich bereits zu dem Thema befragt und mit viele Variablen entlockt. CFLAGS, CXXFLAGS und irgendwelche "MAKE"-Variablen (sorry, geht nicht präziser, sitze nicht an dem Rechner, um den es dabei geht). Leider haben diese Leute nach dem Post der Ergebnisse auch nur die Schultern gezuckt. Ich habe weiterhin überlegt, einen Bugreport gegen LFS zu filen, aber dies erschien mir aufgrund der Sachlage (Problem scheinbar sehr spezifisch, nur im FAQ) für zu hoch gegriffen.

Bisherige Anfragen hier im Forum:

http://www.linuxforen.de/forums/showthread.php?s=&threadid=107372
http://gentooforum.de/viewtopic.php?t=1321&highlight=&sid=a754bb628ac822c3fc570f65af2d91f9

Das war's.

AD!

Jorge
10.11.03, 14:37
Ich habe gestern erfolgreich mein 5.0 installiert, Basis war das schon vorhandene LFS 4.0. Es geht also prinzipiell.
Was Deine Probleme angeht, schonmal daran gedacht einfach mal ein anderes Host System zu verwenden? Ich würde z.b. eine Mini Debian Installation ohne X machen, und von dort LFS kompilieren. Dein vorhandenes Gentoo kann neben Debian natürlich auf der Maschine bleiben (oder anders herung, ganz wie Du mags :) ). Keine Idee?

Thomas Engelke
10.11.03, 14:43
Danke, Jorge, wenigstens ersteinmal eine Antwort. Nunja, ja, ich hab' schon dran gedacht, ein anderes System zu nehmen, empfand aber den Aufwand für zu hoch. Eventuell würde mir Knoppix reichen, jedoch weiß ich da nicht, was ich tun soll, wenn ein Problem auftritt, das beispielsweise die Einspielung eines Paketes erfordern würde. Außerdem glaube ich eigentlich auch daran, daß es eine Lösung für mein Dilemma geben muß - ein Ausweichen wäre irgendwie schade.

AD!

Jorge
10.11.03, 15:08
Klar, ich kann verstehen das Dich der Ergeiz gepackt hat. Ich fürchte nur, daß wir hier keine Lösung finden werden. Ein kleines Debian paralell zu Deinem Gentoo zu installieren ist wahrscheinlich weniger Aufwand, als von den LFS Entwicklern Dein Gentoo auseinandernehmen zu lassen. Die Entscheidung liegt allein bei Dir.

Frag doch mal auf der/den LFS Mailinglisten, ob überhaupt schon wer erfolgreich ein LFS mit Gentoo als Hostsystem installiert bekommen hat. Vielleicht ist das ja ein Weg.

Wie gesagt, ich würde eine belibiebige Distribution paralell installieren, und daraus LFS installieren.

Komet
10.11.03, 15:11
Bei deinem Problem kann ich dir leider auch erstmal nicht weiterhelfen, nur soviel:
Ich hab auch Gentoo als Hostsystem und bin gerade dabei ein LFS zu bauen. Bin jetzt bei GCC 3.3.1 Pass 2 und bisher hat alles ohne Probleme funktioniert. Also prinzipiell funktioniert das natürlich mit Gentoo...

Jorge
10.11.03, 15:22
Nachdem ich absolut keine Ahnung von Gentoo habe, könntet Ihr beide ja mal Eure Systeme vergleichen...

Thomas Engelke
10.11.03, 15:38
Original geschrieben von Komet
Also prinzipiell funktioniert das natürlich mit Gentoo...

Ui ui ui ui ui ui. Das geht also tatsächlich. Kannst du mal ein "ls -la /usr/lib/libc*" posten? Hast du irgendetwas in Richtung "static" in den USE-Flags? Wäre toll, wenn du da meine Referenz sein könntest.

AD!

Jorge
10.11.03, 15:49
Viel Glück Thomas!

Komet
10.11.03, 15:51
ls -la /usr/lib/libc* spuckt folgendes aus:

-rw-r--r-- 1 root root 2648890 2003-05-24 00:17 /usr/lib/libc.a
-rw-r--r-- 1 root root 40604 2003-05-24 23:14 /usr/lib/libcapplet.a
-rwxr-xr-x 1 root root 1235 2003-05-24 23:14 /usr/lib/libcapplet.la
lrwxrwxrwx 1 root root 19 2003-05-24 23:14 /usr/lib/libcapplet.so -> libcapplet.so.0.0.0
lrwxrwxrwx 1 root root 19 2003-05-24 23:14 /usr/lib/libcapplet.so.0 -> libcapplet.so.0.0.0
-rwxr-xr-x 1 root root 40959 2003-05-24 23:14 /usr/lib/libcapplet.so.0.0.0
-rw-r--r-- 1 root root 89856 2003-05-24 18:35 /usr/lib/libcdda_interface.a
lrwxrwxrwx 1 root root 26 2003-05-24 18:35 /usr/lib/libcdda_interface.so -> libcdda_interface.so.0.9.8
lrwxrwxrwx 1 root root 26 2003-05-24 18:35 /usr/lib/libcdda_interface.so.0 -> libcdda_interface.so.0.9.8
-rwxr-xr-x 1 root root 79107 2003-05-24 18:35 /usr/lib/libcdda_interface.so.0.9.8
-rw-r--r-- 1 root root 34540 2003-05-24 18:35 /usr/lib/libcdda_paranoia.a
lrwxrwxrwx 1 root root 25 2003-05-24 18:35 /usr/lib/libcdda_paranoia.so -> libcdda_paranoia.so.0.9.8
lrwxrwxrwx 1 root root 25 2003-05-24 18:35 /usr/lib/libcdda_paranoia.so.0 -> libcdda_paranoia.so.0.9.8
-rwxr-xr-x 1 root root 37812 2003-05-24 18:35 /usr/lib/libcdda_paranoia.so.0.9.8
-rw-r--r-- 1 root root 10616 2003-05-24 00:17 /usr/lib/libc_nonshared.a
-r--r--r-- 1 root root 7084 2003-09-22 18:02 /usr/lib/libcom_err.a
-rwxr-xr-x 1 root root 307 2003-09-22 18:02 /usr/lib/libcom_err.so
lrwxrwxrwx 1 root root 15 2003-05-24 02:29 /usr/lib/libcrack.so -> libcrack.so.2.7
lrwxrwxrwx 1 root root 15 2003-05-24 02:29 /usr/lib/libcrack.so.2 -> libcrack.so.2.7
-rwxr-xr-x 1 root root 31223 2003-05-24 02:29 /usr/lib/libcrack.so.2.7
-rw-r--r-- 1 root root 21480 2003-05-24 00:17 /usr/lib/libcrypt.a
-rw-r--r-- 1 root root 1936370 2003-09-22 20:30 /usr/lib/libcrypto.a
lrwxrwxrwx 1 root root 14 2003-09-22 20:30 /usr/lib/libcrypto.so -> libcrypto.so.0
lrwxrwxrwx 1 root root 18 2003-09-22 20:30 /usr/lib/libcrypto.so.0 -> libcrypto.so.0.9.7
-rwxr-xr-x 1 root root 906160 2003-09-22 20:30 /usr/lib/libcrypto.so.0.9.6
-r-xr-xr-x 1 root root 1207824 2003-09-22 20:30 /usr/lib/libcrypto.so.0.9.7
lrwxrwxrwx 1 root root 23 2003-05-24 00:17 /usr/lib/libcrypt.so -> ../../lib/libcrypt.so.1
-rwxr-xr-x 1 root root 204 2003-05-24 00:17 /usr/lib/libc.so
-rwxr-xr-x 1 root root 580404 2003-06-01 15:40 /usr/lib/libc.so.5
-rwxr-xr-x 1 root root 161740 2003-07-24 14:44 /usr/lib/libcups.a
-rwxr-xr-x 1 root root 104560 2003-07-24 14:44 /usr/lib/libcupsimage.a
lrwxrwxrwx 1 root root 17 2003-07-24 14:44 /usr/lib/libcupsimage.so -> libcupsimage.so.2
-rwxr-xr-x 1 root root 81476 2003-07-24 14:44 /usr/lib/libcupsimage.so.2
lrwxrwxrwx 1 root root 12 2003-07-24 14:44 /usr/lib/libcups.so -> libcups.so.2
-rwxr-xr-x 1 root root 125322 2003-07-24 14:44 /usr/lib/libcups.so.2
-rw-r--r-- 1 root root 211262 2003-05-24 19:15 /usr/lib/libcurl.a
-rwxr-xr-x 1 root root 727 2003-05-24 19:15 /usr/lib/libcurl.la
lrwxrwxrwx 1 root root 16 2003-05-24 19:15 /usr/lib/libcurl.so -> libcurl.so.2.0.2
lrwxrwxrwx 1 root root 16 2003-05-24 19:15 /usr/lib/libcurl.so.2 -> libcurl.so.2.0.2
-rwxr-xr-x 1 root root 177394 2003-05-24 19:15 /usr/lib/libcurl.so.2.0.2
lrwxrwxrwx 1 root root 12 2003-09-19 18:03 /usr/lib/libcurses.a -> libncurses.a


'static' hatte ich nie in meinen USE-Flags stehen, eher 'Standard-Einstellungen', nur CFLAGS gesetzt, ansonsten hab ich nichts geändert...

Thomas Engelke
10.11.03, 15:56
Das sieht ersteinmal ziemlich ähnlich aus. Ich poste nochmal, wenn ich vor dem Rechner sitze, um den es geht. Danke Komet.

AD!

Komet
10.11.03, 16:01
Kein Problem, helfe ja gern wenn's geht. Vielleicht kann ich ja bald auch schon von meinem LFS antworten :)

Thomas Engelke
10.11.03, 16:07
Ich drück' dir jegliche Daumen. Vom Gefühl und vom Lerneffekt gesehen ist das LFS einfach unüberbietbar.

AD!

Thomas Engelke
10.11.03, 20:58
Aaaaaaaaaalso:

-rw-r--r-- 1 root root 2627796 Nov 9 00:13 /usr/lib/libc.a
-rwxr-xr-x 1 root root 204 Nov 9 00:13 /usr/lib/libc.so
-rwxr-xr-x 1 root root 580404 Oct 5 03:15 /usr/lib/libc.so.5
-rw-r--r-- 1 root root 10536 Nov 9 00:13 /usr/lib/libc_nonshared.a

Das sind die wichtigen Libs in /usr/lib. Interessant. Maskierst du etwas ein, Komet? Hast du "~x86" in den USE-Flags?

AD!

Komet
10.11.03, 21:20
Ist nichts maskiert, accept-keywords="~x86" hab ich drin, GCC Version ist 3.2.3, glibc ist 2.3.2-r1.
Soweit erstmal.

btw: "III. Part III - Building the LFS system - Installing GCC-3.3.1", make läuft gerade :)

DarkSorcerer
11.11.03, 07:19
Ich arbeite zur Zeit auch mit einem Gentoo und wollte demnächst mal an ein LFS5 dran gehen... Hab bisher noch nicht wirklich die Zeit gefunden, aber dieses Jahr sollte es noch klappen :)

Thomas Engelke
11.11.03, 07:36
Original geschrieben von Komet
Ist nichts maskiert, accept-keywords="~x86" hab ich drin, GCC Version ist 3.2.3, glibc ist 2.3.2-r1.

Vielleicht ist das die Ursache. Mein ganzes System ist ohne den ~x86-Flag kompiliert worden. Habe zwar gestern nochmals einzeln die aktuellste glibc kompiliert (2.3.2-r1), aber mein GCC ist natürlich älter. Mal sehen, ob der Hinweis was bringt. Im Zweifelsfalle muß ich halt das System nochmal neu kompilieren lassen, jeweils mit ~x86. Danke für die Hinweise, Komet.

AD!

Jorge
11.11.03, 08:09
Original geschrieben von Komet

btw: "III. Part III - Building the LFS system - Installing GCC-3.3.1", make läuft gerade

Heute Nacht ist XFree erforgreich kompiliert worden und heute Abend fange ich mit KDE an. Das BLFS Buch ist zu 70% durch... :)

Komet
11.11.03, 23:36
Tatatada: Mein LFS läuft :)
Naja, zumindest das Grundsystem, X u.s.w fehlt alles noch, aber es läuft! :D

Jorge
12.11.03, 07:59
Herzlichen Glückwunsch! Mein X läuft schon, inkl. NViadia Treiber. KDE ist bis auf kdebase, welches im Momemt durch den Kompiler gejagt wird, installiert. Wenn ich heute nach Hause komme, kanns losgehen :)

berell
12.11.03, 08:04
@Jorge

warum liest du egentlich nicht mal in deinem Forum mit ?
(moderatoren-forum )

Gruss
-bernd

Thomas Engelke
12.11.03, 08:27
Ich hatte gestern nocheinmal kurz das Aufbäumen eines Hoffnungsschimmers. Die Mailinglistenarchive von lfs.org hatten ähnliche fälle im Angebot. Leider jedoch hatte jeder dieser Fälle die vielzitierte Datei /usr/lib/libc.a nicht, welche mir nicht fehlt. Somit stehe ich jetzt vor der letzten Frage: Kompiliere ich mein gesamtes System mittels ACCEPT_KEYWORDS="~x86" neu oder nutze ich jetzt einfach Knoppix, um das LFS zu bauen und hoffe, ich muß kein Paket nachinstallieren? Tips? Meinungen? Hinweise?

AD!

berell
12.11.03, 08:41
knoppix geht ,
du kannst aber auch unser system-lrs.tar.bz2 von
www.fsi.uni-tuebingen.de/users/berell/download/Creme-13/

downloaen , dieser tarball enthält das komplette Chapter 5 und wird einfach nach
$LFS entpackt , es ist 386 "Optimiert" , danach kannst du einfach am anfang von chapter 6 fortfahren :-)

P.S.
du könntest aber auch das aktuelle CVS-LRs nehmen , das kann bereits LFS50 auf die Platte bringen ( mkLRsISO LFS erzeugt eine ISO die nur LFS installieren kann , ohne vorhandenes HOST-System )


-bernd
www.lrs-linux.org

Thomas Engelke
12.11.03, 09:07
Hallo Bernd!

Danke, ich weiß, was LRs kann, ich les' ja nicht umsonst Mailingliste mit :)

AD!

Jorge
12.11.03, 18:57
Wow, KDE ist im Gegensatz zu 3.0.x richtig schnell geworden. Respekt. Insgesamt fühlt sich die Maschine sehr geschmeidig an. :)

Thomas Engelke
12.11.03, 19:38
Na hammermäßig. Hallo Ihrs!

Jetzt geht's. Fragt mich zum Teufel nicht, was ich jetzt konkret anders getätigt hätte. Sowas regt mich auf, erst Fehler haben und dann nicht die Möglichkeit haben, sie zu reproduzieren. Aber ich hab' ein paar Ideen.

Ich hab' alle Pakete nochmals gezogen. Außerdem habe ich die GLibC neu kompiliert (mit dem USE-Flag "static") und gestern zum ersten Male danach gebootet. Könnte es daran gelegen haben? Wie geht Linux mit Rekompilierungen um? Ich mache das Triplet aus ./configure && make && make install auf eine GLibC, die vom aktuellen System z.Z. genutzt wird. Wie wird damit verfahren? Haben da die Distributionen ihre eigenen Regeln (z.B. beim nächsten Boot austauschen wie Windows)? Wie macht Gentoo das? Oder eine Rekompilierung von KDE/XFree im XTerm unter XFree?

Anyways, danke für die Mühe aller, die mit geholfen haben. Falls jemand anders mal solch einen Fehler hat, wäre ich hocherfreut, die Lösung mitgeteilt zu bekommen.

AD!

Jorge
14.11.03, 07:54
Und wie weit bist Du?

Thomas Engelke
14.11.03, 07:57
Chapter 6, GCC 3.3.1, gestern ist erstmals ein Problem aufgetreten, einer der Tests beim make -k check schlägt "unexpected" fehl. Ich mach' mich heute abend und am Wochenende mal dran.

AD!