Mailinglist Archive: opensuse-programming-de (12 mails)

< Previous Next >
Re: [opensuse-programming-de] Kompilieren und linken eines _einzigen_ Binary von suse 8.2 bis 10.2?
  • From: Andre Heine <linux-experience@xxxxxxx>
  • Date: Mon, 21 Jul 2008 14:48:00 +0200
  • Message-id: <200807211448.00999.linux-experience@xxxxxxx>
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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-programming-de+help@xxxxxxxxxxxx

< Previous Next >
List Navigation