Am Don, 14 Feb 2002 schrieb David Haller:
Hallo,
On Wed, 13 Feb 2002, Christoph Maurer wrote:
Am Mit, 13 Feb 2002 schrieb David Haller:
On Tue, 12 Feb 2002, Christoph Maurer wrote:
Am Sam, 09 Feb 2002 schrieb David Haller:
On Sat, 09 Feb 2002, Waldemar Brodkorb wrote:
[/usr/src/linux link auf verwendete Kernelquellen oder auf includes, gegen die glibc kompiliert wurde] Aber das Problem ist doch hier die Aufwärtskompatibilität. Wenn Du die Header des aktuellen Kernels als Includes verwendest, sind dort u.U. Funktionen deklariert, die in der glibc nicht unterstützt sind, das bedeutet es wird einen Linker-Fehler geben.
Nein, eben nicht(!). Nicht verwendete Funktionen sind irrelevant. z.B. ist der Grossteil der glibc-2.2 noch "identisch" zur glibc-2.0. (sieh dir mal ein 'nm' eines gegen die glibc-2.2 gelinkten binaries an).
Ja, aber was ist, wenn Du als Programmierer einen Aufruf, korrekt gemäß Header-Files, verwendest, der aber nicht gelinkt werden kann, da in verwendeter glibc noch nicht implementiert.
Oder noch schlimmer, und darauf bezieht sich Linus in u.g. URL, wenn eine neuere Version eine struct X reimplementiert.
Jep. Aber: siehe z.B.
http://www.uwsg.iu.edu/hypermail/linux/kernel/0007.3/0616.html http://www.uwsg.iu.edu/hypermail/linux/kernel/0007.3/0625.html
Interessant.
Das ganze sieht mir eh ziemlich wuest aus... IMO entsteht der "nicht aufloesbare" Konflikt dann, wenn structs (u.ae.) im Kernel geaendert werden (nicht nur "erweitert"[1]), aber dabei nicht umbenamst werden.
Ja, je länger ich darüber nachdenke, desto mehr scheint mir darin das größte Problem an der ganzen Sache zu liegen.
FYI: Linus Meinung dazu findest Du hier: http://www.uwsg.iu.edu/hypermail/linux/kernel/0007.3/0587.html
Merci.
Aus dem Posting geht IMHO auch hervor, daß der Kernel abwärtskompatibel gehalten wird.
Genau. Eben. Mehr als die glibc. Ergo: /usr/src/linux -> linux-${current_version}.
Denn so bekommt man ggfs. auftretenden Inkompatibilitaeten mit! [...] [...] Es macht natuerlich weder Sinn nen aktuellen Kernel mit ner uralt libc, oder ne aktuelle libc mit nem uralt Kernel zu verwenden...
Full ACK, beides kann zu Laufzeitfehlern führen.
[...] [...] Insgesamt eine ziemlich unschoene Situation, fuer die's (tippe ich mal) nur die Loesung der korrekten Versionierung der Kernelsymbole gibt, wo dann eben die glibc (oder sonst eine lib/Programm) eben eine bestimmte (Mindest-)Version eines Symbols verlangen kann, wie auch bei der glibc.
Und da haben wir dann glaube ich einen Punkt erreicht, auf den wir uns alle einigen können. Nur so ist das Problem an der Wurzel zu packen. Jetzt muß man nur noch Linus überzeugen. Gruß Christoph -- Christoph Maurer - 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