Neues Feature in Kernel 2.4.x ?
Hallo, beim Versuch Kernel 2.4.9 zu kompilieren, fiel mir folgendes auf: /usr/src/linux soll ja IMHO immer noch ein Link auf die Kernelversion sein, mit der die benutzte glibc gelinkt worden ist. Daher habe ich ein Verzeichnis /usr/src/linux-2.4.9. Und dort: pc105396:/usr/src/linux-2.4.9 # make dep gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/mkdep scripts/mkdep.c In file included from /usr/include/bits/posix1_lim.h:126, from /usr/include/limits.h:30, from /usr/lib/gcc-lib/i486-suse- linux/2.95.2/include/limits.h:117, from /usr/lib/gcc-lib/i486-suse- linux/2.95.2/include/syslimits.h:7, from /usr/lib/gcc-lib/i486-suse- linux/2.95.2/include/limits.h:11, from scripts/mkdep.c:35: /usr/include/bits/local_lim.h:27: linux/limits.h: No such file or directory make: *** [scripts/mkdep] Error 1 Lege ich allerdings einen link linux an, der auf linux-2.4.9 zeigt, läßt sich der Kernel einwandfrei erzeugen. Wieso geht das nicht mehr? Ich habe bisher die neuen Kernel immer in einem versionsspezifischen Verzeichnis gebaut; das hat auch immer funktioniert. Ist das ein feature? Oder bin ich nur zu alt geworden und sehe den Fehler nicht mehr? Andreas
Hallo Andreas, * On Wed, Aug 22, 2001 at 07:43 AM (+0200), Andreas Kyek wrote:
beim Versuch Kernel 2.4.9 zu kompilieren, fiel mir folgendes auf:
/usr/src/linux soll ja IMHO immer noch ein Link auf die Kernelversion sein, mit der die benutzte glibc gelinkt worden ist.
Bei mir (SuSE Linux 7.2) gibt es gar kein "/usr/src/linux". Ich habe die Quellen des Kernels 2.4.9 in "/usr/src/linux-2.4.9" liegen (warum eigentlich - ich koennte sie doch auch in mein Homeverzeichnis legen). Daneben liegen in "/usr/include/linux" wohl die Include-Files der Kernelversion, mit gegen die die verwendete "glibc" gelinkt wurde. Einen Link "/usr/src/linux" gibt es hier nicht. Wenn Programme beim Kompilieren (z.B. VMware) die Include-Files des aktuell laufenden Kernels wollen, verweise ich sie auf "/usr/src/linux-2.4.9/include". Der Pfad "/usr/include/linux" als Include-Pfad fuer die Version, die zum Linken der "glibc" verwendet wurde, wird aber wohl automatisch beruecksichtigt. Zumindest hatte ich bisher keine Probleme.
/usr/include/bits/local_lim.h:27: linux/limits.h: No such file or directory make: *** [scripts/mkdep] Error 1
Hast Du denn auch das Verzeichnis "/usr/include/linux" und darin die Datei limits.h? Falls nicht, koennte das die Ursache fuer das Verhalten sein. Bei mir gibt es das zumindest. Die naechste Frage waere dann aber, wieso die Dateien bei Dir fehlen.
Lege ich allerdings einen link linux an, der auf linux-2.4.9 zeigt, läßt sich der Kernel einwandfrei erzeugen. Wieso geht das nicht mehr?
War hier nicht noetig. Tritt aber auf, sobald ich testweise "/usr/include/linux" in irgend etwas Anderes umtaufe.
Ich habe bisher die neuen Kernel immer in einem versionsspezifischen Verzeichnis gebaut; das hat auch immer funktioniert
Das sollte auch immer funktionieren. Schau mal (sofern das Problem noch aktuell ist), ob die Linux-Include-Files auch vorhanden sind.
Ist das ein feature?
Glaube ich eher nicht, da ich zwischen 2.4.8 und 2.4.9 keine Unterschiede auf meiner SuSE 7.2 feststellen konnte. Gruesse, Steffen
On 24 Aug 2001, at 22:47, Steffen Moser wrote:
Hallo Andreas,
* On Wed, Aug 22, 2001 at 07:43 AM (+0200), Andreas Kyek wrote:
beim Versuch Kernel 2.4.9 zu kompilieren, fiel mir folgendes auf:
/usr/src/linux soll ja IMHO immer noch ein Link auf die Kernelversion sein, mit der die benutzte glibc gelinkt worden ist.
Bei mir (SuSE Linux 7.2) gibt es gar kein "/usr/src/linux". [...] Daneben liegen in "/usr/include/linux" wohl die Include-Files der Kernelversion, mit gegen die die verwendete "glibc" gelinkt wurde. [...]
Tja, das ist dann wohl der Grund. Bei mir (SuSE 7.0 mit so ziemlich allen Updates) ist /usr/include/linux ein link auf "../src/linux/includ/linux", was dann in Wirklichkeit ein Verweis auf "/usr/src/linux/include/linux" ist. Diesen Link habe ich nicht so angelegt; er ist a) bei der Installation oder b) bei irgendwelchen anderen Sauereien so erzeugt worden. Nun wird aber klar, warum sich hier der Kernel nur erzeugen läßt, wenn zur Komilierzeit der link /usr/src/linux auf die vollständige Version zeigt. Andreas Andreas
participants (2)
-
Andreas Kyek
-
Steffen Moser