Fehler beim kompilieren oder was?
![](https://seccdn.libravatar.org/avatar/e24c09afb1084a28c3567687aad55e73.jpg?s=120&d=mm&r=g)
Hallo Liste! Jedesmal wenn ich meine Kernel neu compiliere tauchen Fehlermeldungen auf. Hier ein Beispiel: gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall -Wstrict-prototypes -Wno-t rigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mprefe rred-stack-boundary=2 -march=i686 -c -o pci-pc.o pci-pc.c {standard input}: Assembler messages: {standard input}:762: Warning: indirect lcall without `*' {standard input}:847: Warning: indirect lcall without `*' {standard input}:934: Warning: indirect lcall without `*' {standard input}:973: Warning: indirect lcall without `*' {standard input}:1005: Warning: indirect lcall without `*' {standard input}:1037: Warning: indirect lcall without `*' {standard input}:1068: Warning: indirect lcall without `*' {standard input}:1097: Warning: indirect lcall without `*' {standard input}:1126: Warning: indirect lcall without `*' {standard input}:1407: Warning: indirect lcall without `*' {standard input}:1500: Warning: indirect lcall without `*' gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall -Wstrict-prototypes -Wno-t rigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mprefe rred-stack-boundary=2 -march=i686 -c -o pci-irq.o pci-irq.c Dies habe ich jetzt schon bei verschiedenen Kernelversionen gesehen (2.2.18, 2.4.2, 2.4.5, 2.4.7, 2.4.8). Der Kernel bootet und funktioniert aber einwandfrei. Folgendes wurde unternommen: 1. Kernelquellen nach /usr/src/linux.2.4.x entpackt. 2. Softlink auf linux erstellt. 3. Im Verzeichniss /usr/src/linux ein "make mrproper" ausgeführt. 4. Kernel mittels xconfig zusammengebastelt. 5. make dep clean bzImage Sind diese Fehlermeldungen tragisch oder kann ich sie getrost ignorieren???? Setze SuSE 7.1 Prefessional ein. Gruß Frank
![](https://seccdn.libravatar.org/avatar/8576ac1b72af7a8d7391dbaa48c37e65.jpg?s=120&d=mm&r=g)
On Mon, 2001-09-10 at 12:07, Frank Semm wrote:
Hallo Liste!
Jedesmal wenn ich meine Kernel neu compiliere tauchen Fehlermeldungen auf. Hier ein Beispiel:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall -Wstrict-prototypes -Wno-t rigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mprefe rred-stack-boundary=2 -march=i686 -c -o pci-pc.o pci-pc.c {standard input}: Assembler messages: {standard input}:762: Warning: indirect lcall without `*'
Wie die Fehlermeldung deutlich sagt, handelt es sich um Warnungen des as (Assembler aus den binutils) und besagen, dass dort versucht wird, unsauberen ASM-Code zu übersetzen. Als Ursache kommen (in abnehmender Wahrscheinlichkeit) * Ein Compiler-Bug (gcc erzeugt unsauberen Code) * Unsauberer inline-ASM Code im C-Kode (d.h. Bug im Quellecode) * Ein Bug im as * Verwendung von für diesen Quellcode ungültigen Compileroptionen in Frage.
Sind diese Fehlermeldungen tragisch oder kann ich sie getrost ignorieren???? Ob sie auf ernsthafte Probleme zur Folge haben, werden Dir nur der Autor des Quellcodes und Leute die fliessend i386-ASM sprechen sagen können. Schwerwiegende Folgen sind nicht ausgeschlossen, halte ich aber für unwahrscheinlich, da es da es sich "nur" um Warnungen handelt.
Ralf
![](https://seccdn.libravatar.org/avatar/73166db4487cc5490022833f99316e97.jpg?s=120&d=mm&r=g)
Am Mon, 10 Sep 2001, schrieb Ralf Corsepius:
On Mon, 2001-09-10 at 12:07, Frank Semm wrote:
Sind diese Fehlermeldungen tragisch oder kann ich sie getrost ignorieren???? Ob sie auf ernsthafte Probleme zur Folge haben, werden Dir nur der Autor des Quellcodes und Leute die fliessend i386-ASM sprechen sagen können. Schwerwiegende Folgen sind nicht ausgeschlossen, halte ich aber für unwahrscheinlich, da es da es sich "nur" um Warnungen handelt.
Ist zwar grundsätzlich auch meine Meinung, ich würde mir auch keine Gedanken machen, ob das ernsthafte Probleme sind, allerdings hängt die Aussagekraft der warning-Meldung des Compilers auch sehr von der verwendeten gcc-Version ab. Habe bis vor kurzem auf der Arbeit noch mit SuSE 6.3 (weiß jetzt die gcc-Version, die da dabei war, nicht) gearbeitet, und der Compiler hat z.T. richtig heftige Programmierfehler (vor allem so const-Geschichten) mit einer Warnung durchgehen lassen. Also die Geschichte mit "nur Warnungen" ist IMHO mit Vorsicht zu genießen. Bei meinem eigenen Code gehe ich eigentlich jeder Warnung nach und schaue, was der Grund ist. Wenn sie einfach wegzubekommen ist, ändere ich meinen Code entsprechend. Auf diese Weise bin ich auf jeden Fall schon oft auf Fehler gestoßen. Gruß Christoph -- Christoph Maurer - Paul-Röntgen-Straße 7 - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
![](https://seccdn.libravatar.org/avatar/e24c09afb1084a28c3567687aad55e73.jpg?s=120&d=mm&r=g)
Hallo Ralf, hallo Christoph, hallo Liste! Erstmal danke für die Hinweise!
Jedesmal wenn ich meine Kernel neu compiliere tauchen Fehlermeldungen auf. Hier ein Beispiel:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall -Wstrict-prototypes -Wno-t rigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mprefe rred-stack-boundary=2 -march=i686 -c -o pci-pc.o pci-pc.c {standard input}: Assembler messages: {standard input}:762: Warning: indirect lcall without `*'
Wie die Fehlermeldung deutlich sagt, handelt es sich um Warnungen des as (Assembler aus den binutils) und besagen, dass dort versucht wird, unsauberen ASM-Code zu übersetzen.
Als Ursache kommen (in abnehmender Wahrscheinlichkeit) * Ein Compiler-Bug (gcc erzeugt unsauberen Code) Ich setzte gcc 2.95.2 ein. Es ist der Standartcompiler der mit SuSE 7.1 ausgeliefert wird. * Unsauberer inline-ASM Code im C-Kode (d.h. Bug im Quellecode) Halte ich persönlich für unwahrscheinlich. Da es sich um den org. Quellcode der Kernelquellen handelt und es bei verschiedenen Kernelversionen zu beobachten ist. Werde mal meinen Compiler auf einen aktuellen Stand bringen. Frage: Welcher soll genommen werden?
Gruß Frank
Ralf
![](https://seccdn.libravatar.org/avatar/208f884b860bee2b1a5f890e5c5756d7.jpg?s=120&d=mm&r=g)
Frank Semm wrote:
Ich setzte gcc 2.95.2 ein. Es ist der Standartcompiler der mit SuSE 7.1 ausgeliefert wird. [...] Werde mal meinen Compiler auf einen aktuellen Stand bringen. Frage: Welcher soll genommen werden?
ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/people/pthomas/gcc/7.1/ Gruss, Thomson PS: Weil es immer wieder vorkommt, hier am Rande bemerkt: Standard schreibt man mit ddddd.... :-) -- Thomas Hertweck, Geophysicist Geophysical Institute, University of Karlsruhe Hertzstr. 16, D-76187 Karlsruhe, Germany
![](https://seccdn.libravatar.org/avatar/73166db4487cc5490022833f99316e97.jpg?s=120&d=mm&r=g)
Am Mon, 10 Sep 2001, schrieb Frank Semm:
Hallo Ralf, hallo Christoph, hallo Liste!
Erstmal danke für die Hinweise!
Jedesmal wenn ich meine Kernel neu compiliere tauchen Fehlermeldungen auf. Hier ein Beispiel:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall -Wstrict-prototypes -Wno-t rigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mprefe rred-stack-boundary=2 -march=i686 -c -o pci-pc.o pci-pc.c {standard input}: Assembler messages: {standard input}:762: Warning: indirect lcall without `*'
Wie die Fehlermeldung deutlich sagt, handelt es sich um Warnungen des as (Assembler aus den binutils) und besagen, dass dort versucht wird, unsauberen ASM-Code zu übersetzen.
Als Ursache kommen (in abnehmender Wahrscheinlichkeit) * Ein Compiler-Bug (gcc erzeugt unsauberen Code) Ich setzte gcc 2.95.2 ein. Es ist der Standartcompiler der mit SuSE 7.1 ausgeliefert wird. * Unsauberer inline-ASM Code im C-Kode (d.h. Bug im Quellecode) Halte ich persönlich für unwahrscheinlich. Da es sich um den org. Quellcode der Kernelquellen handelt und es bei verschiedenen Kernelversionen zu beobachten ist. Werde mal meinen Compiler auf einen aktuellen Stand bringen. Frage: Welcher soll genommen werden?
Halte ich nicht für notwendig, Du kannst zwar auf 2.95.3 updaten, kann mir aber nicht vorstellen, daß die Warnings dann weg sind. Auf gcc 3.0 würde ich aber auf keinen Fall updaten, da Du dann u.U. eine ganze Menge Programme gar nicht mehr übersetzen kannst. Aber nochmal die Frage: gibt es konkrete Hinweise, die darauf hindeuten, daß hier ein ernstes Problem vorliegt? Gruß Christoph -- Christoph Maurer - Paul-Röntgen-Straße 7 - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
![](https://seccdn.libravatar.org/avatar/e24c09afb1084a28c3567687aad55e73.jpg?s=120&d=mm&r=g)
Ich setzte gcc 2.95.2 ein. Es ist der Standartcompiler der mit SuSE 7.1 ausgeliefert wird.
* Unsauberer inline-ASM Code im C-Kode (d.h. Bug im Quellecode)
Halte ich persönlich für unwahrscheinlich. Da es sich um den org. Quellcode der Kernelquellen handelt und es bei verschiedenen Kernelversionen zu beobachten ist. Werde mal meinen Compiler auf einen aktuellen Stand bringen. Frage: Welcher soll genommen werden?
Halte ich nicht für notwendig, Du kannst zwar auf 2.95.3 updaten, kann mir aber nicht vorstellen, daß die Warnings dann weg sind. Auf gcc 3.0 würde ich aber auf keinen Fall updaten, da Du dann u.U. eine ganze Menge Programme gar nicht mehr übersetzen kannst.
Aber nochmal die Frage: gibt es konkrete Hinweise, die darauf hindeuten, daß hier ein ernstes Problem vorliegt?
Gruß
Christoph Hallo Christoph, hallo Thomas, hallo Liste! Also bis auf die Warning's ist mir nichts auffälliges untergekommen. Die Maschine bootet sauber und wirft auch im Betrieb keine Fehlermeldungen aus. Ich will kein Perfektionist sein aber Warnungen sollte man schon auf den Grund gehen. Ich werde jetzt erstmal auf gcc 2.95.3 updaten und mal sehen was
Am Montag, 10. September 2001 16:29 schrieben Sie: passiert. Falls sich etwas tut werde ich es hier mitteilen. Nochmal Danke an alle! Gruß Frank
![](https://seccdn.libravatar.org/avatar/7b33cb1e776e35b87edb8ef09f0c888f.jpg?s=120&d=mm&r=g)
On Mon, 10 Sep 2001, Frank Semm wrote:
Am Montag, 10. September 2001 16:29 schrieben Sie: ^^^ Wer ist das?
* Unsauberer inline-ASM Code im C-Kode (d.h. Bug im Quellecode)
Halte ich persönlich für unwahrscheinlich. Da es sich um den org. Quellcode der Kernelquellen handelt und es bei verschiedenen Kernelversionen zu beobachten ist.
Ist es aber. Ich habe mal eben
gcc -S -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-com
mon -pipe -mpreferred-stack-boundary=2 -march=i686 /usr/src/linux/arc
h/i386/kernel/pci-pc.c -o /tmp/pci-pc.s
laufen lassen, und einen Blick in pci-pc.c geworfen, die lcalls
die im gcc Assemblercode stehen, stehen (alle?) auch als inline
Assembler im C-Quellcode.
$ grep -c lcall /usr/src/linux/arch/i386/kernel/pci-pc.c
11
$ grep -c lcall /tmp/pci-pc.s
11
Es waere also mal angebracht da den Entwickler zu fragen:
* (c) 1999--2000 Martin Mares
Grund gehen. Ich werde jetzt erstmal auf gcc 2.95.3 updaten und mal sehen was passiert. Falls sich etwas tut werde ich es hier mitteilen.
Ich glaube nicht, dass es am Compiler liegt (s.o.). Ach ja: $ gcc --version pgcc-2.95.3 (d.h.: gcc 2.95.2 + Pentium gcc patch 2.95.3 + Athlonpatch). -dnh -- Disarmament separates you from your phallic substitute. Walking around nude shows the world why you need one. -- The Usenet Oracle
![](https://seccdn.libravatar.org/avatar/07710cc79439db7e58c8b83ea43c2431.jpg?s=120&d=mm&r=g)
Frank Semm wrote:
Hallo Liste!
Jedesmal wenn ich meine Kernel neu compiliere tauchen Fehlermeldungen auf. Hier ein Beispiel:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall -Wstrict-prototypes -Wno-t rigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mprefe rred-stack-boundary=2 -march=i686 -c -o pci-pc.o pci-pc.c {standard input}: Assembler messages: {standard input}:762: Warning: indirect lcall without `*' {standard input}:847: Warning: indirect lcall without `*' {standard input}:934: Warning: indirect lcall without `*' {standard input}:973: Warning: indirect lcall without `*' {standard input}:1005: Warning: indirect lcall without `*' {standard input}:1037: Warning: indirect lcall without `*' {standard input}:1068: Warning: indirect lcall without `*' {standard input}:1097: Warning: indirect lcall without `*' {standard input}:1126: Warning: indirect lcall without `*' {standard input}:1407: Warning: indirect lcall without `*' {standard input}:1500: Warning: indirect lcall without `*' gcc -D__KERNEL__ -I/usr/src/linux-2.4.8/include -Wall
Ich erhalte auch solche Warnings. Ebenfalls seit mehreren Kernel-Versionen. Habe sie bisher erfolgreich ignoriert :-) Gruß Kurt
![](https://seccdn.libravatar.org/avatar/2d880c1f79290a7b641d9937e22ded6b.jpg?s=120&d=mm&r=g)
* Frank Semm [Mon, 10 Sep 2001 12:07:33 +0200]:
Jedesmal wenn ich meine Kernel neu compiliere tauchen Fehlermeldungen auf.
Hmmm, Warning ist in meinem Wörterbuch immer noch Warnung ;-)
rred-stack-boundary=2 -march=i686 -c -o pci-pc.o pci-pc.c {standard input}: Assembler messages: {standard input}:762: Warning: indirect lcall without `*' [....] Sind diese Fehlermeldungen tragisch oder kann ich sie getrost ignorieren???? Setze SuSE 7.1 Prefessional ein.
Dies sind Fehler im inline Assemblercode in besagter Datei. As macht hier das richtige, warnt aber. In sofern harmlos aber trotzdem unschön. Philipp -- Nothing would please me more than being able to hire ten programmers and deluge the hobby market with good software. -- Bill Gates, 1976
participants (7)
-
Christoph Maurer
-
David Haller
-
Frank Semm
-
Kurt Stegen-Olzog
-
philippt@t-online.de
-
Ralf Corsepius
-
Thomas Hertweck