hi
ich habe heut versucht meinen kernel 2.2.16 auf 2.4.1 upzudaten.
(also nicht upzudaten sondern neu compiling)
ich habe mir dazu das kernel howto und die README zur hand genommen und ´make config´ nach besten wissen und gewissen beantwortet. ´make dep´ funktioniert einwandfrei wenn ich dann aber ´make zImage´ oder ´make bzImage´ machen will kriege ich unten stehende fehlermeldung. was mach ich falsch?
vielen dank,
(…)
[Team] Name entfernt
root@linux:/usr/src/linux > make bzImage
scripts/split-include include/linux/autoconf.h include/config
gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-f
rame-pointer -fno-strict-aliasing -pipe -mpreferred-stack-boundary=2 -march=i686
-malign-functions=4 -c -o init/main.o init/main.c
In file included from /usr/src/linux/include/linux/irq.h:57,
from /usr/src/linux/include/asm/hardirq.h:6,
from /usr/src/linux/include/linux/interrupt.h:45,
from /usr/src/linux/include/asm/string.h:296,
from /usr/src/linux/include/linux/string.h:21,
from /usr/src/linux/include/linux/fs.h:23,
from /usr/src/linux/include/linux/capability.h:17,
from /usr/src/linux/include/linux/binfmts.h:5,
from /usr/src/linux/include/linux/sched.h:9,
from /usr/src/linux/include/linux/mm.h:4,
from /usr/src/linux/include/linux/slab.h:14,
from /usr/src/linux/include/linux/malloc.h:4,
from /usr/src/linux/include/linux/proc_fs.h:5,
from init/main.c:15:
/usr/src/linux/include/asm/hw_irq.h: In function x86\_do\_profile': /usr/src/linux/include/asm/hw\_irq.h:198: current’ undeclared (first use in this
function)
/usr/src/linux/include/asm/hw_irq.h:198: (Each undeclared identifier is reported
only once
/usr/src/linux/include/asm/hw_irq.h:198: for each function it appears in.)
In file included from /usr/src/linux/include/asm/string.h:296,
from /usr/src/linux/include/linux/string.h:21,
from /usr/src/linux/include/linux/fs.h:23,
from /usr/src/linux/include/linux/capability.h:17,
from /usr/src/linux/include/linux/binfmts.h:5,
from /usr/src/linux/include/linux/sched.h:9,
from /usr/src/linux/include/linux/mm.h:4,
from /usr/src/linux/include/linux/slab.h:14,
from /usr/src/linux/include/linux/malloc.h:4,
from /usr/src/linux/include/linux/proc_fs.h:5,
from init/main.c:15:
/usr/src/linux/include/linux/interrupt.h: In function raise\_softirq': /usr/src/linux/include/linux/interrupt.h:89: current’ undeclared (first use in
this function)
/usr/src/linux/include/linux/interrupt.h: In function tasklet\_schedule': /usr/src/linux/include/linux/interrupt.h:160: current’ undeclared (first use in
this function)
/usr/src/linux/include/linux/interrupt.h: In function tasklet\_hi\_schedule': /usr/src/linux/include/linux/interrupt.h:174: current’ undeclared (first use in
this function)
In file included from /usr/src/linux/include/linux/string.h:21,
from /usr/src/linux/include/linux/fs.h:23,
from /usr/src/linux/include/linux/capability.h:17,
from /usr/src/linux/include/linux/binfmts.h:5,
from /usr/src/linux/include/linux/sched.h:9,
from /usr/src/linux/include/linux/mm.h:4,
from /usr/src/linux/include/linux/slab.h:14,
from /usr/src/linux/include/linux/malloc.h:4,
from /usr/src/linux/include/linux/proc_fs.h:5,
from init/main.c:15:
/usr/src/linux/include/asm/string.h: In function \_\_constant\_memcpy3d': /usr/src/linux/include/asm/string.h:305: current’ undeclared (first use in this
function)
/usr/src/linux/include/asm/string.h: In function \_\_memcpy3d': /usr/src/linux/include/asm/string.h:312: current’ undeclared (first use in this
function)
make: *** [init/main.o] Error 1
ich habe mir dazu das kernel howto und die README zur hand
genommen und ´make config´ nach besten wissen und gewissen
beantwortet. ´make dep´ funktioniert einwandfrei wenn ich dann
aber ´make zImage´ oder ´make bzImage´ machen will kriege ich
unten stehende fehlermeldung. was mach ich falsch?
Du hast alle Schritte in der Reihenfolge und wie im Howto beschrieben ausgefuehrt? Muss man da nicht noch irgendwo ./configure eingeben, oder uebernimmt das make config? Hast Du nicht das X-Frontend fuer make config verwendet? Das solltest Du unbedingt tun! Da hat man viel mehr Uebersicht.
Der Fehler sieht uebrigens ziemlich komisch aus. Offenbar erwarten verschiedene Header eine ganz bestimmte globale Variable namens current, finden sie aber nicht. Das kann daran liegen, dass die Header unterschiedliche Versionen sind (bist Du sicher, dass Du die richtigen, und kompletten sourcen hast? Und das sie richtig installiert sind? Vielleicht sucht der compiler die Header im falschen Verzeichnis…). Es koennte auch daran liegen, dass make config unter bestimmten Bedingungen bestimmte header erzeugt, wo auch das current vorkommt - wobei in Deinem Fall (durch falsche Konfiguration?) etwas durcheinander geraten und Abhaengigkeiten uebersehen worden sind. Das halte ich aber fuer unwahrscheinlich - oder ist das ein heisser Entwicklerkernel? Dann koenntest Du evtl. einen Report darueber an die Entwickler senden, werden sich freuen Aber nur, wenn Du sicherstellen kannst, dass es deren Fehler und nicht Deiner ist.
Du hast alle Schritte in der Reihenfolge und wie im Howto
beschrieben ausgefuehrt?
ja hab ich…
Muss man da nicht noch irgendwo
./configure eingeben, oder uebernimmt das make config? Hast Du
nicht das X-Frontend fuer make config verwendet? Das solltest
Du unbedingt tun! Da hat man viel mehr Uebersicht.
ich hab so saemtlich alle frontends fuer config verwendet (config, menueconfig, xconfig) weil ich immer dachte es laege vielleicht daran (steht in dem howto das evtl fehler auftreten koennen). ./configure hab ich nich gemacht waere eine ueberlegen wert…
Der Fehler sieht uebrigens ziemlich komisch aus. Offenbar
erwarten verschiedene Header eine ganz bestimmte globale
Variable namens current, finden sie aber nicht. Das kann daran
liegen, dass die Header unterschiedliche Versionen sind (bist
Du sicher, dass Du die richtigen, und kompletten sourcen hast?
Und das sie richtig installiert sind? Vielleicht sucht der
compiler die Header im falschen Verzeichnis…). Es koennte
auch daran liegen, dass make config unter bestimmten
Bedingungen bestimmte header erzeugt, wo auch das current
vorkommt - wobei in Deinem Fall (durch falsche Konfiguration?)
etwas durcheinander geraten und Abhaengigkeiten uebersehen
worden sind. Das halte ich aber fuer unwahrscheinlich - oder
ist das ein heisser Entwicklerkernel? Dann koenntest Du evtl.
einen Report darueber an die Entwickler senden, werden sich
freuen Aber nur, wenn Du sicherstellen kannst, dass es
deren Fehler und nicht Deiner ist.
hmm bis jetzt hab ich die suse 7.0 standard installation drauf, d.h. es muesste ja alles korrekt sein. der kernel 2.4.1 ist doch eigentlich stable oder? heisst es nich gerade stable ungerade development?
ich hab so saemtlich alle frontends fuer config verwendet
(config, menueconfig, xconfig) weil ich immer dachte es laege
vielleicht daran (steht in dem howto das evtl fehler auftreten
koennen). ./configure hab ich nich gemacht waere eine
ueberlegen wert…
Aber nur, wenn das Kernel build System das unterstuetzt …
der kernel 2.4.1
ist doch eigentlich stable oder? heisst es nich gerade stable
ungerade development?
Ja, ich weiss allerdings nicht mehr ob sich das auf die mittlere oder die letzte Versionsnummer bezieht.
Was mich echt wundert ist dieses current. Das sind alles Standard-Header, die das bemaekeln … und in den standard headern ein globales current??? Da koennte man gleich ein globales i oder dummy declarieren, das schreit foermlich nach Bugs. Komisch, versteht das wer?