Moin moin, Am Montag, 21. Juli 2008 14:05 schrieben Sie:
da ich gerade die gleichen Probleme habe, ein Kurzkommentar meinerseits.
Woran erkennt man, ob eine Library abwärtskompatibel ist?
Habe gelesen, das man z.B. ein Programm, dass gegen die libstdc++.so. 6.0.3 kompiliert und gelinkt wurde auch auf einem System laufen lassen kann wo z.B. die Version 6.0.8 vorhanden ist. (ABI kompatibel).
Version 6.1 z.B. würde schon nicht mehr funktionieren...
Bin ich eigentlich der Einzige, der die nichtvorhandene Binärkompatibilität nicht nur ärgerlich, sondern als katastrophal empfindet?
Stimmt schon, aber ist kein reines Linux Problem. Eher ein Problem von "Standards"... Siehe auch hier: http://de.wikipedia.org/wiki/Bin%C3%A4rschnittstelle Wobei es nicht gesichert ist, ob die Sprünge der ABI Versionen von 3.2 auf 3.4 erfolgte. Auf einer andere Liste (gentoo) sind alle irgendwie der Meinung das der Sprung von 3.3 auf 3.4 erfolgte. Diesem Artikel nach sollte es keine Problem sein, mit dem GCC 3.4.6 binaries zu erzeugen, die man später auf ein System (das z.B. mit dem GCC 4.X kompiliert worden ist) laufen lassen könnte. (libstdc++.so wird ja dynamisch gelinkt) Ja, klappt auch irgendwie. Nur eben nicht immer?! Ich vermisse lediglich eine Information welche Version mit einer anderen funtioniert und was eben nicht geht. Diese Information gibt es bestimmt bei gcc.gnu.org. Leider habe ich sie noch nicht gefunden... Ein weiteres Problem mit unserem Projekt ist, dass wir hier ein OpenOffice Paket (inkl. SDK) von openoffice.org benutzen (warum?? Keine Ahnung). Da liegt nochmal einen andere libstdc++ bei. Jetzt muss ich irgendwie mit _drei_ unterschiedlichen "libstdc++" Versionen umgehen (und das nur auf 10.2) libstdc++.so.6.0.3 # gcc 3.4.6 libstdc++.so.6.0.8 # gcc 4.1.2 libstdc++so.6.1 # gcc unknown
Was sind Versionsnummern wert, wenn Bibliotheken schon imkompatibel werden, wenn sich die 2., 3. oder gar 4. Stelle in der Versionsnummer ändert? Sollen doch wieder alle Linuxnutzer ihre Systeme komplett selbst kompilieren? Hat sich schon mal jemand ernsthaft gefragt, warum sich Linux auf dem Desktop nicht durchsetzen kann?
Hmm. Der Benutzer bekommt ja eigentlich nichts davon mit. der Distributor erstellt ja alle Pakete und so hat er ja erstmal immer zusammenpassende Versionen. Erst, wenn der User anfängt rumzufuschen uznd z.B. 9.3 Pakete mit einer 10.3 mischen will. Das Problem ist eigentlich nur ärgerlich für Software Hersteller;-) Und da eigentlich auch nur, wenn man sich um diesen "Versions-Kram" keine Gedanken macht. Es funktioniert noch einfach zuviel mit diesem "gemische". Mein Problem ist eigentlich nur eines: Wie bringe ich meinen Chef dazu, das er erkennt das wir schlicht korrekt erstellte Pakete auszuliefern müssen. (Ohne Hickhack, sondern für für jede Distri ein Paket. Alles andere ist IMHO SUCKS) Dieses Problem lässt sich ja ganz elegant umschiffen, man könnte ja den Buildservice benutzen. Damit hatten wir schonmal in meiner alten Firma gearbeitet. Du musst dann lediglich deinen Code sauber halten... Dieses Problem ist selbst unter W2K da, da haben wir gerade genauso Probleme. (Umstieg vc++6 auf .Net Version 9 dreck). Auch hier ist es die c++ runtime, massive Problem mit std::string... Eigentlich alles egal mit den Versionen, wenn man diese Fallstricke beachtet. Nur man muss sie eben beachten;() Man fängt nur an zu straucheln, wenn vorher schon alles denkbare falsch bzw. schief gelaufen ist. Viele Grüsse Andre --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org