Betriebssysteme > Linux

Probleme Kernel-Kompilierung 2.4.3

(1/3) > >>

Gorbi:
Hallo !

SS20, SM71, ein aktualisiertes SuSE 7.0, d.h. die Versionen, die man fuer Kernel 2.4 benoetigt, laut Changelog installiert. Lief soweit ganz gut, Kernel 2.4.0 liess sich installieren, momentan laeuft 2.4.2, das hat also geklappt.

Nun wollte ich mal wieder updaten auf Kernel 2.4.3, also die CVS-Variante von vger.samba.org geholt (hatte gute Erfahrungen damit gemacht). Leider laeuft nun make vmlinux nicht so wie erwartet, es zeigen sich folgende Meldungen:

make[2]: Entering directory `/usr/src/linux-sparc/mm'
gcc -D__KERNEL__ -I/usr/src/linux-sparc/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7    -c -o memory.o memory.c
memory.c:183: macro `pmd_alloc' used with too many (3) args
memory.c:204: macro `pte_alloc' used with too many (3) args
memory.c:668: macro `pte_alloc' used with too many (3) args
memory.c:693: macro `pmd_alloc' used with too many (3) args
memory.c:748: macro `pte_alloc' used with too many (3) args
memory.c:775: macro `pmd_alloc' used with too many (3) args
memory.c:1282: macro `pmd_alloc' used with too many (3) args
memory.c:1285: macro `pte_alloc' used with too many (3) args
memory.c:1335: macro `pte_alloc' used with too many (3) args
memory.c: In function `copy_page_range':
memory.c:183: warning: passing arg 1 of `___f_pmd_alloc' from incompatible pointer type
memory.c:183: warning: passing arg 2 of `___f_pmd_alloc' makes integer from pointer without a cast
memory.c:204: warning: passing arg 1 of `___f_pte_alloc' from incompatible pointer type
memory.c:204: warning: passing arg 2 of `___f_pte_alloc' makes integer from pointer without a cast
memory.c: In function `zeromap_pmd_range':
memory.c:668: warning: passing arg 1 of `___f_pte_alloc' from incompatible pointer type
memory.c:668: warning: passing arg 2 of `___f_pte_alloc' makes integer from pointer without a cast
memory.c: In function `zeromap_page_range':
memory.c:693: warning: passing arg 1 of `___f_pmd_alloc' from incompatible pointer type
memory.c:693: warning: passing arg 2 of `___f_pmd_alloc' makes integer from pointer without a cast
memory.c: In function `remap_pmd_range':
memory.c:748: warning: passing arg 1 of `___f_pte_alloc' from incompatible pointer type
memory.c:748: warning: passing arg 2 of `___f_pte_alloc' makes integer from pointer without a cast
memory.c: In function `remap_page_range':
memory.c:775: warning: passing arg 1 of `___f_pmd_alloc' from incompatible pointer type
memory.c:775: warning: passing arg 2 of `___f_pmd_alloc' makes integer from pointer without a cast
memory.c: In function `handle_mm_fault':
memory.c:1282: warning: passing arg 1 of `___f_pmd_alloc' from incompatible pointer type
memory.c:1282: warning: passing arg 2 of `___f_pmd_alloc' makes integer from pointer without a cast
memory.c:1285: warning: passing arg 1 of `___f_pte_alloc' from incompatible pointer type
memory.c:1285: warning: passing arg 2 of `___f_pte_alloc' makes integer from pointer without a cast
memory.c: In function `__pmd_alloc':
memory.c:1307: warning: implicit declaration of function `pmd_alloc_one_fast'
memory.c:1307: warning: assignment makes pointer from integer without a cast
memory.c:1310: warning: implicit declaration of function `pmd_alloc_one'
memory.c:1310: warning: assignment makes pointer from integer without a cast
memory.c:1324: warning: implicit declaration of function `pgd_populate'
memory.c: At top level:
memory.c:1336: conflicting types for `___f_pte_alloc'
/usr/src/linux-sparc/include/asm/pgalloc.h:125: previous declaration of `___f_pte_alloc'
memory.c: In function `___f_pte_alloc':
memory.c:1341: warning: implicit declaration of function `pte_alloc_one_fast'
memory.c:1341: `address' undeclared (first use in this function)
memory.c:1341: (Each undeclared identifier is reported only once
memory.c:1341: for each function it appears in.)
memory.c:1341: warning: assignment makes pointer from integer without a cast
memory.c:1344: warning: implicit declaration of function `pte_alloc_one'
memory.c:1344: warning: assignment makes pointer from integer without a cast
memory.c:1358: warning: implicit declaration of function `pmd_populate'
make[2]: *** [memory.o] Error 1
make[2]: Leaving directory `/usr/src/linux-sparc/mm'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux-sparc/mm'
make: *** [_dir_mm] Error 2
root@dresden:/usr/src/linux >


Laut CVS-Log sind in "memory.c" etliche Zeilen veraendert worden, allerdings kann ich damit nicht so richtig viel anfangen. ;-)
Das gleiche beim "offiziellen" Kernel. Was tun? Kennt Ihr aehnliche Probleme? Wenn Ihr weitere Angaben ueber Versionsnummern o.ae. braucht, sagt bitte Bescheid.

Vielen Dank & Beste Gruesse,
  Ralf

Jerry:
Hi Ralf,

Du    weisst aber schon, dass das direkte Saugen der
sourcen aus dem CVS-tree mitunter solche Inkonsistenzen
verursachen kann?

Auch wenn sich das nach Finsterhack anhört, normalerweise
wird in memory.c von einer minor zur nächsten nicht gerade
wie irre rumgemetzgert. Insofern schau mal, ob der kernel
mit der 2.4.2er memory.c etwas braver läuft.

Da im 2.4 das SMP nicht gerade geringfügig überarbeitet
worden sein soll, werd' ich's dieser Tage bei mir auch aufspielen,
zumindest auf meine SS20 (obwohl die mit 2.2 schon fliegt :) )

Sobald ich den neuen Kernel drauf habe, schreib ich mehr dazu,
dann teste ich die Effekte nochmal selbst durch.

Jerry

Gorbi:
Ja, um etwaigen CVS-Problemen aus dem Weg zu gehen, habe ich
es danach nochmal mit dem offiziellen Kernel 2.4.3 probiert, also dem ueblichen tarfile vom netten Mirror nebenan, aber das fuehrte leider zum gleichen Ergebnis.
Vielleicht sind auch diverse Libraries, modutils, gcc usw. zu alt,
wenn der Kernel bei Dir erfolgreich laeuft, koennen wir ja mal vergleichen. ;-)

Beste Gruesse,
  Ralf

Gorbi:
Also - mal wieder laut SuSE-Sparc-Mailingliste - das Problem ist, dass der Kernel 2.4.3 momentan die Sparc32-Linie wirklich nicht mehr unterstuetzt. Momentan laeuft also nur Sparc64, somit die Ultra-Systeme. Natuerlich besteht die Hoffenung, dass sich die Situation in Zukunft wieder bessert, aber irgendjemand muss eben den Code schreiben, damit dies geschieht. Die Aenderungen in linux/mm/memory.c sind jedenfalls dafuer verantwortlich.
Ich teste gerade, ob der Kernel 2.4.4 vielleicht wieder laeuft, momentan wird kompiliert...

Beste Gruesse,
  Ralf

Gorbi:
Update: Auch bei 2.4.4 bestehen die genannten Probleme. Schade. :-(

Beste Gruesse,
  Ralf

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln