hallo,
bin grade dabei mir ein lfs system (wollte vorallem mal guggen wie sowas eigentlich vorsich geht) zu basteln.
habe jetzt das problem, das sich die glibc (2.3.2) nicht konfigurieren lassen will.
../glibc-2.3.2/configure --prefix=/usr --disable-profile --enable-add-ons --libexecdir=/usr/bin
gibt folgende meldung:
checking how to run the C preprocessor... /lib/cpp
configure: error: C preprocessor "/lib/cpp" fails sanity check
der cpp wohnt unter /static/bin.
wie kann ich dem configure-script sagen, das er unter /static/bin suchen soll?
oder liegt das prob woanders?
Linux 15.036 Themen, 107.107 Beiträge
Du bist in Chapter 6, richtig? Hast du vorher den Link fuer die bash angelegt, am Anfang des Kapitels?
ln -s /static/bin/bash /bin/bash
ln -s bash /bin/sh
Und du hast auch das /proc gemountet und bist in der chroot?
Klaus
Hallo,
jau genau, chap6.
ich bin chroot und proc ist auch gemountet.
klappte bis dahin auch ohne probs ausser das die LDFLAGS aus chap5 bei make angegeben werden mussten.
das erste prob tauchte beim kernel auf, der keinen
make symlinks
machen wollte.
übrigens: wie bekomme ich denn dieses prob in den griff?
ich habe die asm mit asm-i386 gelinkt und bin dann wieder nach lfs gegangen.
hier 2 auszüge aus der config.log:
configure:3172: $? = 1
configure: failed program was:
| #line 3115 "configure"
| /* confdefs.h. */
[...]
| Syntax error
configure:3517: /lib/cpp conftest.c
../glibc-2.3.2/configure: line 1: /lib/cpp: No such file or directory
configure:3523: $? = 127
configure: failed program was:
| #line 3503 "configure"
| /* confdefs.h. */
|
| #define PACKAGE_NAME "GNU C Library"
| #define PACKAGE_TARNAME "c-library"
| #define PACKAGE_VERSION "(see version.h)"
| #define PACKAGE_STRING "GNU C Library (see version.h)"
| #define PACKAGE_BUGREPORT "glibc"
| #define USE_REGPARMS 1
| /* end confdefs.h. */
| #ifdef __STDC__
| # include
Gebe mal ein:
touch /usr/include/assert.h
Die glibc will diese Header-Datei haben, die wird aber erst angelegt, wenn der gcc installiert wird. Das passiert aber erst nach der glibc. Deshalb musst du eine leere Datei anlegen, die wird beim gcc installieren dann richtig erstellt.
Wenn das nicht klappt, dann liegt es an der Kernelinstallation. Gehe dann noch einmal dorthin zurueck und wiederhole die ganzen Schritte. Bei mir hat es immer so funktioniert. Du musst dort etwas vergessen haben.
Bye, Klaus
Okay, da steht doch bestimmt noch:
Check file config.log
oder so aehnlich? Gebe mal das Ende davon an. Wenn dort stht, dass dir ein paar Header-Dateien fehlen, dann ist das ein einfach zu loesendes Problem.
Bye, Klaus
Link den cpp nach /lib. Das gehoert auch so, habs irgendwo mal gelesen (evtl. sogar im LFS-Handbuch?), scheint aber ein Ueberbleibsel von Uni*-Systemen zu sein die den cpp in /lib suchen (Ist aber auch bei aktuellen Distributionen noch so).
ln -s /usr/bin/cpp /lib/cpp
hallo und danke für die tipps !!
das problem lag wohl an der
/usr/include/assert.h
ääh ich builde ja die glibc.2.3.2, und ich habe noch keinen passenden root-perl.patch und libnss.patch gefunden.
sollte ich ohne patch builden oder mich lieber der 2.3.1 zuwenden ?
Warum findest du die patches nicht?
http://downloads.linuxfromscratch.org/
Bye, Klaus
nun da die patches für die version 2.3.1 sind,ich aber die 2.3.2 hier habe.
oder ist das kein problem die "alten" patches für neue versionen zu nehmen?
Das kann ich dir nicht sagen. Welches Buch hast du denn, was steht dort? Wenn du eine andere Version nimmst, als das Buch empfiehlt, solltest du dir die Doku des Paketes genau durchlesen (sollte man sowieso) und dann austesten. Vielleicht geht es bei der neueren ohne Patches.
Klaus
ui das war schnell !
ich glaube wenn ich das das erste mal teste, sollte ich ich mich doch lieber an das lfs-buch halten (CVS-Version).
wenns klappt, kann ich immernoch anfangen zu experimentieren.
es gibt nähmlich einige probs beim kompilieren und ich bin mir nicht sicher wo jetzt genau das prob ist (./configure [..] klappte ja einwandfrei).
jedenfalls danke für die hilfe und ich werde wohl noch öffters tippern ... :)
Hallo,
neues problem ist aufgetaucht.
die komlpilierung von m4 bricht mit folgenden meldungen ab:
gcc -c -DHAVE_CONFIG_H -I.. -I. -I./../lib -g -O stackovf.c
In file included from stackovf.c:87:
/usr/include/siginfo.h:8: redefinition of `union sigval'
/usr/include/siginfo.h:16: redefinition of `struct siginfo'
/usr/include/siginfo.h:48: parse error before "clock_t"
/usr/include/siginfo.h:62: parse error before '}' token
/usr/include/siginfo.h:63: parse error before '}' token
/usr/include/siginfo.h:200: redefinition of `struct sigevent'
stackovf.c: In function `sigsegv_handler':
stackovf.c:211: structure has no member named `_addr'
make[1]: *** [stackovf.o] Error 1
make[1]: Leaving directory `/static/source/m4-1.4/src'
make: *** [all] Error 1
die config.log
configure:770:26: minix/config.h: No such file or directory
/tmp/ccEtGElb.o: In function `t':
/static/source/m4-1.4/configure:1185: the `sigstack' function is dangerous. `sigaltstack' should be used instead.
wo liegt das prob?
Ich vermute, das liegt entweder an deiner Version von glibc oder gcc. Welche verwendest du? Sind das die aus dem Buch? Hast du alle Patches eingespielt?
Klaus
Also, ich habe gerade bei mir noch einmal nachgesehen. Die Datei /usr/include/siginfo.h existiert bei mir nicht, die gibt es nur unter /usr/include/asm/ und /usr/include/bits/.
Es liegt definitiv an deinen Kernel-Headern. Du solltest das Kapitel, wo der Kernel entpackt wird und die HeaderDateien erzeugt werden, noch einmal wiederholen. Die Sache mit dem 'make symlinks' muss klappen, sonst wirst du immer wieder Probleme bekommen.
Also, das was du dort gemacht hast, loeschen und noch einmal wiederholen, dann den m4-1.4 Tarball neu entpacken und noch einmal configurieren.
Klaus
hallo,
habe mittlerweile alles aus dem buch.
der kernel funzte dann auch wie er sollte, allerdings ist das mit m4 prob noch immer da.
Ja, und hast du die Datei auch aus /usr/include/ geloescht? Die darf dort nicht sein. Was kommt denn jetzt fuer ein Fehler?
Klaus
aaaalso.. nochmal alles ganz langsam von vorne.
diesmal keine probs mit kernel und auch keine mit irgendwelchen anderen sachen.
allerdings kommt jetzt wieder ein kleines (?) prob:
binutils(2.13.2) bricht den configure mit folgender meldung ab:
Configuring for a i686-pc-linux-gnu host.
Segmentation fault
Segmentation fault ist haeufig (fast immer) ein Hardwarefehler. Ueberpruefe mal deinen Speicher mit memtest.
Klaus
hallo,
also der speicher ist anscheinend io.
ich habe mir die letze ver von binutils gesaugt und die lässt sich dann auch einwandfrei konfigurieren.
allerdings buildet sie nicht.
/bin/sh: line 1: no: command not found
make[3]: *** [tr.gmo] Error 127
make[3]: Leaving directory `/static/src/binutils-2.13.90.0.20/bfd/po'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/static/src/binutils-2.13.90.0.20/bfd'
make[1]: *** [all-recursive-am] Error 2
make[1]: Leaving directory `/static/src/binutils-2.13.90.0.20/bfd'
make: *** [all-bfd] Error 2
Aehm, eine Frage: Welche Version der bash hast du?
bash-2.05a = gut
bash-2.05b = schlecht
Die b sollte man nicht nehmen, denn dann patcht du dich zu tode.
Wenn du genau die Versionen nimmst, die im Buch stehen, geht die Installation immer glatt, sofern du nichts vergisst oder einen Tippfehler machst.
Nimmst du allerdings auch nur eine neuere oder andere Version, dann musst du genau wissen, was du tust, sonst kommst du nie zum Ende.
Bye, Klaus
hallo,
jo genau das war auch das prob... mit der 2.05a klappt alles
wies soll.
vielen dank !
hi,
ich versuche mich auch gerade an lfs.
habe allerdings probleme mit perl.
beim make bricht er mit folgender fehlermeldung ab:
Making Errno (nonxs)
Writing Makefile for Errno
make[1]: Entering directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
make[1]: Leaving directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
make[1]: Entering directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
../../miniperl "-I../../lib" "-I../../lib" "-I../../lib" "-I../../lib"
Errno_pm.
PL Errno.pm
cp Errno.pm ../../lib/Errno.pm
make[1]: Leaving directory `/home/webland/Personal/src/perl-5.8.0/ext/Errno'
make: [extras.make] Error 1 (ignored)
Everything is up to date. Type 'make test' to run test suite.
bin genau nach buch lfs 4.0 vorgegangen.
wo liegt der fehler ?
>make: [extras.make] Error 1 (ignored)
>Everything is up to date. Type 'make test' to run test suite.
Ist doch alles in Ordnung, der Fehler wurde ignoriert. Das passiert oefter. Gebe 'make install' ein und fertig.
Bye, Klaus