Bernd Troszynski wrote:
[...] Nein, es sieht eigentlich eher nach einem Syntax-, make-Fehler o.ä. aus.
Ich habe die .config des SuSE8.2-Kernels genommen und ein make oldconfig aufgerufen. Alle Komponenten, die ein 'm' zuliessen, haben das bekommen, alle anderen die Defaulteinstellung.
Wenn Du einen eigenen Kernel compilierst, dann nimm besser die Sachen raus, die Du (definitiv) nicht brauchst, dann gibt es weniger Stellen, wo Fehler auftreten koennen. Der SuSE-Kernel hat quasi alle Kernel-Features aktiviert, und viele wirst Du davon wirklich nicht brauchen! Dann compiliert der Kernel wesentlich schneller, und potenzielle Konflikte sind eben vermindert. Ausserdem hat SuSE beim 2.4.x Kernel sehr viele Patches, die so manche Stelle im Kernelcode veraendert - wenn also etwas bei SuSE geht und bei Vanilla nicht (oder umgekehrt), dann ist das nicht unbedingt verwunderlich...
Beim Kernel 2.4.20 (der von kernel.org) bricht 'make modules' so ab:
Aktuell ist Kernel 2.4.24 - der 2.4.20 ist doch schon etwas aelter und koennte an Deinem Problem mit Schuld haben!
[...] ambassador.c:301:21: pasting "." and "start" does not give a valid preprocessing token ambassador.c:305:23: pasting "." and "regions" does not give a valid preprocessing token ambassador.c:310:20: pasting "." and "data" does not give a valid preprocessing token ambassador.c: At top level:
Die anderen Sachen waren hpts. Warnungen, aber hier liegt das Problem. Dazu hat Philipp Thomas (allerdings in anderem Kontext) mal etwas geschrieben(*), ich denke, das koennte hier auch zutreffen: Der Code macht an der Stelle (und ein paar anderen) einfach Sachen, die laut dem ISO C Standard nicht definiert sind. Gcc 3.2 hat die noch mit Warnung akzeptiert, aber seit gcc 3.3 wird solcher Code zurückgewiesen. Verwende 2.4.22, da ist zumindest der Code gefixt oder deaktiviere einfach die ganze ATM Unterstützung, denn die wirst du sicherlich nicht benötigen. (*)http://marc.theaimsgroup.com/?l=suse-linux&m=106404826927837&w=2
Für den 2.4.24er Kernel habe ich die .config des obrigen 2.4.20er genommen und ein make oldconfig aufgerufen. Alle Komponenten, die ein 'm' zuliessen, haben das bekommen, alle anderen die Defaulteinstellung.
Beim Kernel 2.4.24 (der von kernel.org) bricht das 'make modules' so ab: [...]
Da habe ich jetzt nur Warnungen entdecken koennen, da hast Du glaube ich nicht genug Kontext gepostet, insbesondere fehlt der Compilerbefehl vorher. Oder ich habe etwas uebersehen.
Ich bin ein wenig verwundert, denn ich dachte, ein Orginalkernel kann in jedem Fall kompiliert werden wenn die Rahmenbedingungen (u.a. gcc-Version) stimmen. Besonders der Fehler beim 2.4.20 verwundert mich stark, denn darauf baut ja sie SuSE 8.2 auf. Deren Kernel und die Module kann ich hier problemlos erzeugen.
So allgemein kann man das nicht sagen. Der gcc 3.3 akzeptiert vielen unsauberen Code nicht mehr, den der gcc 2.95.3 z.B. noch akzeptierte. In vielen Softwarekomponenten gab es derartige Probleme, manches tritt eben auch beim Kernel zu Tage. Da ist in gewissen Faellen unsauber programmiert worden, und nicht alle derartigen "Bugs" sind bisher behoben. Ferner gilt obiger Hinweis zu den Unterschieden zwischen einem SuSE- und einem Vanilla-Kernel. Ich wuerde Dir raten, die Dinge, die Du definitiv nicht brauchst, bei der Konfiguration zu deaktivieren und dann das Ganze nochmal probieren. Fuer weitere Erklaerungsversuche, siehe auch den ganzen Thread von oben zitierter Email. Gruesse, Thomson